public class org.jruby.ext.socket.RubyUDPSocket extends org.jruby.ext.socket.RubyIPSocket
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ext.socket.RubyUDPSocket
  super_class: org.jruby.ext.socket.RubyIPSocket
{
  private static org.jruby.runtime.ObjectAllocator UDPSOCKET_ALLOCATOR;
    descriptor: Lorg/jruby/runtime/ObjectAllocator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private volatile java.lang.Class<? extends java.net.InetAddress> explicitFamily;
    descriptor: Ljava/lang/Class;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/lang/Class<+Ljava/net/InetAddress;>;

  private volatile java.net.ProtocolFamily family;
    descriptor: Ljava/net/ProtocolFamily;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 92
            new org.jruby.ext.socket.RubyUDPSocket$1
            dup
            invokespecial org.jruby.ext.socket.RubyUDPSocket$1.<init>:()V
            putstatic org.jruby.ext.socket.RubyUDPSocket.UDPSOCKET_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
         1: .line 97
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static void createUDPSocket(org.jruby.Ruby);
    descriptor: (Lorg/jruby/Ruby;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.jruby.Ruby runtime
         0: .line 83
            aload 0 /* runtime */
            ldc "UDPSocket"
            aload 0 /* runtime */
            ldc "IPSocket"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            getstatic org.jruby.ext.socket.RubyUDPSocket.UDPSOCKET_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
            invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 1 /* rb_cUDPSocket */
        start local 1 // org.jruby.RubyClass rb_cUDPSocket
         1: .line 85
            aload 1 /* rb_cUDPSocket */
            aload 0 /* runtime */
            ldc "Socket"
            invokevirtual org.jruby.Ruby.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
            ldc "Constants"
            invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
         2: .line 87
            aload 1 /* rb_cUDPSocket */
            ldc Lorg/jruby/ext/socket/RubyUDPSocket;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         3: .line 89
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
            ldc "UDPsocket"
            aload 1 /* rb_cUDPSocket */
            invokevirtual org.jruby.RubyClass.setConstant:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            pop
         4: .line 90
            return
        end local 1 // org.jruby.RubyClass rb_cUDPSocket
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0        runtime  Lorg/jruby/Ruby;
            1    5     1  rb_cUDPSocket  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass type
         0: .line 100
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* type */
            invokespecial org.jruby.ext.socket.RubyIPSocket.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 101
            return
        end local 2 // org.jruby.RubyClass type
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2     type  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      type     

  public org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 106
            aload 0 /* this */
            aload 1 /* context */
            getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.initialize:(Lorg/jruby/runtime/ThreadContext;Ljava/net/ProtocolFamily;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  

  public org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject _family
         0: .line 111
            aload 2 /* _family */
            invokestatic org.jruby.ext.socket.SocketUtils.addressFamilyFromArg:(Lorg/jruby/runtime/builtin/IRubyObject;)Ljnr/constants/platform/AddressFamily;
            astore 3 /* family */
        start local 3 // jnr.constants.platform.AddressFamily family
         1: .line 113
            aload 3 /* family */
            getstatic jnr.constants.platform.AddressFamily.AF_INET:Ljnr/constants/platform/AddressFamily;
            if_acmpne 4
         2: .line 114
            aload 0 /* this */
            ldc Ljava/net/Inet4Address;
            putfield org.jruby.ext.socket.RubyUDPSocket.explicitFamily:Ljava/lang/Class;
         3: .line 115
            aload 0 /* this */
            aload 1 /* context */
            getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.initialize:(Lorg/jruby/runtime/ThreadContext;Ljava/net/ProtocolFamily;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         4: .line 116
      StackMap locals: jnr.constants.platform.AddressFamily
      StackMap stack:
            aload 3 /* family */
            getstatic jnr.constants.platform.AddressFamily.AF_INET6:Ljnr/constants/platform/AddressFamily;
            if_acmpne 7
         5: .line 117
            aload 0 /* this */
            ldc Ljava/net/Inet6Address;
            putfield org.jruby.ext.socket.RubyUDPSocket.explicitFamily:Ljava/lang/Class;
         6: .line 118
            aload 0 /* this */
            aload 1 /* context */
            getstatic java.net.StandardProtocolFamily.INET6:Ljava/net/StandardProtocolFamily;
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.initialize:(Lorg/jruby/runtime/ThreadContext;Ljava/net/ProtocolFamily;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
         7: .line 121
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            new java.lang.StringBuilder
            dup
            ldc "invalid family for UDPSocket: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* _family */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoEAFNOSUPPORTError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // jnr.constants.platform.AddressFamily family
        end local 2 // org.jruby.runtime.builtin.IRubyObject _family
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    8     1  context  Lorg/jruby/runtime/ThreadContext;
            0    8     2  _family  Lorg/jruby/runtime/builtin/IRubyObject;
            1    8     3   family  Ljnr/constants/platform/AddressFamily;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      _family  

  public org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, java.net.ProtocolFamily);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/net/ProtocolFamily;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // java.net.ProtocolFamily family
         0: .line 125
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 128
            aload 0 /* this */
            aload 2 /* family */
            putfield org.jruby.ext.socket.RubyUDPSocket.family:Ljava/net/ProtocolFamily;
         2: .line 129
            aload 2 /* family */
            invokestatic java.nio.channels.DatagramChannel.open:(Ljava/net/ProtocolFamily;)Ljava/nio/channels/DatagramChannel;
            astore 4 /* channel */
        start local 4 // java.nio.channels.DatagramChannel channel
         3: .line 130
            aload 0 /* this */
            aload 3 /* runtime */
            aload 4 /* channel */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.newChannelFD:(Lorg/jruby/Ruby;Ljava/nio/channels/Channel;)Lorg/jruby/util/io/ChannelFD;
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.initSocket:(Lorg/jruby/util/io/ChannelFD;)V
        end local 4 // java.nio.channels.DatagramChannel channel
         4: .line 131
            goto 15
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext java.net.ProtocolFamily org.jruby.Ruby
      StackMap stack: java.net.ConnectException
         5: pop
         6: .line 132
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoECONNREFUSEDError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 133
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            pop
         8: .line 134
            aload 3 /* runtime */
            ldc "initialize: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         9: .line 135
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
            astore 4 /* uoe */
        start local 4 // java.lang.UnsupportedOperationException uoe
        10: .line 136
            aload 4 /* uoe */
            invokevirtual java.lang.UnsupportedOperationException.getMessage:()Ljava/lang/String;
            ldc "IPv6 not available"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 12
        11: .line 137
            aload 3 /* runtime */
            ldc "socket(2) - udp"
            invokevirtual org.jruby.Ruby.newErrnoEAFNOSUPPORTError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        12: .line 139
      StackMap locals: java.lang.UnsupportedOperationException
      StackMap stack:
            aload 3 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "UnsupportedOperationException: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* uoe */
            invokevirtual java.lang.UnsupportedOperationException.getLocalizedMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 4 /* uoe */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.UnsupportedOperationException uoe
        13: .line 140
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext java.net.ProtocolFamily org.jruby.Ruby
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        14: .line 141
            aload 3 /* runtime */
            ldc "initialize: name or service not known"
            aload 4 /* e */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.io.IOException e
        15: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // org.jruby.Ruby runtime
        end local 2 // java.net.ProtocolFamily family
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0   16     1  context  Lorg/jruby/runtime/ThreadContext;
            0   16     2   family  Ljava/net/ProtocolFamily;
            1   16     3  runtime  Lorg/jruby/Ruby;
            3    4     4  channel  Ljava/nio/channels/DatagramChannel;
           10   13     4      uoe  Ljava/lang/UnsupportedOperationException;
           14   15     4        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     4       5  Class java.net.ConnectException
           1     4       7  Class java.net.UnknownHostException
           1     4       9  Class java.lang.UnsupportedOperationException
           1     4      13  Class java.io.IOException
    MethodParameters:
         Name  Flags
      context  
      family   

  public org.jruby.runtime.builtin.IRubyObject bind(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject host
        start local 3 // org.jruby.runtime.builtin.IRubyObject _port
         0: .line 149
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 152
            aload 3 /* _port */
            invokestatic org.jruby.ext.socket.SocketUtils.portToInt:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 6 /* port */
        start local 6 // int port
         2: .line 154
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.getChannel:()Ljava/nio/channels/Channel;
            astore 7 /* channel */
        start local 7 // java.nio.channels.Channel channel
         3: .line 156
            aload 2 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 5
         4: .line 157
            aload 2 /* host */
            instanceof org.jruby.RubyString
            ifeq 7
            aload 2 /* host */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.isEmpty:()Z
            ifeq 7
         5: .line 159
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top int java.nio.channels.Channel
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            iload 6 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(I)V
            astore 5 /* addr */
        start local 5 // java.net.InetSocketAddress addr
         6: .line 160
            goto 25
        end local 5 // java.net.InetSocketAddress addr
         7: .line 161
      StackMap locals:
      StackMap stack:
            aload 2 /* host */
            instanceof org.jruby.RubyFixnum
            ifeq 24
         8: .line 163
            iconst_0
            istore 8 /* intAddr */
        start local 8 // int intAddr
         9: .line 164
            aload 2 /* host */
            instanceof org.jruby.RubyInteger
            ifeq 12
        10: .line 165
            aload 2 /* host */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 8 /* intAddr */
        11: .line 166
            goto 16
      StackMap locals: int
      StackMap stack:
        12: aload 2 /* host */
            instanceof org.jruby.RubyString
            ifeq 15
        13: .line 167
            aload 2 /* host */
            checkcast org.jruby.RubyString
            invokevirtual org.jruby.RubyString.to_i:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getIntValue:()I
            istore 8 /* intAddr */
        14: .line 168
            goto 16
        15: .line 169
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            aload 2 /* host */
            aload 4 /* runtime */
            invokevirtual org.jruby.Ruby.getInteger:()Lorg/jruby/RubyClass;
            invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
            athrow
        16: .line 171
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            ldc "Socket"
            invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 9 /* Socket */
        start local 9 // org.jruby.RubyModule Socket
        17: .line 172
            iload 8 /* intAddr */
            aload 9 /* Socket */
            ldc "INADDR_ANY"
            invokevirtual org.jruby.RubyModule.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            if_icmpne 20
        18: .line 173
            new java.net.InetSocketAddress
            dup
            ldc "0.0.0.0"
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 6 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 5 /* addr */
        start local 5 // java.net.InetSocketAddress addr
        19: .line 174
            goto 25
        end local 5 // java.net.InetSocketAddress addr
        20: .line 176
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.multicastStateManager:Lorg/jruby/ext/socket/MulticastStateManager;
            ifnonnull 22
        21: .line 177
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "bind with host: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 8 /* intAddr */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        22: .line 179
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 5 /* addr */
        end local 9 // org.jruby.RubyModule Socket
        end local 8 // int intAddr
        start local 5 // java.net.InetSocketAddress addr
        23: .line 181
            goto 25
        end local 5 // java.net.InetSocketAddress addr
        24: .line 183
      StackMap locals:
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aload 2 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
            invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
            iload 6 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 5 /* addr */
        start local 5 // java.net.InetSocketAddress addr
        25: .line 186
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby java.net.InetSocketAddress int java.nio.channels.Channel
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.multicastStateManager:Lorg/jruby/ext/socket/MulticastStateManager;
            ifnonnull 28
        26: .line 187
            aload 7 /* channel */
            checkcast java.nio.channels.DatagramChannel
            aload 5 /* addr */
            invokevirtual java.nio.channels.DatagramChannel.bind:(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
            pop
        27: .line 188
            goto 29
        28: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.multicastStateManager:Lorg/jruby/ext/socket/MulticastStateManager;
            iload 6 /* port */
            invokevirtual org.jruby.ext.socket.MulticastStateManager.rebindToPort:(I)V
        29: .line 192
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
        30: areturn
        end local 7 // java.nio.channels.Channel channel
        end local 5 // java.net.InetSocketAddress addr
        31: .line 194
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top int
      StackMap stack: java.nio.channels.UnsupportedAddressTypeException
            pop
        32: .line 196
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.family:Ljava/net/ProtocolFamily;
            ifnonnull 33
            getstatic java.net.StandardProtocolFamily.INET:Ljava/net/StandardProtocolFamily;
            goto 34
      StackMap locals:
      StackMap stack:
        33: aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.family:Ljava/net/ProtocolFamily;
      StackMap locals:
      StackMap stack: java.net.ProtocolFamily
        34: astore 7 /* family */
        start local 7 // java.net.ProtocolFamily family
        35: .line 197
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "bind: unsupported address "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.inspect:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " for protocol family "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* family */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.net.ProtocolFamily family
        36: .line 199
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            pop
        37: .line 200
            aload 4 /* runtime */
            ldc "bind: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        38: .line 202
      StackMap locals:
      StackMap stack: java.net.BindException
            astore 7 /* e */
        start local 7 // java.net.BindException e
        39: .line 203
            aload 4 /* runtime */
            aload 7 /* e */
            invokevirtual org.jruby.Ruby.newErrnoEADDRFromBindException:(Ljava/net/BindException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 7 // java.net.BindException e
        40: .line 205
      StackMap locals:
      StackMap stack: java.nio.channels.AlreadyBoundException
            pop
        41: .line 206
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "bind(2) for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.inspect:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " port "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* port */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoEINVALError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        42: .line 208
      StackMap locals:
      StackMap stack: java.net.SocketException
            astore 7 /* e */
        start local 7 // java.net.SocketException e
        43: .line 209
            aload 7 /* e */
            invokevirtual java.net.SocketException.getMessage:()Ljava/lang/String;
            astore 8 /* message */
        start local 8 // java.lang.String message
        44: .line 210
            aload 8 /* message */
            ifnull 48
        45: .line 211
            aload 8 /* message */
            dup
            astore 9
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 1
           -104266004: 46
              default: 48
          }
      StackMap locals: java.net.SocketException java.lang.String java.lang.String
      StackMap stack:
        46: aload 9
            ldc "Permission denied"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 47
            goto 48
        47: .line 213
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            new java.lang.StringBuilder
            dup
            ldc "bind(2) for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.inspect:()Lorg/jruby/runtime/builtin/IRubyObject;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " port "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* port */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newErrnoEACCESError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        48: .line 216
      StackMap locals:
      StackMap stack:
            aload 4 /* runtime */
            ldc "bind: name or service not known"
            aload 7 /* e */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 8 // java.lang.String message
        end local 7 // java.net.SocketException e
        49: .line 218
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby top int
      StackMap stack: java.io.IOException
            astore 7 /* e */
        start local 7 // java.io.IOException e
        50: .line 219
            aload 4 /* runtime */
            ldc "bind: name or service not known"
            aload 7 /* e */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.io.IOException e
        end local 6 // int port
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject _port
        end local 2 // org.jruby.runtime.builtin.IRubyObject host
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   51     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0   51     1  context  Lorg/jruby/runtime/ThreadContext;
            0   51     2     host  Lorg/jruby/runtime/builtin/IRubyObject;
            0   51     3    _port  Lorg/jruby/runtime/builtin/IRubyObject;
            1   51     4  runtime  Lorg/jruby/Ruby;
            6    7     5     addr  Ljava/net/InetSocketAddress;
           19   20     5     addr  Ljava/net/InetSocketAddress;
           23   24     5     addr  Ljava/net/InetSocketAddress;
           25   31     5     addr  Ljava/net/InetSocketAddress;
            2   51     6     port  I
            3   31     7  channel  Ljava/nio/channels/Channel;
            9   23     8  intAddr  I
           17   23     9   Socket  Lorg/jruby/RubyModule;
           35   36     7   family  Ljava/net/ProtocolFamily;
           39   40     7        e  Ljava/net/BindException;
           43   49     7        e  Ljava/net/SocketException;
           44   49     8  message  Ljava/lang/String;
           50   51     7        e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2    30      31  Class java.nio.channels.UnsupportedAddressTypeException
           2    30      36  Class java.net.UnknownHostException
           2    30      38  Class java.net.BindException
           2    30      40  Class java.nio.channels.AlreadyBoundException
           2    30      42  Class java.net.SocketException
           2    30      49  Class java.io.IOException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      host     
      _port    

  public org.jruby.runtime.builtin.IRubyObject connect(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject _host
        start local 3 // org.jruby.runtime.builtin.IRubyObject port
         0: .line 225
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 228
            aload 2 /* _host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifeq 2
            ldc "localhost"
            goto 3
      StackMap locals: org.jruby.Ruby
      StackMap stack:
         2: aload 2 /* _host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         3: astore 5 /* host */
        start local 5 // java.lang.String host
         4: .line 229
            aload 5 /* host */
            invokestatic java.net.InetAddress.getAllByName:(Ljava/lang/String;)[Ljava/net/InetAddress;
            astore 6 /* addrs */
        start local 6 // java.net.InetAddress[] addrs
         5: .line 231
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         6: goto 17
         7: .line 232
      StackMap locals: java.lang.String java.net.InetAddress[] int
      StackMap stack:
            aload 6 /* addrs */
            iload 7 /* i */
            aaload
            astore 8 /* a */
        start local 8 // java.net.InetAddress a
         8: .line 235
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.explicitFamily:Ljava/lang/Class;
            ifnull 9
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.explicitFamily:Ljava/lang/Class;
            aload 8 /* a */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 9
            goto 16
         9: .line 238
      StackMap locals: java.net.InetAddress
      StackMap stack:
            new java.net.InetSocketAddress
            dup
            aload 6 /* addrs */
            iload 7 /* i */
            aaload
            aload 3 /* port */
            invokestatic org.jruby.ext.socket.SocketUtils.portToInt:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 9 /* addr */
        start local 9 // java.net.InetSocketAddress addr
        10: .line 240
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.getChannel:()Ljava/nio/channels/Channel;
            checkcast java.nio.channels.DatagramChannel
            aload 9 /* addr */
            invokevirtual java.nio.channels.DatagramChannel.connect:(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;
            pop
        11: .line 242
            aload 4 /* runtime */
            invokestatic org.jruby.RubyFixnum.zero:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
        12: areturn
        end local 9 // java.net.InetSocketAddress addr
        13: .line 243
      StackMap locals:
      StackMap stack: java.net.NoRouteToHostException
            astore 9 /* nrthe */
        start local 9 // java.net.NoRouteToHostException nrthe
        14: .line 244
            iload 7 /* i */
            iconst_1
            iadd
            aload 6 /* addrs */
            arraylength
            if_icmpge 15
            goto 16
        15: .line 245
      StackMap locals: java.net.NoRouteToHostException
      StackMap stack:
            aload 9 /* nrthe */
            athrow
        end local 9 // java.net.NoRouteToHostException nrthe
        end local 8 // java.net.InetAddress a
        16: .line 231
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 7 /* i */
            aload 6 /* addrs */
            arraylength
            if_icmplt 7
        end local 7 // int i
        end local 6 // java.net.InetAddress[] addrs
        end local 5 // java.lang.String host
        18: .line 248
            goto 25
        19: .line 249
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby
      StackMap stack: java.net.UnknownHostException
            pop
        20: .line 250
            aload 4 /* runtime */
            ldc "connect: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        21: .line 252
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        22: .line 253
            aload 4 /* runtime */
            aload 5 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.io.IOException e
        23: .line 255
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 5 /* e */
        start local 5 // java.lang.IllegalArgumentException e
        24: .line 256
            aload 4 /* runtime */
            aload 5 /* e */
            invokevirtual java.lang.IllegalArgumentException.getLocalizedMessage:()Ljava/lang/String;
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.IllegalArgumentException e
        25: .line 260
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject port
        end local 2 // org.jruby.runtime.builtin.IRubyObject _host
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   26     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0   26     1  context  Lorg/jruby/runtime/ThreadContext;
            0   26     2    _host  Lorg/jruby/runtime/builtin/IRubyObject;
            0   26     3     port  Lorg/jruby/runtime/builtin/IRubyObject;
            1   26     4  runtime  Lorg/jruby/Ruby;
            4   18     5     host  Ljava/lang/String;
            5   18     6    addrs  [Ljava/net/InetAddress;
            6   18     7        i  I
            8   16     8        a  Ljava/net/InetAddress;
           10   13     9     addr  Ljava/net/InetSocketAddress;
           14   16     9    nrthe  Ljava/net/NoRouteToHostException;
           22   23     5        e  Ljava/io/IOException;
           24   25     5        e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           9    12      13  Class java.net.NoRouteToHostException
           1    12      19  Class java.net.UnknownHostException
          13    18      19  Class java.net.UnknownHostException
           1    12      21  Class java.io.IOException
          13    18      21  Class java.io.IOException
           1    12      23  Class java.lang.IllegalArgumentException
          13    18      23  Class java.lang.IllegalArgumentException
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      _host    
      port     

  private java.nio.channels.DatagramChannel getDatagramChannel();
    descriptor: ()Ljava/nio/channels/DatagramChannel;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
         0: .line 264
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.getChannel:()Ljava/nio/channels/Channel;
            checkcast java.nio.channels.DatagramChannel
            areturn
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/socket/RubyUDPSocket;

  public org.jruby.runtime.builtin.IRubyObject recvfrom_nonblock(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 269
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* args */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.recvfrom_nonblock:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, optional = 3)
    MethodParameters:
         Name  Flags
      context  
      args     

  public static org.jruby.runtime.builtin.IRubyObject recvfrom_nonblock(org.jruby.ext.socket.RubyBasicSocket, org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // org.jruby.ext.socket.RubyBasicSocket socket
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 273
            aload 2 /* args */
            arraylength
            istore 3 /* argc */
        start local 3 // int argc
         1: .line 274
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 2 /* args */
            invokestatic org.jruby.ast.util.ArgsUtil.getOptionsArg:(Lorg/jruby/Ruby;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 4 /* opts */
        start local 4 // org.jruby.runtime.builtin.IRubyObject opts
         2: .line 275
            aload 4 /* opts */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            if_acmpeq 3
            iinc 3 /* argc */ -1
         3: .line 278
      StackMap locals: int org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            dup
            astore 7 /* str */
        start local 7 // org.jruby.runtime.builtin.IRubyObject str
         4: dup
            astore 6 /* flags */
        start local 6 // org.jruby.runtime.builtin.IRubyObject flags
         5: astore 5 /* length */
        start local 5 // org.jruby.runtime.builtin.IRubyObject length
         6: .line 280
            iload 3 /* argc */
            tableswitch { // 1 - 3
                    1: 9
                    2: 8
                    3: 7
              default: 10
          }
         7: .line 281
      StackMap locals: org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* args */
            iconst_2
            aaload
            astore 7 /* str */
         8: .line 282
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_1
            aaload
            astore 6 /* flags */
         9: .line 283
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            iconst_0
            aaload
            astore 5 /* length */
        10: .line 286
      StackMap locals:
      StackMap stack:
            aload 0 /* socket */
            aload 1 /* context */
            aload 5 /* length */
            aload 6 /* flags */
            aload 7 /* str */
            aload 1 /* context */
            aload 4 /* opts */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.extractExceptionArg:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
            invokestatic org.jruby.ext.socket.RubyUDPSocket.recvfrom_nonblock:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 7 // org.jruby.runtime.builtin.IRubyObject str
        end local 6 // org.jruby.runtime.builtin.IRubyObject flags
        end local 5 // org.jruby.runtime.builtin.IRubyObject length
        end local 4 // org.jruby.runtime.builtin.IRubyObject opts
        end local 3 // int argc
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyBasicSocket socket
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0   socket  Lorg/jruby/ext/socket/RubyBasicSocket;
            0   11     1  context  Lorg/jruby/runtime/ThreadContext;
            0   11     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   11     3     argc  I
            2   11     4     opts  Lorg/jruby/runtime/builtin/IRubyObject;
            6   11     5   length  Lorg/jruby/runtime/builtin/IRubyObject;
            5   11     6    flags  Lorg/jruby/runtime/builtin/IRubyObject;
            4   11     7      str  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      socket   
      context  
      args     

  private static org.jruby.runtime.builtin.IRubyObject recvfrom_nonblock(org.jruby.ext.socket.RubyBasicSocket, org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, boolean);
    descriptor: (Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Z)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=6
        start local 0 // org.jruby.ext.socket.RubyBasicSocket socket
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject length
        start local 3 // org.jruby.runtime.builtin.IRubyObject flags
        start local 4 // org.jruby.runtime.builtin.IRubyObject str
        start local 5 // boolean exception
         0: .line 291
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 6 /* runtime */
        start local 6 // org.jruby.Ruby runtime
         1: .line 294
            aload 0 /* socket */
            aload 6 /* runtime */
            aload 2 /* length */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokestatic org.jruby.ext.socket.RubyUDPSocket.doReceiveNonblockTuple:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;I)Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
            astore 7 /* tuple */
        start local 7 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
         2: .line 296
            aload 7 /* tuple */
            ifnonnull 6
         3: .line 297
            iload 5 /* exception */
            ifne 5
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "wait_readable"
            invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
         4: areturn
         5: .line 298
      StackMap locals: org.jruby.Ruby org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "recvfrom(2)"
            invokevirtual org.jruby.Ruby.newErrnoEAGAINReadableError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 302
      StackMap locals:
      StackMap stack:
            aload 4 /* str */
            ifnull 10
            aload 4 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 10
         7: .line 303
            aload 4 /* str */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 4 /* str */
         8: .line 304
            aload 4 /* str */
            checkcast org.jruby.RubyString
            aload 7 /* tuple */
            getfield org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.result:Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokevirtual org.jruby.RubyString.setValue:(Lorg/jruby/util/ByteList;)V
         9: .line 305
            goto 11
        10: .line 307
      StackMap locals:
      StackMap stack:
            aload 7 /* tuple */
            getfield org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.result:Lorg/jruby/RubyString;
            astore 4 /* str */
        11: .line 310
      StackMap locals:
      StackMap stack:
            aload 0 /* socket */
            aload 1 /* context */
            aload 7 /* tuple */
            getfield org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.sender:Ljava/net/InetSocketAddress;
            iconst_0
            invokevirtual org.jruby.ext.socket.RubyBasicSocket.addrFor:(Lorg/jruby/runtime/ThreadContext;Ljava/net/InetSocketAddress;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8 /* addressArray */
        start local 8 // org.jruby.runtime.builtin.IRubyObject addressArray
        12: .line 312
            aload 6 /* runtime */
            aload 4 /* str */
            aload 8 /* addressArray */
            invokevirtual org.jruby.Ruby.newArray:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
        13: areturn
        end local 8 // org.jruby.runtime.builtin.IRubyObject addressArray
        end local 7 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
        14: .line 314
      StackMap locals: org.jruby.ext.socket.RubyBasicSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jruby.Ruby
      StackMap stack: java.net.UnknownHostException
            pop
        15: .line 315
            aload 6 /* runtime */
            ldc "recvfrom: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        16: .line 317
      StackMap locals:
      StackMap stack: java.net.PortUnreachableException
            pop
        17: .line 318
            aload 6 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoECONNREFUSEDError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        18: .line 320
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 7 /* e */
        start local 7 // java.io.IOException e
        19: .line 321
            aload 6 /* runtime */
            aload 7 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 7 // java.io.IOException e
        20: .line 323
      StackMap locals:
      StackMap stack: org.jruby.exceptions.RaiseException
            astore 7 /* e */
        start local 7 // org.jruby.exceptions.RaiseException e
        21: aload 7 /* e */
            athrow
        end local 7 // org.jruby.exceptions.RaiseException e
        22: .line 324
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        23: .line 325
            aload 6 /* runtime */
            aload 7 /* e */
            invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
            aload 7 /* e */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 7 // java.lang.Exception e
        end local 6 // org.jruby.Ruby runtime
        end local 5 // boolean exception
        end local 4 // org.jruby.runtime.builtin.IRubyObject str
        end local 3 // org.jruby.runtime.builtin.IRubyObject flags
        end local 2 // org.jruby.runtime.builtin.IRubyObject length
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyBasicSocket socket
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   24     0        socket  Lorg/jruby/ext/socket/RubyBasicSocket;
            0   24     1       context  Lorg/jruby/runtime/ThreadContext;
            0   24     2        length  Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     3         flags  Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     4           str  Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     5     exception  Z
            1   24     6       runtime  Lorg/jruby/Ruby;
            2   14     7         tuple  Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
           12   14     8  addressArray  Lorg/jruby/runtime/builtin/IRubyObject;
           19   20     7             e  Ljava/io/IOException;
           21   22     7             e  Lorg/jruby/exceptions/RaiseException;
           23   24     7             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     4      14  Class java.net.UnknownHostException
           5    13      14  Class java.net.UnknownHostException
           1     4      16  Class java.net.PortUnreachableException
           5    13      16  Class java.net.PortUnreachableException
           1     4      18  Class java.io.IOException
           5    13      18  Class java.io.IOException
           1     4      20  Class org.jruby.exceptions.RaiseException
           5    13      20  Class org.jruby.exceptions.RaiseException
           1     4      22  Class java.lang.Exception
           5    13      22  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      socket     
      context    
      length     
      flags      
      str        
      exception  

  public org.jruby.runtime.builtin.IRubyObject send(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=4
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject _mesg
        start local 3 // org.jruby.runtime.builtin.IRubyObject _flags
         0: .line 332
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 4 /* runtime */
        start local 4 // org.jruby.Ruby runtime
         1: .line 337
            aload 2 /* _mesg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 6 /* data */
        start local 6 // org.jruby.RubyString data
         2: .line 338
            aload 6 /* data */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 7 /* dataBL */
        start local 7 // org.jruby.util.ByteList dataBL
         3: .line 339
            aload 7 /* dataBL */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 7 /* dataBL */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 7 /* dataBL */
            invokevirtual org.jruby.util.ByteList.realSize:()I
            invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
            astore 8 /* buf */
        start local 8 // java.nio.ByteBuffer buf
         4: .line 341
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.getChannel:()Ljava/nio/channels/Channel;
            checkcast java.nio.channels.DatagramChannel
            aload 8 /* buf */
            invokevirtual java.nio.channels.DatagramChannel.write:(Ljava/nio/ByteBuffer;)I
            istore 5 /* written */
        start local 5 // int written
         5: .line 343
            aload 4 /* runtime */
            iload 5 /* written */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
         6: areturn
        end local 8 // java.nio.ByteBuffer buf
        end local 7 // org.jruby.util.ByteList dataBL
        end local 6 // org.jruby.RubyString data
        end local 5 // int written
         7: .line 345
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby
      StackMap stack: java.nio.channels.NotYetConnectedException
            pop
         8: .line 346
            aload 4 /* runtime */
            ldc "send(2)"
            invokevirtual org.jruby.Ruby.newErrnoEDESTADDRREQError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         9: .line 348
      StackMap locals:
      StackMap stack: java.net.UnknownHostException
            pop
        10: .line 349
            aload 4 /* runtime */
            ldc "send: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        11: .line 351
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
        12: .line 352
            aload 4 /* runtime */
            aload 5 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 5 // java.io.IOException e
        13: .line 354
      StackMap locals:
      StackMap stack: org.jruby.exceptions.RaiseException
            astore 5 /* e */
        start local 5 // org.jruby.exceptions.RaiseException e
        14: aload 5 /* e */
            athrow
        end local 5 // org.jruby.exceptions.RaiseException e
        15: .line 355
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 5 /* e */
        start local 5 // java.lang.Exception e
        16: .line 356
            aload 4 /* runtime */
            aload 5 /* e */
            invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
            aload 5 /* e */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // java.lang.Exception e
        end local 4 // org.jruby.Ruby runtime
        end local 3 // org.jruby.runtime.builtin.IRubyObject _flags
        end local 2 // org.jruby.runtime.builtin.IRubyObject _mesg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0   17     1  context  Lorg/jruby/runtime/ThreadContext;
            0   17     2    _mesg  Lorg/jruby/runtime/builtin/IRubyObject;
            0   17     3   _flags  Lorg/jruby/runtime/builtin/IRubyObject;
            1   17     4  runtime  Lorg/jruby/Ruby;
            5    7     5  written  I
            2    7     6     data  Lorg/jruby/RubyString;
            3    7     7   dataBL  Lorg/jruby/util/ByteList;
            4    7     8      buf  Ljava/nio/ByteBuffer;
           12   13     5        e  Ljava/io/IOException;
           14   15     5        e  Lorg/jruby/exceptions/RaiseException;
           16   17     5        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     6       7  Class java.nio.channels.NotYetConnectedException
           1     6       9  Class java.net.UnknownHostException
           1     6      11  Class java.io.IOException
           1     6      13  Class org.jruby.exceptions.RaiseException
           1     6      15  Class java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod()
    MethodParameters:
         Name  Flags
      context  
      _mesg    
      _flags   

  public org.jruby.runtime.builtin.IRubyObject send(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=17, args_size=3
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 363
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 364
            aload 2 /* args */
            iconst_0
            aaload
            astore 4 /* _mesg */
        start local 4 // org.jruby.runtime.builtin.IRubyObject _mesg
         2: .line 365
            aload 2 /* args */
            iconst_1
            aaload
            astore 5 /* _flags */
        start local 5 // org.jruby.runtime.builtin.IRubyObject _flags
         3: .line 370
            aload 2 /* args */
            arraylength
            iconst_2
            if_icmpne 6
         4: .line 371
            aload 0 /* this */
            aload 1 /* context */
            aload 4 /* _mesg */
            aload 5 /* _flags */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.send:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
         5: areturn
         6: .line 376
      StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* args */
            arraylength
            iconst_3
            if_icmpne 16
         7: .line 378
            aload 2 /* args */
            iconst_2
            aaload
            astore 10 /* sockaddr */
        start local 10 // org.jruby.runtime.builtin.IRubyObject sockaddr
         8: .line 379
            aload 10 /* sockaddr */
            instanceof org.jruby.ext.socket.Addrinfo
            ifeq 12
         9: .line 380
            aload 10 /* sockaddr */
            checkcast org.jruby.ext.socket.Addrinfo
            invokevirtual org.jruby.ext.socket.Addrinfo.getInetSocketAddress:()Ljava/net/InetSocketAddress;
            astore 9 /* sockAddress */
        start local 9 // java.net.InetSocketAddress sockAddress
        10: .line 381
            aload 9 /* sockAddress */
            ifnonnull 13
        11: .line 382
            aload 3 /* runtime */
            ldc "need AF_INET or AF_INET6 address"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 9 // java.net.InetSocketAddress sockAddress
        12: .line 385
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top top top top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 1 /* context */
            aload 10 /* sockaddr */
            invokestatic org.jruby.util.io.Sockaddr.addressFromSockaddr_in:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Ljava/net/InetSocketAddress;
            astore 9 /* sockAddress */
        start local 9 // java.net.InetSocketAddress sockAddress
        13: .line 387
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top top top java.net.InetSocketAddress org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            iconst_1
            anewarray java.net.InetAddress
            dup
            iconst_0
            aload 9 /* sockAddress */
            invokevirtual java.net.InetSocketAddress.getAddress:()Ljava/net/InetAddress;
            aastore
            astore 7 /* addrs */
        start local 7 // java.net.InetAddress[] addrs
        14: .line 388
            aload 9 /* sockAddress */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            istore 8 /* port */
        end local 10 // org.jruby.runtime.builtin.IRubyObject sockaddr
        end local 9 // java.net.InetSocketAddress sockAddress
        start local 8 // int port
        15: .line 389
            goto 28
        end local 8 // int port
        end local 7 // java.net.InetAddress[] addrs
        16: .line 390
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 2 /* args */
            iconst_2
            aaload
            astore 9 /* _host */
        start local 9 // org.jruby.runtime.builtin.IRubyObject _host
        17: .line 391
            aload 2 /* args */
            iconst_3
            aaload
            astore 10 /* _port */
        start local 10 // org.jruby.runtime.builtin.IRubyObject _port
        18: .line 393
            aload 9 /* _host */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 11 /* nameStr */
        start local 11 // org.jruby.RubyString nameStr
        19: .line 395
            aload 10 /* _port */
            instanceof org.jruby.RubyString
            ifeq 26
        20: .line 397
            aload 10 /* _port */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.asJavaString:()Ljava/lang/String;
            ldc "udp"
            invokestatic jnr.netdb.Service.getServiceByName:(Ljava/lang/String;Ljava/lang/String;)Ljnr/netdb/Service;
            astore 12 /* service */
        start local 12 // jnr.netdb.Service service
        21: .line 399
            aload 12 /* service */
            ifnull 24
        22: .line 400
            aload 12 /* service */
            invokevirtual jnr.netdb.Service.getPort:()I
            istore 8 /* port */
        start local 8 // int port
        23: .line 401
            goto 27
        end local 8 // int port
        24: .line 402
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top top top org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString jnr.netdb.Service
      StackMap stack:
            aload 10 /* _port */
            ldc "to_i"
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:(Ljava/lang/String;)Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            l2i
            istore 8 /* port */
        end local 12 // jnr.netdb.Service service
        start local 8 // int port
        25: .line 405
            goto 27
        end local 8 // int port
        26: .line 406
      StackMap locals:
      StackMap stack:
            aload 10 /* _port */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
            invokevirtual org.jruby.RubyInteger.getLongValue:()J
            l2i
            istore 8 /* port */
        start local 8 // int port
        27: .line 409
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top top int org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyString
      StackMap stack:
            aload 11 /* nameStr */
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            invokestatic org.jruby.ext.socket.SocketUtils.getRubyInetAddresses:(Lorg/jruby/util/ByteList;)[Ljava/net/InetAddress;
            astore 7 /* addrs */
        end local 11 // org.jruby.RubyString nameStr
        end local 10 // org.jruby.runtime.builtin.IRubyObject _port
        end local 9 // org.jruby.runtime.builtin.IRubyObject _host
        start local 7 // java.net.InetAddress[] addrs
        28: .line 412
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top java.net.InetAddress[] int
      StackMap stack:
            aload 4 /* _mesg */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            astore 9 /* data */
        start local 9 // org.jruby.RubyString data
        29: .line 413
            aload 9 /* data */
            invokevirtual org.jruby.RubyString.getBytes:()[B
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            astore 10 /* buf */
        start local 10 // java.nio.ByteBuffer buf
        30: .line 415
            aload 9 /* data */
            invokevirtual org.jruby.RubyString.getBytes:()[B
            astore 11 /* buf2 */
        start local 11 // byte[] buf2
        31: .line 418
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        32: goto 50
        33: .line 419
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top java.net.InetAddress[] int org.jruby.RubyString java.nio.ByteBuffer byte[] top int
      StackMap stack:
            aload 7 /* addrs */
            iload 13 /* i */
            aaload
            astore 14 /* inetAddress */
        start local 14 // java.net.InetAddress inetAddress
        34: .line 420
            new java.net.InetSocketAddress
            dup
            aload 14 /* inetAddress */
            iload 8 /* port */
            invokespecial java.net.InetSocketAddress.<init>:(Ljava/net/InetAddress;I)V
            astore 15 /* addr */
        start local 15 // java.net.InetSocketAddress addr
        35: .line 423
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.multicastStateManager:Lorg/jruby/ext/socket/MulticastStateManager;
            ifnonnull 38
        36: .line 424
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.getChannel:()Ljava/nio/channels/Channel;
            checkcast java.nio.channels.DatagramChannel
            aload 10 /* buf */
            aload 15 /* addr */
            invokevirtual java.nio.channels.DatagramChannel.send:(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I
            istore 6 /* written */
        start local 6 // int written
        37: .line 426
            goto 43
        end local 6 // int written
        38: .line 427
      StackMap locals: java.net.InetAddress java.net.InetSocketAddress
      StackMap stack:
            new java.net.DatagramPacket
            dup
            aload 11 /* buf2 */
            aload 11 /* buf2 */
            arraylength
            aload 15 /* addr */
            invokespecial java.net.DatagramPacket.<init>:([BILjava/net/SocketAddress;)V
            astore 12 /* sendDP */
        start local 12 // java.net.DatagramPacket sendDP
        39: .line 428
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.multicastStateManager:Lorg/jruby/ext/socket/MulticastStateManager;
            aload 15 /* addr */
            invokevirtual java.net.InetSocketAddress.getPort:()I
            invokevirtual org.jruby.ext.socket.MulticastStateManager.rebindToPort:(I)V
        40: .line 429
            aload 0 /* this */
            getfield org.jruby.ext.socket.RubyUDPSocket.multicastStateManager:Lorg/jruby/ext/socket/MulticastStateManager;
            invokevirtual org.jruby.ext.socket.MulticastStateManager.getMulticastSocket:()Ljava/net/MulticastSocket;
            astore 16 /* ms */
        start local 16 // java.net.MulticastSocket ms
        41: .line 431
            aload 16 /* ms */
            aload 12 /* sendDP */
            invokevirtual java.net.MulticastSocket.send:(Ljava/net/DatagramPacket;)V
        42: .line 432
            aload 12 /* sendDP */
            invokevirtual java.net.DatagramPacket.getLength:()I
            istore 6 /* written */
        end local 16 // java.net.MulticastSocket ms
        end local 12 // java.net.DatagramPacket sendDP
        start local 6 // int written
        43: .line 435
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int java.net.InetAddress[] int org.jruby.RubyString java.nio.ByteBuffer byte[] top int java.net.InetAddress java.net.InetSocketAddress
      StackMap stack:
            aload 3 /* runtime */
            iload 6 /* written */
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
        44: areturn
        end local 6 // int written
        45: .line 436
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject top java.net.InetAddress[] int org.jruby.RubyString java.nio.ByteBuffer byte[] top int java.net.InetAddress java.net.InetSocketAddress
      StackMap stack: java.net.NoRouteToHostException
            astore 16 /* nrthe */
        start local 16 // java.net.NoRouteToHostException nrthe
        46: .line 437
            iload 13 /* i */
            iconst_1
            iadd
            aload 7 /* addrs */
            arraylength
            if_icmpge 48
        47: .line 438
            goto 49
        48: .line 440
      StackMap locals: java.net.NoRouteToHostException
      StackMap stack:
            aload 16 /* nrthe */
            athrow
        end local 16 // java.net.NoRouteToHostException nrthe
        end local 15 // java.net.InetSocketAddress addr
        end local 14 // java.net.InetAddress inetAddress
        49: .line 418
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        50: iload 13 /* i */
            aload 7 /* addrs */
            arraylength
            if_icmplt 33
        end local 13 // int i
        end local 11 // byte[] buf2
        end local 10 // java.nio.ByteBuffer buf
        end local 9 // org.jruby.RubyString data
        end local 8 // int port
        end local 7 // java.net.InetAddress[] addrs
        51: .line 443
            goto 66
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack: java.net.UnknownHostException
        52: pop
        53: .line 444
            aload 3 /* runtime */
            ldc "send: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        54: .line 445
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 6 /* e */
        start local 6 // java.io.IOException e
        55: .line 446
            aload 6 /* e */
            invokevirtual java.io.IOException.getMessage:()Ljava/lang/String;
            astore 7 /* message */
        start local 7 // java.lang.String message
        56: .line 447
            aload 7 /* message */
            ifnull 61
        57: .line 448
            aload 7 /* message */
            dup
            astore 8
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
            999393398: 58
           1694819809: 59
              default: 61
          }
      StackMap locals: java.io.IOException java.lang.String java.lang.String
      StackMap stack:
        58: aload 8
            ldc "Message too large"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 60
            goto 61
      StackMap locals:
      StackMap stack:
        59: aload 8
            ldc "Message too long"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 60
            goto 61
        60: .line 451
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoEMSGSIZEError:()Lorg/jruby/exceptions/RaiseException;
            athrow
        61: .line 454
      StackMap locals:
      StackMap stack:
            aload 3 /* runtime */
            aload 6 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 7 // java.lang.String message
        end local 6 // java.io.IOException e
        62: .line 456
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.exceptions.RaiseException
            astore 6 /* e */
        start local 6 // org.jruby.exceptions.RaiseException e
        63: aload 6 /* e */
            athrow
        end local 6 // org.jruby.exceptions.RaiseException e
        64: .line 457
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 6 /* e */
        start local 6 // java.lang.Exception e
        65: .line 458
            aload 3 /* runtime */
            aload 6 /* e */
            invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
            aload 6 /* e */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 6 // java.lang.Exception e
        66: .line 462
      StackMap locals:
      StackMap stack:
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject _flags
        end local 4 // org.jruby.runtime.builtin.IRubyObject _mesg
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   67     0         this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0   67     1      context  Lorg/jruby/runtime/ThreadContext;
            0   67     2         args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   67     3      runtime  Lorg/jruby/Ruby;
            2   67     4        _mesg  Lorg/jruby/runtime/builtin/IRubyObject;
            3   67     5       _flags  Lorg/jruby/runtime/builtin/IRubyObject;
           37   38     6      written  I
           43   45     6      written  I
           14   16     7        addrs  [Ljava/net/InetAddress;
           28   51     7        addrs  [Ljava/net/InetAddress;
           15   16     8         port  I
           23   24     8         port  I
           25   26     8         port  I
           27   51     8         port  I
           10   12     9  sockAddress  Ljava/net/InetSocketAddress;
           13   15     9  sockAddress  Ljava/net/InetSocketAddress;
            8   15    10     sockaddr  Lorg/jruby/runtime/builtin/IRubyObject;
           17   28     9        _host  Lorg/jruby/runtime/builtin/IRubyObject;
           18   28    10        _port  Lorg/jruby/runtime/builtin/IRubyObject;
           19   28    11      nameStr  Lorg/jruby/RubyString;
           21   25    12      service  Ljnr/netdb/Service;
           29   51     9         data  Lorg/jruby/RubyString;
           30   51    10          buf  Ljava/nio/ByteBuffer;
           31   51    11         buf2  [B
           39   43    12       sendDP  Ljava/net/DatagramPacket;
           32   51    13            i  I
           34   49    14  inetAddress  Ljava/net/InetAddress;
           35   49    15         addr  Ljava/net/InetSocketAddress;
           41   43    16           ms  Ljava/net/MulticastSocket;
           46   49    16        nrthe  Ljava/net/NoRouteToHostException;
           55   62     6            e  Ljava/io/IOException;
           56   62     7      message  Ljava/lang/String;
           63   64     6            e  Lorg/jruby/exceptions/RaiseException;
           65   66     6            e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          35    44      45  Class java.net.NoRouteToHostException
           3     5      52  Class java.net.UnknownHostException
           6    44      52  Class java.net.UnknownHostException
          45    51      52  Class java.net.UnknownHostException
           3     5      54  Class java.io.IOException
           6    44      54  Class java.io.IOException
          45    51      54  Class java.io.IOException
           3     5      62  Class org.jruby.exceptions.RaiseException
           6    44      62  Class org.jruby.exceptions.RaiseException
          45    51      62  Class org.jruby.exceptions.RaiseException
           3     5      64  Class java.lang.Exception
           6    44      64  Class java.lang.Exception
          45    51      64  Class java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 2, optional = 2)
    MethodParameters:
         Name  Flags
      context  
      args     

  public static org.jruby.runtime.builtin.IRubyObject open(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 3 // org.jruby.runtime.Block block
         0: .line 467
            aload 1 /* recv */
            aload 0 /* context */
            ldc "new"
            aload 2 /* args */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.ext.socket.RubyUDPSocket
            astore 4 /* sock */
        start local 4 // org.jruby.ext.socket.RubyUDPSocket sock
         1: .line 469
            aload 3 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifne 3
         2: .line 470
            aload 4 /* sock */
            areturn
         3: .line 474
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket
      StackMap stack:
            aload 3 /* block */
            aload 0 /* context */
            aload 4 /* sock */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 6
         4: .line 477
            aload 4 /* sock */
            getfield org.jruby.ext.socket.RubyUDPSocket.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isOpen:()Z
            ifeq 6
         5: .line 478
            aload 4 /* sock */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.close:()V
         6: .line 474
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.ext.socket.RubyUDPSocket top org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 6
            areturn
         7: .line 476
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.ext.socket.RubyUDPSocket
      StackMap stack: java.lang.Throwable
            astore 5
         8: .line 477
            aload 4 /* sock */
            getfield org.jruby.ext.socket.RubyUDPSocket.openFile:Lorg/jruby/util/io/OpenFile;
            invokevirtual org.jruby.util.io.OpenFile.isOpen:()Z
            ifeq 10
         9: .line 478
            aload 4 /* sock */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.close:()V
        10: .line 480
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        end local 4 // org.jruby.ext.socket.RubyUDPSocket sock
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  context  Lorg/jruby/runtime/ThreadContext;
            0   11     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0   11     3    block  Lorg/jruby/runtime/Block;
            1   11     4     sock  Lorg/jruby/ext/socket/RubyUDPSocket;
      Exception table:
        from    to  target  type
           3     4       7  any
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(rest = true, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      args     
      block    

  public org.jruby.runtime.builtin.IRubyObject recvfrom(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject length
         0: .line 488
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* length */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.recvfrom:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject length
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2   length  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      length   

  public static org.jruby.runtime.builtin.IRubyObject recvfrom(org.jruby.ext.socket.RubyBasicSocket, org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // org.jruby.ext.socket.RubyBasicSocket socket
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject length
         0: .line 492
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 495
            aload 0 /* socket */
            aload 3 /* runtime */
            iconst_0
            aload 2 /* length */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            invokestatic org.jruby.ext.socket.RubyUDPSocket.doReceiveTuple:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZI)Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
            astore 4 /* tuple */
        start local 4 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
         2: .line 497
            aload 0 /* socket */
            aload 1 /* context */
            aload 4 /* tuple */
            getfield org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.sender:Ljava/net/InetSocketAddress;
            iconst_0
            invokevirtual org.jruby.ext.socket.RubyBasicSocket.addrFor:(Lorg/jruby/runtime/ThreadContext;Ljava/net/InetSocketAddress;Z)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* addressArray */
        start local 5 // org.jruby.runtime.builtin.IRubyObject addressArray
         3: .line 499
            aload 3 /* runtime */
            aload 4 /* tuple */
            getfield org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.result:Lorg/jruby/RubyString;
            aload 5 /* addressArray */
            invokevirtual org.jruby.Ruby.newArray:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
         4: areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject addressArray
        end local 4 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
         5: .line 501
      StackMap locals: org.jruby.ext.socket.RubyBasicSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby
      StackMap stack: java.net.UnknownHostException
            pop
         6: .line 502
            aload 3 /* runtime */
            ldc "recvfrom: name or service not known"
            invokestatic org.jruby.ext.socket.SocketUtils.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         7: .line 504
      StackMap locals:
      StackMap stack: java.net.PortUnreachableException
            pop
         8: .line 505
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoECONNREFUSEDError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         9: .line 507
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
        10: .line 508
            aload 3 /* runtime */
            aload 4 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // java.io.IOException e
        11: .line 510
      StackMap locals:
      StackMap stack: org.jruby.exceptions.RaiseException
            astore 4 /* e */
        start local 4 // org.jruby.exceptions.RaiseException e
        12: aload 4 /* e */
            athrow
        end local 4 // org.jruby.exceptions.RaiseException e
        13: .line 511
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        14: .line 512
            aload 3 /* runtime */
            aload 4 /* e */
            invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
            aload 4 /* e */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject length
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyBasicSocket socket
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0        socket  Lorg/jruby/ext/socket/RubyBasicSocket;
            0   15     1       context  Lorg/jruby/runtime/ThreadContext;
            0   15     2        length  Lorg/jruby/runtime/builtin/IRubyObject;
            1   15     3       runtime  Lorg/jruby/Ruby;
            2    5     4         tuple  Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
            3    5     5  addressArray  Lorg/jruby/runtime/builtin/IRubyObject;
           10   11     4             e  Ljava/io/IOException;
           12   13     4             e  Lorg/jruby/exceptions/RaiseException;
           14   15     4             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     4       5  Class java.net.UnknownHostException
           1     4       7  Class java.net.PortUnreachableException
           1     4       9  Class java.io.IOException
           1     4      11  Class org.jruby.exceptions.RaiseException
           1     4      13  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      socket   
      context  
      length   

  public org.jruby.runtime.builtin.IRubyObject recvfrom(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject _length
        start local 3 // org.jruby.runtime.builtin.IRubyObject _flags
         0: .line 522
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* _length */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.recvfrom:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject _flags
        end local 2 // org.jruby.runtime.builtin.IRubyObject _length
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  _length  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3   _flags  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
         Name  Flags
      context  
      _length  
      _flags   

  public org.jruby.runtime.builtin.IRubyObject recv(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject length
         0: .line 530
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 3 /* runtime */
        start local 3 // org.jruby.Ruby runtime
         1: .line 533
            aload 0 /* this */
            aload 3 /* runtime */
            iconst_0
            aload 2 /* length */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            aconst_null
            invokestatic org.jruby.ext.socket.RubyUDPSocket.doReceive:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZILorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;)Lorg/jruby/runtime/builtin/IRubyObject;
         2: areturn
         3: .line 535
      StackMap locals: org.jruby.ext.socket.RubyUDPSocket org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby
      StackMap stack: java.net.PortUnreachableException
            pop
         4: .line 536
            aload 3 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoECONNREFUSEDError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         5: .line 538
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 4 /* e */
        start local 4 // java.io.IOException e
         6: .line 539
            aload 3 /* runtime */
            aload 4 /* e */
            invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 4 // java.io.IOException e
         7: .line 541
      StackMap locals:
      StackMap stack: org.jruby.exceptions.RaiseException
            astore 4 /* e */
        start local 4 // org.jruby.exceptions.RaiseException e
         8: aload 4 /* e */
            athrow
        end local 4 // org.jruby.exceptions.RaiseException e
         9: .line 542
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        10: .line 543
            aload 3 /* runtime */
            aload 4 /* e */
            invokevirtual java.lang.Exception.getLocalizedMessage:()Ljava/lang/String;
            aload 4 /* e */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.sockerr:(Lorg/jruby/Ruby;Ljava/lang/String;Ljava/lang/Exception;)Ljava/lang/RuntimeException;
            athrow
        end local 4 // java.lang.Exception e
        end local 3 // org.jruby.Ruby runtime
        end local 2 // org.jruby.runtime.builtin.IRubyObject length
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0   11     1  context  Lorg/jruby/runtime/ThreadContext;
            0   11     2   length  Lorg/jruby/runtime/builtin/IRubyObject;
            1   11     3  runtime  Lorg/jruby/Ruby;
            6    7     4        e  Ljava/io/IOException;
            8    9     4        e  Lorg/jruby/exceptions/RaiseException;
           10   11     4        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.net.PortUnreachableException
           1     2       5  Class java.io.IOException
           1     2       7  Class org.jruby.exceptions.RaiseException
           1     2       9  Class java.lang.Exception
    MethodParameters:
         Name  Flags
      context  
      length   

  private static org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple doReceiveTuple(org.jruby.ext.socket.RubyBasicSocket, org.jruby.Ruby, boolean, int);
    descriptor: (Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZI)Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // org.jruby.ext.socket.RubyBasicSocket socket
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean non_block
        start local 3 // int length
         0: .line 548
            new org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple
            dup
            invokespecial org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.<init>:()V
            astore 4 /* tuple */
        start local 4 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
         1: .line 551
            aload 0 /* socket */
            getfield org.jruby.ext.socket.RubyBasicSocket.multicastStateManager:Lorg/jruby/ext/socket/MulticastStateManager;
            ifnonnull 4
         2: .line 552
            aload 0 /* socket */
            aload 1 /* runtime */
            iload 2 /* non_block */
            iload 3 /* length */
            aload 4 /* tuple */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.doReceive:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZILorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* result */
        start local 5 // org.jruby.runtime.builtin.IRubyObject result
         3: .line 553
            goto 5
        end local 5 // org.jruby.runtime.builtin.IRubyObject result
         4: .line 554
      StackMap locals: org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple
      StackMap stack:
            aload 0 /* socket */
            aload 1 /* runtime */
            iload 2 /* non_block */
            iload 3 /* length */
            aload 4 /* tuple */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.doReceiveMulticast:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZILorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 5 /* result */
        start local 5 // org.jruby.runtime.builtin.IRubyObject result
         5: .line 556
      StackMap locals: org.jruby.runtime.builtin.IRubyObject
      StackMap stack:
            aload 5 /* result */
            ifnonnull 6
            aconst_null
            goto 7
      StackMap locals:
      StackMap stack:
         6: aload 4 /* tuple */
      StackMap locals:
      StackMap stack: org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple
         7: areturn
        end local 5 // org.jruby.runtime.builtin.IRubyObject result
        end local 4 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
        end local 3 // int length
        end local 2 // boolean non_block
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubyBasicSocket socket
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0     socket  Lorg/jruby/ext/socket/RubyBasicSocket;
            0    8     1    runtime  Lorg/jruby/Ruby;
            0    8     2  non_block  Z
            0    8     3     length  I
            1    8     4      tuple  Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
            3    4     5     result  Lorg/jruby/runtime/builtin/IRubyObject;
            5    8     5     result  Lorg/jruby/runtime/builtin/IRubyObject;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      socket     
      runtime    final
      non_block  final
      length     

  private static org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple doReceiveNonblockTuple(org.jruby.ext.socket.RubyBasicSocket, org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;I)Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // org.jruby.ext.socket.RubyBasicSocket socket
        start local 1 // org.jruby.Ruby runtime
        start local 2 // int length
         0: .line 560
            aload 0 /* socket */
            invokevirtual org.jruby.ext.socket.RubyBasicSocket.getChannel:()Ljava/nio/channels/Channel;
            checkcast java.nio.channels.DatagramChannel
            astore 3 /* channel */
        start local 3 // java.nio.channels.DatagramChannel channel
         1: .line 562
            aload 3 /* channel */
            invokevirtual java.nio.channels.DatagramChannel.blockingLock:()Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         2: .line 563
            aload 3 /* channel */
            invokevirtual java.nio.channels.DatagramChannel.isBlocking:()Z
            istore 5 /* oldBlocking */
        start local 5 // boolean oldBlocking
         3: .line 565
            aload 3 /* channel */
            iconst_0
            invokevirtual java.nio.channels.DatagramChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
         4: .line 568
            aload 0 /* socket */
            aload 1 /* runtime */
            iconst_1
            iload 2 /* length */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.doReceiveTuple:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZI)Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
            astore 7
         5: .line 571
            aload 3 /* channel */
            iload 5 /* oldBlocking */
            invokevirtual java.nio.channels.DatagramChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
         6: .line 568
            aload 4
            monitorexit
         7: aload 7
            areturn
         8: .line 570
      StackMap locals: org.jruby.ext.socket.RubyBasicSocket org.jruby.Ruby int java.nio.channels.DatagramChannel java.lang.Object int
      StackMap stack: java.lang.Throwable
            astore 6
         9: .line 571
            aload 3 /* channel */
            iload 5 /* oldBlocking */
            invokevirtual java.nio.channels.DatagramChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
            pop
        10: .line 572
            aload 6
            athrow
        end local 5 // boolean oldBlocking
        11: .line 562
      StackMap locals: org.jruby.ext.socket.RubyBasicSocket org.jruby.Ruby int java.nio.channels.DatagramChannel java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        12: athrow
        end local 3 // java.nio.channels.DatagramChannel channel
        end local 2 // int length
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubyBasicSocket socket
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0       socket  Lorg/jruby/ext/socket/RubyBasicSocket;
            0   13     1      runtime  Lorg/jruby/Ruby;
            0   13     2       length  I
            1   13     3      channel  Ljava/nio/channels/DatagramChannel;
            3   11     5  oldBlocking  Z
      Exception table:
        from    to  target  type
           4     5       8  any
           2     7      11  any
           8    12      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      socket   
      runtime  
      length   

  private static org.jruby.runtime.builtin.IRubyObject doReceive(org.jruby.ext.socket.RubyBasicSocket, org.jruby.Ruby, boolean, int);
    descriptor: (Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZI)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.ext.socket.RubyBasicSocket socket
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean non_block
        start local 3 // int length
         0: .line 578
            aload 0 /* socket */
            aload 1 /* runtime */
            iload 2 /* non_block */
            iload 3 /* length */
            aconst_null
            invokestatic org.jruby.ext.socket.RubyUDPSocket.doReceive:(Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZILorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 3 // int length
        end local 2 // boolean non_block
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubyBasicSocket socket
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0     socket  Lorg/jruby/ext/socket/RubyBasicSocket;
            0    1     1    runtime  Lorg/jruby/Ruby;
            0    1     2  non_block  Z
            0    1     3     length  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      socket     
      runtime    final
      non_block  final
      length     

  protected static org.jruby.runtime.builtin.IRubyObject doReceive(org.jruby.ext.socket.RubyBasicSocket, org.jruby.Ruby, boolean, int, org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple);
    descriptor: (Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZILorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // org.jruby.ext.socket.RubyBasicSocket socket
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean non_block
        start local 3 // int length
        start local 4 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
         0: .line 583
            aload 0 /* socket */
            invokevirtual org.jruby.ext.socket.RubyBasicSocket.getChannel:()Ljava/nio/channels/Channel;
            checkcast java.nio.channels.DatagramChannel
            astore 5 /* channel */
        start local 5 // java.nio.channels.DatagramChannel channel
         1: .line 585
            iload 3 /* length */
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            astore 6 /* buf */
        start local 6 // java.nio.ByteBuffer buf
         2: .line 587
            aload 5 /* channel */
            aload 6 /* buf */
            invokevirtual java.nio.channels.DatagramChannel.receive:(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            astore 7 /* sender */
        start local 7 // java.net.InetSocketAddress sender
         3: .line 589
            aload 7 /* sender */
            ifnonnull 7
         4: .line 590
            iload 2 /* non_block */
            ifeq 6
         5: .line 591
            aconst_null
            areturn
         6: .line 594
      StackMap locals: java.nio.channels.DatagramChannel java.nio.ByteBuffer java.net.InetSocketAddress
      StackMap stack:
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoECONNRESETError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         7: .line 598
      StackMap locals:
      StackMap stack:
            aload 1 /* runtime */
            new org.jruby.util.ByteList
            dup
            aload 6 /* buf */
            invokevirtual java.nio.ByteBuffer.array:()[B
            iconst_0
            aload 6 /* buf */
            invokevirtual java.nio.ByteBuffer.position:()I
            iconst_0
            invokespecial org.jruby.util.ByteList.<init>:([BIIZ)V
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 8 /* result */
        start local 8 // org.jruby.RubyString result
         8: .line 600
            aload 4 /* tuple */
            ifnull 11
         9: .line 601
            aload 4 /* tuple */
            aload 8 /* result */
            putfield org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.result:Lorg/jruby/RubyString;
        10: .line 602
            aload 4 /* tuple */
            aload 7 /* sender */
            putfield org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.sender:Ljava/net/InetSocketAddress;
        11: .line 605
      StackMap locals: org.jruby.RubyString
      StackMap stack:
            aload 8 /* result */
            areturn
        end local 8 // org.jruby.RubyString result
        end local 7 // java.net.InetSocketAddress sender
        end local 6 // java.nio.ByteBuffer buf
        end local 5 // java.nio.channels.DatagramChannel channel
        end local 4 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
        end local 3 // int length
        end local 2 // boolean non_block
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubyBasicSocket socket
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0     socket  Lorg/jruby/ext/socket/RubyBasicSocket;
            0   12     1    runtime  Lorg/jruby/Ruby;
            0   12     2  non_block  Z
            0   12     3     length  I
            0   12     4      tuple  Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
            1   12     5    channel  Ljava/nio/channels/DatagramChannel;
            2   12     6        buf  Ljava/nio/ByteBuffer;
            3   12     7     sender  Ljava/net/InetSocketAddress;
            8   12     8     result  Lorg/jruby/RubyString;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      socket     
      runtime    final
      non_block  final
      length     
      tuple      

  private static org.jruby.runtime.builtin.IRubyObject doReceiveMulticast(org.jruby.ext.socket.RubyBasicSocket, org.jruby.Ruby, boolean, int, org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple);
    descriptor: (Lorg/jruby/ext/socket/RubyBasicSocket;Lorg/jruby/Ruby;ZILorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.jruby.ext.socket.RubyBasicSocket socket
        start local 1 // org.jruby.Ruby runtime
        start local 2 // boolean non_block
        start local 3 // int length
        start local 4 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
         0: .line 610
            new java.net.DatagramPacket
            dup
            iload 3 /* length */
            newarray 8
            iload 3 /* length */
            invokespecial java.net.DatagramPacket.<init>:([BI)V
            astore 5 /* recv */
        start local 5 // java.net.DatagramPacket recv
         1: .line 613
            aload 0 /* socket */
            getfield org.jruby.ext.socket.RubyBasicSocket.multicastStateManager:Lorg/jruby/ext/socket/MulticastStateManager;
            invokevirtual org.jruby.ext.socket.MulticastStateManager.getMulticastSocket:()Ljava/net/MulticastSocket;
            aload 5 /* recv */
            invokevirtual java.net.MulticastSocket.receive:(Ljava/net/DatagramPacket;)V
         2: .line 614
            goto 6
      StackMap locals: org.jruby.ext.socket.RubyBasicSocket org.jruby.Ruby int int org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple java.net.DatagramPacket
      StackMap stack: java.nio.channels.IllegalBlockingModeException
         3: pop
         4: .line 615
            iload 2 /* non_block */
            ifeq 5
            aconst_null
            areturn
         5: .line 617
      StackMap locals:
      StackMap stack:
            aload 1 /* runtime */
            ldc "multicast UDP does not support nonblocking"
            invokevirtual org.jruby.Ruby.newErrnoEAGAINReadableError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         6: .line 620
      StackMap locals:
      StackMap stack:
            aload 5 /* recv */
            invokevirtual java.net.DatagramPacket.getSocketAddress:()Ljava/net/SocketAddress;
            checkcast java.net.InetSocketAddress
            astore 6 /* sender */
        start local 6 // java.net.InetSocketAddress sender
         7: .line 622
            aload 6 /* sender */
            ifnonnull 8
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.newErrnoECONNRESETError:()Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 624
      StackMap locals: java.net.InetSocketAddress
      StackMap stack:
            aload 1 /* runtime */
            new org.jruby.util.ByteList
            dup
            aload 5 /* recv */
            invokevirtual java.net.DatagramPacket.getData:()[B
            aload 5 /* recv */
            invokevirtual java.net.DatagramPacket.getOffset:()I
            aload 5 /* recv */
            invokevirtual java.net.DatagramPacket.getLength:()I
            iconst_0
            invokespecial org.jruby.util.ByteList.<init>:([BIIZ)V
            invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
            astore 7 /* result */
        start local 7 // org.jruby.RubyString result
         9: .line 626
            aload 4 /* tuple */
            ifnull 12
        10: .line 627
            aload 4 /* tuple */
            aload 7 /* result */
            putfield org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.result:Lorg/jruby/RubyString;
        11: .line 628
            aload 4 /* tuple */
            aload 6 /* sender */
            putfield org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple.sender:Ljava/net/InetSocketAddress;
        12: .line 631
      StackMap locals: org.jruby.RubyString
      StackMap stack:
            aload 7 /* result */
            areturn
        end local 7 // org.jruby.RubyString result
        end local 6 // java.net.InetSocketAddress sender
        end local 5 // java.net.DatagramPacket recv
        end local 4 // org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple tuple
        end local 3 // int length
        end local 2 // boolean non_block
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.socket.RubyBasicSocket socket
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0     socket  Lorg/jruby/ext/socket/RubyBasicSocket;
            0   13     1    runtime  Lorg/jruby/Ruby;
            0   13     2  non_block  Z
            0   13     3     length  I
            0   13     4      tuple  Lorg/jruby/ext/socket/RubyBasicSocket$ReceiveTuple;
            1   13     5       recv  Ljava/net/DatagramPacket;
            7   13     6     sender  Ljava/net/InetSocketAddress;
            9   13     7     result  Lorg/jruby/RubyString;
      Exception table:
        from    to  target  type
           1     2       3  Class java.nio.channels.IllegalBlockingModeException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      socket     
      runtime    final
      non_block  final
      length     
      tuple      

  public org.jruby.runtime.builtin.IRubyObject bind(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.builtin.IRubyObject host
        start local 2 // org.jruby.runtime.builtin.IRubyObject port
         0: .line 639
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* host */
            aload 2 /* port */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.bind:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject port
        end local 1 // org.jruby.runtime.builtin.IRubyObject host
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    1     1  host  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  port  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      host  
      port  

  public org.jruby.runtime.builtin.IRubyObject connect(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.builtin.IRubyObject host
        start local 2 // org.jruby.runtime.builtin.IRubyObject port
         0: .line 644
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* host */
            aload 2 /* port */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.connect:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject port
        end local 1 // org.jruby.runtime.builtin.IRubyObject host
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    1     1  host  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  port  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      host  
      port  

  public org.jruby.runtime.builtin.IRubyObject recvfrom(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 649
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* args */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.recvfrom:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    1     1  args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      args  

  public org.jruby.runtime.builtin.IRubyObject send(org.jruby.runtime.builtin.IRubyObject[]);
    descriptor: ([Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.jruby.ext.socket.RubyUDPSocket this
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 654
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 1 /* args */
            invokevirtual org.jruby.ext.socket.RubyUDPSocket.send:(Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.ext.socket.RubyUDPSocket this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/socket/RubyUDPSocket;
            0    1     1  args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      args  

  public static org.jruby.runtime.builtin.IRubyObject open(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.runtime.builtin.IRubyObject recv
        start local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        start local 2 // org.jruby.runtime.Block block
         0: .line 659
            aload 0 /* recv */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
            aload 0 /* recv */
            aload 1 /* args */
            aload 2 /* block */
            invokestatic org.jruby.ext.socket.RubyUDPSocket.open:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.Block block
        end local 1 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 0 // org.jruby.runtime.builtin.IRubyObject recv
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     1   args  [Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      recv   
      args   
      block  
}
SourceFile: "RubyUDPSocket.java"
NestMembers:
  org.jruby.ext.socket.RubyUDPSocket$1
InnerClasses:
  protected ReceiveTuple = org.jruby.ext.socket.RubyBasicSocket$ReceiveTuple of org.jruby.ext.socket.RubyBasicSocket
  org.jruby.ext.socket.RubyUDPSocket$1
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyClass(name = {"UDPSocket"}, parent = "IPSocket")