public class org.apache.cassandra.cql3.functions.UDAggregate extends org.apache.cassandra.cql3.functions.AbstractFunction implements org.apache.cassandra.cql3.functions.AggregateFunction
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.cql3.functions.UDAggregate
  super_class: org.apache.cassandra.cql3.functions.AbstractFunction
{
  protected static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  private final org.apache.cassandra.db.marshal.AbstractType<?> stateType;
    descriptor: Lorg/apache/cassandra/db/marshal/AbstractType;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/apache/cassandra/db/marshal/AbstractType<*>;

  private final com.datastax.driver.core.TypeCodec stateTypeCodec;
    descriptor: Lcom/datastax/driver/core/TypeCodec;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.datastax.driver.core.TypeCodec returnTypeCodec;
    descriptor: Lcom/datastax/driver/core/TypeCodec;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final java.nio.ByteBuffer initcond;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private final org.apache.cassandra.cql3.functions.ScalarFunction stateFunction;
    descriptor: Lorg/apache/cassandra/cql3/functions/ScalarFunction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.cql3.functions.ScalarFunction finalFunction;
    descriptor: Lorg/apache/cassandra/cql3/functions/ScalarFunction;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 39
            ldc Lorg/apache/cassandra/cql3/functions/UDAggregate;
            invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
            putstatic org.apache.cassandra.cql3.functions.UDAggregate.logger:Lorg/slf4j/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.cassandra.cql3.functions.FunctionName, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>, org.apache.cassandra.db.marshal.AbstractType<?>, org.apache.cassandra.cql3.functions.ScalarFunction, org.apache.cassandra.cql3.functions.ScalarFunction, java.nio.ByteBuffer);
    descriptor: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=7
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
        start local 1 // org.apache.cassandra.cql3.functions.FunctionName name
        start local 2 // java.util.List argTypes
        start local 3 // org.apache.cassandra.db.marshal.AbstractType returnType
        start local 4 // org.apache.cassandra.cql3.functions.ScalarFunction stateFunc
        start local 5 // org.apache.cassandra.cql3.functions.ScalarFunction finalFunc
        start local 6 // java.nio.ByteBuffer initcond
         0: .line 55
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* argTypes */
            aload 3 /* returnType */
            invokespecial org.apache.cassandra.cql3.functions.AbstractFunction.<init>:(Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;)V
         1: .line 56
            aload 0 /* this */
            aload 4 /* stateFunc */
            putfield org.apache.cassandra.cql3.functions.UDAggregate.stateFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
         2: .line 57
            aload 0 /* this */
            aload 5 /* finalFunc */
            putfield org.apache.cassandra.cql3.functions.UDAggregate.finalFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
         3: .line 58
            aload 0 /* this */
            aload 4 /* stateFunc */
            ifnull 4
            aload 4 /* stateFunc */
            invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.returnType:()Lorg/apache/cassandra/db/marshal/AbstractType;
            goto 5
      StackMap locals: org.apache.cassandra.cql3.functions.UDAggregate org.apache.cassandra.cql3.functions.FunctionName java.util.List org.apache.cassandra.db.marshal.AbstractType org.apache.cassandra.cql3.functions.ScalarFunction org.apache.cassandra.cql3.functions.ScalarFunction java.nio.ByteBuffer
      StackMap stack: org.apache.cassandra.cql3.functions.UDAggregate
         4: aconst_null
      StackMap locals: org.apache.cassandra.cql3.functions.UDAggregate org.apache.cassandra.cql3.functions.FunctionName java.util.List org.apache.cassandra.db.marshal.AbstractType org.apache.cassandra.cql3.functions.ScalarFunction org.apache.cassandra.cql3.functions.ScalarFunction java.nio.ByteBuffer
      StackMap stack: org.apache.cassandra.cql3.functions.UDAggregate org.apache.cassandra.db.marshal.AbstractType
         5: putfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
         6: .line 59
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
            ifnull 7
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
            invokestatic org.apache.cassandra.cql3.functions.UDHelper.driverType:(Lorg/apache/cassandra/db/marshal/AbstractType;)Lcom/datastax/driver/core/DataType;
            invokestatic org.apache.cassandra.cql3.functions.UDHelper.codecFor:(Lcom/datastax/driver/core/DataType;)Lcom/datastax/driver/core/TypeCodec;
            goto 8
      StackMap locals:
      StackMap stack: org.apache.cassandra.cql3.functions.UDAggregate
         7: aconst_null
      StackMap locals: org.apache.cassandra.cql3.functions.UDAggregate org.apache.cassandra.cql3.functions.FunctionName java.util.List org.apache.cassandra.db.marshal.AbstractType org.apache.cassandra.cql3.functions.ScalarFunction org.apache.cassandra.cql3.functions.ScalarFunction java.nio.ByteBuffer
      StackMap stack: org.apache.cassandra.cql3.functions.UDAggregate com.datastax.driver.core.TypeCodec
         8: putfield org.apache.cassandra.cql3.functions.UDAggregate.stateTypeCodec:Lcom/datastax/driver/core/TypeCodec;
         9: .line 60
            aload 0 /* this */
            aload 3 /* returnType */
            ifnull 10
            aload 3 /* returnType */
            invokestatic org.apache.cassandra.cql3.functions.UDHelper.driverType:(Lorg/apache/cassandra/db/marshal/AbstractType;)Lcom/datastax/driver/core/DataType;
            invokestatic org.apache.cassandra.cql3.functions.UDHelper.codecFor:(Lcom/datastax/driver/core/DataType;)Lcom/datastax/driver/core/TypeCodec;
            goto 11
      StackMap locals:
      StackMap stack: org.apache.cassandra.cql3.functions.UDAggregate
        10: aconst_null
      StackMap locals: org.apache.cassandra.cql3.functions.UDAggregate org.apache.cassandra.cql3.functions.FunctionName java.util.List org.apache.cassandra.db.marshal.AbstractType org.apache.cassandra.cql3.functions.ScalarFunction org.apache.cassandra.cql3.functions.ScalarFunction java.nio.ByteBuffer
      StackMap stack: org.apache.cassandra.cql3.functions.UDAggregate com.datastax.driver.core.TypeCodec
        11: putfield org.apache.cassandra.cql3.functions.UDAggregate.returnTypeCodec:Lcom/datastax/driver/core/TypeCodec;
        12: .line 61
            aload 0 /* this */
            aload 6 /* initcond */
            putfield org.apache.cassandra.cql3.functions.UDAggregate.initcond:Ljava/nio/ByteBuffer;
        13: .line 62
            return
        end local 6 // java.nio.ByteBuffer initcond
        end local 5 // org.apache.cassandra.cql3.functions.ScalarFunction finalFunc
        end local 4 // org.apache.cassandra.cql3.functions.ScalarFunction stateFunc
        end local 3 // org.apache.cassandra.db.marshal.AbstractType returnType
        end local 2 // java.util.List argTypes
        end local 1 // org.apache.cassandra.cql3.functions.FunctionName name
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0        this  Lorg/apache/cassandra/cql3/functions/UDAggregate;
            0   14     1        name  Lorg/apache/cassandra/cql3/functions/FunctionName;
            0   14     2    argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
            0   14     3  returnType  Lorg/apache/cassandra/db/marshal/AbstractType<*>;
            0   14     4   stateFunc  Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            0   14     5   finalFunc  Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            0   14     6    initcond  Ljava/nio/ByteBuffer;
    Signature: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;Lorg/apache/cassandra/db/marshal/AbstractType<*>;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/nio/ByteBuffer;)V
    MethodParameters:
            Name  Flags
      name        
      argTypes    
      returnType  
      stateFunc   
      finalFunc   
      initcond    

  public static org.apache.cassandra.cql3.functions.UDAggregate create(org.apache.cassandra.schema.Functions, org.apache.cassandra.cql3.functions.FunctionName, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>, org.apache.cassandra.db.marshal.AbstractType<?>, org.apache.cassandra.cql3.functions.FunctionName, org.apache.cassandra.cql3.functions.FunctionName, org.apache.cassandra.db.marshal.AbstractType<?>, java.nio.ByteBuffer);
    descriptor: (Lorg/apache/cassandra/schema/Functions;Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;Lorg/apache/cassandra/cql3/functions/FunctionName;Lorg/apache/cassandra/cql3/functions/FunctionName;Lorg/apache/cassandra/db/marshal/AbstractType;Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/cql3/functions/UDAggregate;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=10, locals=10, args_size=8
        start local 0 // org.apache.cassandra.schema.Functions functions
        start local 1 // org.apache.cassandra.cql3.functions.FunctionName name
        start local 2 // java.util.List argTypes
        start local 3 // org.apache.cassandra.db.marshal.AbstractType returnType
        start local 4 // org.apache.cassandra.cql3.functions.FunctionName stateFunc
        start local 5 // org.apache.cassandra.cql3.functions.FunctionName finalFunc
        start local 6 // org.apache.cassandra.db.marshal.AbstractType stateType
        start local 7 // java.nio.ByteBuffer initcond
         0: .line 74
            new java.util.ArrayList
            dup
            aload 2 /* argTypes */
            invokeinterface java.util.List.size:()I
            iconst_1
            iadd
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 8 /* stateTypes */
        start local 8 // java.util.List stateTypes
         1: .line 75
            aload 8 /* stateTypes */
            aload 6 /* stateType */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 76
            aload 8 /* stateTypes */
            aload 2 /* argTypes */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         3: .line 77
            aload 6 /* stateType */
            invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
            astore 9 /* finalTypes */
        start local 9 // java.util.List finalTypes
         4: .line 78
            new org.apache.cassandra.cql3.functions.UDAggregate
            dup
            aload 1 /* name */
         5: .line 79
            aload 2 /* argTypes */
         6: .line 80
            aload 3 /* returnType */
         7: .line 81
            aload 0 /* functions */
            aload 1 /* name */
            aload 4 /* stateFunc */
            aload 8 /* stateTypes */
            invokestatic org.apache.cassandra.cql3.functions.UDAggregate.resolveScalar:(Lorg/apache/cassandra/schema/Functions;Lorg/apache/cassandra/cql3/functions/FunctionName;Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;)Lorg/apache/cassandra/cql3/functions/ScalarFunction;
         8: .line 82
            aload 5 /* finalFunc */
            ifnull 9
            aload 0 /* functions */
            aload 1 /* name */
            aload 5 /* finalFunc */
            aload 9 /* finalTypes */
            invokestatic org.apache.cassandra.cql3.functions.UDAggregate.resolveScalar:(Lorg/apache/cassandra/schema/Functions;Lorg/apache/cassandra/cql3/functions/FunctionName;Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;)Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            goto 10
      StackMap locals: org.apache.cassandra.schema.Functions org.apache.cassandra.cql3.functions.FunctionName java.util.List org.apache.cassandra.db.marshal.AbstractType org.apache.cassandra.cql3.functions.FunctionName org.apache.cassandra.cql3.functions.FunctionName org.apache.cassandra.db.marshal.AbstractType java.nio.ByteBuffer java.util.List java.util.List
      StackMap stack: new 4 new 4 org.apache.cassandra.cql3.functions.FunctionName java.util.List org.apache.cassandra.db.marshal.AbstractType org.apache.cassandra.cql3.functions.ScalarFunction
         9: aconst_null
        10: .line 83
      StackMap locals: org.apache.cassandra.schema.Functions org.apache.cassandra.cql3.functions.FunctionName java.util.List org.apache.cassandra.db.marshal.AbstractType org.apache.cassandra.cql3.functions.FunctionName org.apache.cassandra.cql3.functions.FunctionName org.apache.cassandra.db.marshal.AbstractType java.nio.ByteBuffer java.util.List java.util.List
      StackMap stack: new 4 new 4 org.apache.cassandra.cql3.functions.FunctionName java.util.List org.apache.cassandra.db.marshal.AbstractType org.apache.cassandra.cql3.functions.ScalarFunction org.apache.cassandra.cql3.functions.ScalarFunction
            aload 7 /* initcond */
        11: .line 78
            invokespecial org.apache.cassandra.cql3.functions.UDAggregate.<init>:(Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/nio/ByteBuffer;)V
            areturn
        end local 9 // java.util.List finalTypes
        end local 8 // java.util.List stateTypes
        end local 7 // java.nio.ByteBuffer initcond
        end local 6 // org.apache.cassandra.db.marshal.AbstractType stateType
        end local 5 // org.apache.cassandra.cql3.functions.FunctionName finalFunc
        end local 4 // org.apache.cassandra.cql3.functions.FunctionName stateFunc
        end local 3 // org.apache.cassandra.db.marshal.AbstractType returnType
        end local 2 // java.util.List argTypes
        end local 1 // org.apache.cassandra.cql3.functions.FunctionName name
        end local 0 // org.apache.cassandra.schema.Functions functions
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0   functions  Lorg/apache/cassandra/schema/Functions;
            0   12     1        name  Lorg/apache/cassandra/cql3/functions/FunctionName;
            0   12     2    argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
            0   12     3  returnType  Lorg/apache/cassandra/db/marshal/AbstractType<*>;
            0   12     4   stateFunc  Lorg/apache/cassandra/cql3/functions/FunctionName;
            0   12     5   finalFunc  Lorg/apache/cassandra/cql3/functions/FunctionName;
            0   12     6   stateType  Lorg/apache/cassandra/db/marshal/AbstractType<*>;
            0   12     7    initcond  Ljava/nio/ByteBuffer;
            1   12     8  stateTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
            4   12     9  finalTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Lorg/apache/cassandra/schema/Functions;Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;Lorg/apache/cassandra/db/marshal/AbstractType<*>;Lorg/apache/cassandra/cql3/functions/FunctionName;Lorg/apache/cassandra/cql3/functions/FunctionName;Lorg/apache/cassandra/db/marshal/AbstractType<*>;Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/cql3/functions/UDAggregate;
    MethodParameters:
            Name  Flags
      functions   
      name        
      argTypes    
      returnType  
      stateFunc   
      finalFunc   
      stateType   
      initcond    

  public static org.apache.cassandra.cql3.functions.UDAggregate createBroken(org.apache.cassandra.cql3.functions.FunctionName, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>, org.apache.cassandra.db.marshal.AbstractType<?>, java.nio.ByteBuffer, org.apache.cassandra.exceptions.InvalidRequestException);
    descriptor: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;Ljava/nio/ByteBuffer;Lorg/apache/cassandra/exceptions/InvalidRequestException;)Lorg/apache/cassandra/cql3/functions/UDAggregate;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=5, args_size=5
        start local 0 // org.apache.cassandra.cql3.functions.FunctionName name
        start local 1 // java.util.List argTypes
        start local 2 // org.apache.cassandra.db.marshal.AbstractType returnType
        start local 3 // java.nio.ByteBuffer initcond
        start local 4 // org.apache.cassandra.exceptions.InvalidRequestException reason
         0: .line 92
            new org.apache.cassandra.cql3.functions.UDAggregate$1
            dup
            aload 0 /* name */
            aload 1 /* argTypes */
            aload 2 /* returnType */
            aconst_null
            aconst_null
            aload 3 /* initcond */
            aload 4 /* reason */
            invokespecial org.apache.cassandra.cql3.functions.UDAggregate$1.<init>:(Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;Lorg/apache/cassandra/db/marshal/AbstractType;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Lorg/apache/cassandra/cql3/functions/ScalarFunction;Ljava/nio/ByteBuffer;Lorg/apache/cassandra/exceptions/InvalidRequestException;)V
            areturn
        end local 4 // org.apache.cassandra.exceptions.InvalidRequestException reason
        end local 3 // java.nio.ByteBuffer initcond
        end local 2 // org.apache.cassandra.db.marshal.AbstractType returnType
        end local 1 // java.util.List argTypes
        end local 0 // org.apache.cassandra.cql3.functions.FunctionName name
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        name  Lorg/apache/cassandra/cql3/functions/FunctionName;
            0    1     1    argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
            0    1     2  returnType  Lorg/apache/cassandra/db/marshal/AbstractType<*>;
            0    1     3    initcond  Ljava/nio/ByteBuffer;
            0    1     4      reason  Lorg/apache/cassandra/exceptions/InvalidRequestException;
    Signature: (Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;Lorg/apache/cassandra/db/marshal/AbstractType<*>;Ljava/nio/ByteBuffer;Lorg/apache/cassandra/exceptions/InvalidRequestException;)Lorg/apache/cassandra/cql3/functions/UDAggregate;
    MethodParameters:
            Name  Flags
      name        
      argTypes    
      returnType  
      initcond    
      reason      

  public boolean hasReferenceTo(org.apache.cassandra.cql3.functions.Function);
    descriptor: (Lorg/apache/cassandra/cql3/functions/Function;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
        start local 1 // org.apache.cassandra.cql3.functions.Function function
         0: .line 106
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            aload 1 /* function */
            if_acmpeq 1
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.finalFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            aload 1 /* function */
            if_acmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // org.apache.cassandra.cql3.functions.Function function
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/cassandra/cql3/functions/UDAggregate;
            0    2     1  function  Lorg/apache/cassandra/cql3/functions/Function;
    MethodParameters:
          Name  Flags
      function  

  public void addFunctionsTo(java.util.List<org.apache.cassandra.cql3.functions.Function>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
        start local 1 // java.util.List functions
         0: .line 112
            aload 1 /* functions */
            aload 0 /* this */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 113
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            ifnull 5
         2: .line 115
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            aload 1 /* functions */
            invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.addFunctionsTo:(Ljava/util/List;)V
         3: .line 117
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.finalFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            ifnull 5
         4: .line 118
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.finalFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            aload 1 /* functions */
            invokeinterface org.apache.cassandra.cql3.functions.ScalarFunction.addFunctionsTo:(Ljava/util/List;)V
         5: .line 120
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List functions
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/apache/cassandra/cql3/functions/UDAggregate;
            0    6     1  functions  Ljava/util/List<Lorg/apache/cassandra/cql3/functions/Function;>;
    Signature: (Ljava/util/List<Lorg/apache/cassandra/cql3/functions/Function;>;)V
    MethodParameters:
           Name  Flags
      functions  

  public boolean isAggregate();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
         0: .line 124
            iconst_1
            ireturn
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/functions/UDAggregate;

  public boolean isNative();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
         0: .line 129
            iconst_0
            ireturn
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/functions/UDAggregate;

  public org.apache.cassandra.cql3.functions.ScalarFunction stateFunction();
    descriptor: ()Lorg/apache/cassandra/cql3/functions/ScalarFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
         0: .line 134
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            areturn
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/functions/UDAggregate;

  public org.apache.cassandra.cql3.functions.ScalarFunction finalFunction();
    descriptor: ()Lorg/apache/cassandra/cql3/functions/ScalarFunction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
         0: .line 139
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.finalFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            areturn
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/functions/UDAggregate;

  public java.nio.ByteBuffer initialCondition();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
         0: .line 144
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.initcond:Ljava/nio/ByteBuffer;
            areturn
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/functions/UDAggregate;

  public org.apache.cassandra.db.marshal.AbstractType<?> stateType();
    descriptor: ()Lorg/apache/cassandra/db/marshal/AbstractType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
         0: .line 149
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
            areturn
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/functions/UDAggregate;
    Signature: ()Lorg/apache/cassandra/db/marshal/AbstractType<*>;

  public org.apache.cassandra.cql3.functions.AggregateFunction$Aggregate newAggregate();
    descriptor: ()Lorg/apache/cassandra/cql3/functions/AggregateFunction$Aggregate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
         0: .line 154
            new org.apache.cassandra.cql3.functions.UDAggregate$2
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.cql3.functions.UDAggregate$2.<init>:(Lorg/apache/cassandra/cql3/functions/UDAggregate;)V
            areturn
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/functions/UDAggregate;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException

  private static org.apache.cassandra.cql3.functions.ScalarFunction resolveScalar(org.apache.cassandra.schema.Functions, org.apache.cassandra.cql3.functions.FunctionName, org.apache.cassandra.cql3.functions.FunctionName, java.util.List<org.apache.cassandra.db.marshal.AbstractType<?>>);
    descriptor: (Lorg/apache/cassandra/schema/Functions;Lorg/apache/cassandra/cql3/functions/FunctionName;Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;)Lorg/apache/cassandra/cql3/functions/ScalarFunction;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=4
        start local 0 // org.apache.cassandra.schema.Functions functions
        start local 1 // org.apache.cassandra.cql3.functions.FunctionName aName
        start local 2 // org.apache.cassandra.cql3.functions.FunctionName fName
        start local 3 // java.util.List argTypes
         0: .line 219
            aload 0 /* functions */
            aload 2 /* fName */
            aload 3 /* argTypes */
            invokevirtual org.apache.cassandra.schema.Functions.find:(Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List;)Ljava/util/Optional;
            astore 4 /* fun */
        start local 4 // java.util.Optional fun
         1: .line 220
            aload 4 /* fun */
            invokevirtual java.util.Optional.isPresent:()Z
            ifne 7
         2: .line 221
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Referenced state function '%s %s' for aggregate '%s' does not exist"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 222
            aload 2 /* fName */
            aastore
            dup
            iconst_1
         4: .line 223
            aload 3 /* argTypes */
            invokestatic org.apache.cassandra.cql3.functions.UDHelper.driverTypes:(Ljava/util/List;)[Lcom/datastax/driver/core/DataType;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            aastore
            dup
            iconst_2
         5: .line 224
            aload 1 /* aName */
            aastore
         6: .line 221
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 226
      StackMap locals: java.util.Optional
      StackMap stack:
            aload 4 /* fun */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            instanceof org.apache.cassandra.cql3.functions.ScalarFunction
            ifne 13
         8: .line 227
            new org.apache.cassandra.exceptions.InvalidRequestException
            dup
            ldc "Referenced state function '%s %s' for aggregate '%s' is not a scalar function"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 228
            aload 2 /* fName */
            aastore
            dup
            iconst_1
        10: .line 229
            aload 3 /* argTypes */
            invokestatic org.apache.cassandra.cql3.functions.UDHelper.driverTypes:(Ljava/util/List;)[Lcom/datastax/driver/core/DataType;
            invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
            aastore
            dup
            iconst_2
        11: .line 230
            aload 1 /* aName */
            aastore
        12: .line 227
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.InvalidRequestException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 231
      StackMap locals:
      StackMap stack:
            aload 4 /* fun */
            invokevirtual java.util.Optional.get:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.functions.ScalarFunction
            areturn
        end local 4 // java.util.Optional fun
        end local 3 // java.util.List argTypes
        end local 2 // org.apache.cassandra.cql3.functions.FunctionName fName
        end local 1 // org.apache.cassandra.cql3.functions.FunctionName aName
        end local 0 // org.apache.cassandra.schema.Functions functions
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0  functions  Lorg/apache/cassandra/schema/Functions;
            0   14     1      aName  Lorg/apache/cassandra/cql3/functions/FunctionName;
            0   14     2      fName  Lorg/apache/cassandra/cql3/functions/FunctionName;
            0   14     3   argTypes  Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;
            1   14     4        fun  Ljava/util/Optional<Lorg/apache/cassandra/cql3/functions/Function;>;
    Exceptions:
      throws org.apache.cassandra.exceptions.InvalidRequestException
    Signature: (Lorg/apache/cassandra/schema/Functions;Lorg/apache/cassandra/cql3/functions/FunctionName;Lorg/apache/cassandra/cql3/functions/FunctionName;Ljava/util/List<Lorg/apache/cassandra/db/marshal/AbstractType<*>;>;)Lorg/apache/cassandra/cql3/functions/ScalarFunction;
    MethodParameters:
           Name  Flags
      functions  
      aName      
      fName      
      argTypes   

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
        start local 1 // java.lang.Object o
         0: .line 237
            aload 1 /* o */
            instanceof org.apache.cassandra.cql3.functions.UDAggregate
            ifne 2
         1: .line 238
            iconst_0
            ireturn
         2: .line 240
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.apache.cassandra.cql3.functions.UDAggregate
            astore 2 /* that */
        start local 2 // org.apache.cassandra.cql3.functions.UDAggregate that
         3: .line 241
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
            aload 2 /* that */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 11
         4: .line 242
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.argTypes:Ljava/util/List;
            aload 2 /* that */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.argTypes:Ljava/util/List;
            invokestatic org.apache.cassandra.schema.Functions.typesMatch:(Ljava/util/List;Ljava/util/List;)Z
            ifeq 11
         5: .line 243
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.returnType:Lorg/apache/cassandra/db/marshal/AbstractType;
            aload 2 /* that */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.returnType:Lorg/apache/cassandra/db/marshal/AbstractType;
            invokestatic org.apache.cassandra.schema.Functions.typesMatch:(Lorg/apache/cassandra/db/marshal/AbstractType;Lorg/apache/cassandra/db/marshal/AbstractType;)Z
            ifeq 11
         6: .line 244
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            aload 2 /* that */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 11
         7: .line 245
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.finalFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            aload 2 /* that */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.finalFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 11
         8: .line 246
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
            aload 2 /* that */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
            if_acmpeq 9
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
            ifnull 11
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
            aload 2 /* that */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
            iconst_1
            invokevirtual org.apache.cassandra.db.marshal.AbstractType.equals:(Ljava/lang/Object;Z)Z
            ifeq 11
         9: .line 247
      StackMap locals: org.apache.cassandra.cql3.functions.UDAggregate
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.initcond:Ljava/nio/ByteBuffer;
            aload 2 /* that */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.initcond:Ljava/nio/ByteBuffer;
            invokestatic com.google.common.base.Objects.equal:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 11
        10: .line 241
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        11: iconst_0
            ireturn
        end local 2 // org.apache.cassandra.cql3.functions.UDAggregate that
        end local 1 // java.lang.Object o
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/cassandra/cql3/functions/UDAggregate;
            0   12     1     o  Ljava/lang/Object;
            3   12     2  that  Lorg/apache/cassandra/cql3/functions/UDAggregate;
    MethodParameters:
      Name  Flags
      o     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
         0: .line 253
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.name:Lorg/apache/cassandra/cql3/functions/FunctionName;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.argTypes:Ljava/util/List;
            invokestatic org.apache.cassandra.schema.Functions.typeHashCode:(Ljava/util/List;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.returnType:Lorg/apache/cassandra/db/marshal/AbstractType;
            invokestatic org.apache.cassandra.schema.Functions.typeHashCode:(Lorg/apache/cassandra/db/marshal/AbstractType;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.finalFunction:Lorg/apache/cassandra/cql3/functions/ScalarFunction;
            aastore
            dup
            iconst_5
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.stateType:Lorg/apache/cassandra/db/marshal/AbstractType;
            aastore
            dup
            bipush 6
            aload 0 /* this */
            getfield org.apache.cassandra.cql3.functions.UDAggregate.initcond:Ljava/nio/ByteBuffer;
            aastore
            invokestatic com.google.common.base.Objects.hashCode:([Ljava/lang/Object;)I
            ireturn
        end local 0 // org.apache.cassandra.cql3.functions.UDAggregate this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/cql3/functions/UDAggregate;
}
SourceFile: "UDAggregate.java"
NestMembers:
  org.apache.cassandra.cql3.functions.UDAggregate$1  org.apache.cassandra.cql3.functions.UDAggregate$2
InnerClasses:
  public abstract Aggregate = org.apache.cassandra.cql3.functions.AggregateFunction$Aggregate of org.apache.cassandra.cql3.functions.AggregateFunction
  org.apache.cassandra.cql3.functions.UDAggregate$1
  org.apache.cassandra.cql3.functions.UDAggregate$2