public class org.apache.cassandra.auth.CassandraAuthorizer implements org.apache.cassandra.auth.IAuthorizer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.auth.CassandraAuthorizer
  super_class: java.lang.Object
{
  private static final org.slf4j.Logger logger;
    descriptor: Lorg/slf4j/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String ROLE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "role"

  private static final java.lang.String RESOURCE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "resource"

  private static final java.lang.String PERMISSIONS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "permissions"

  public static final java.lang.String USERNAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "username"

  public static final java.lang.String USER_PERMISSIONS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "permissions"

  private org.apache.cassandra.cql3.statements.SelectStatement authorizeRoleStatement;
    descriptor: Lorg/apache/cassandra/cql3/statements/SelectStatement;
    flags: (0x0002) ACC_PRIVATE

  private org.apache.cassandra.cql3.statements.SelectStatement legacyAuthorizeRoleStatement;
    descriptor: Lorg/apache/cassandra/cql3/statements/SelectStatement;
    flags: (0x0002) ACC_PRIVATE

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 75
            return
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/auth/CassandraAuthorizer;

  public java.util.Set<org.apache.cassandra.auth.Permission> authorize(org.apache.cassandra.auth.AuthenticatedUser, org.apache.cassandra.auth.IResource);
    descriptor: (Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // org.apache.cassandra.auth.AuthenticatedUser user
        start local 2 // org.apache.cassandra.auth.IResource resource
         0: .line 83
            aload 1 /* user */
            invokevirtual org.apache.cassandra.auth.AuthenticatedUser.isSuper:()Z
            ifeq 3
         1: .line 84
            aload 2 /* resource */
            invokeinterface org.apache.cassandra.auth.IResource.applicablePermissions:()Ljava/util/Set;
         2: areturn
         3: .line 86
      StackMap locals:
      StackMap stack:
            ldc Lorg/apache/cassandra/auth/Permission;
            invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
            astore 3 /* permissions */
        start local 3 // java.util.Set permissions
         4: .line 88
            aload 1 /* user */
            invokevirtual org.apache.cassandra.auth.AuthenticatedUser.getRoles:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 7
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser org.apache.cassandra.auth.IResource java.util.Set top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.auth.RoleResource
            astore 4 /* role */
        start local 4 // org.apache.cassandra.auth.RoleResource role
         6: .line 89
            aload 0 /* this */
            aload 3 /* permissions */
            aload 2 /* resource */
            aload 4 /* role */
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.addPermissionsForRole:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
        end local 4 // org.apache.cassandra.auth.RoleResource role
         7: .line 88
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 91
            aload 3 /* permissions */
         9: areturn
        end local 3 // java.util.Set permissions
        10: .line 93
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser org.apache.cassandra.auth.IResource
      StackMap stack: org.apache.cassandra.exceptions.CassandraException
            astore 3 /* e */
        start local 3 // org.apache.cassandra.exceptions.CassandraException e
        11: .line 95
            getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
            ldc "Failed to authorize {} for {}"
            aload 1 /* user */
            aload 2 /* resource */
            invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 96
            new org.apache.cassandra.exceptions.UnauthorizedException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unable to perform authorization of permissions: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual org.apache.cassandra.exceptions.CassandraException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* e */
            invokespecial org.apache.cassandra.exceptions.UnauthorizedException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // org.apache.cassandra.exceptions.CassandraException e
        end local 2 // org.apache.cassandra.auth.IResource resource
        end local 1 // org.apache.cassandra.auth.AuthenticatedUser user
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0   13     1         user  Lorg/apache/cassandra/auth/AuthenticatedUser;
            0   13     2     resource  Lorg/apache/cassandra/auth/IResource;
            4   10     3  permissions  Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
            6    7     4         role  Lorg/apache/cassandra/auth/RoleResource;
           11   13     3            e  Lorg/apache/cassandra/exceptions/CassandraException;
      Exception table:
        from    to  target  type
           0     2      10  Class org.apache.cassandra.exceptions.RequestExecutionException
           3     9      10  Class org.apache.cassandra.exceptions.RequestExecutionException
           0     2      10  Class org.apache.cassandra.exceptions.RequestValidationException
           3     9      10  Class org.apache.cassandra.exceptions.RequestValidationException
    Signature: (Lorg/apache/cassandra/auth/AuthenticatedUser;Lorg/apache/cassandra/auth/IResource;)Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
    MethodParameters:
          Name  Flags
      user      
      resource  

  public void grant(org.apache.cassandra.auth.AuthenticatedUser, java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
    descriptor: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // org.apache.cassandra.auth.AuthenticatedUser performer
        start local 2 // java.util.Set permissions
        start local 3 // org.apache.cassandra.auth.IResource resource
        start local 4 // org.apache.cassandra.auth.RoleResource grantee
         0: .line 103
            aload 0 /* this */
            aload 2 /* permissions */
            aload 3 /* resource */
            aload 4 /* grantee */
            ldc "+"
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.modifyRolePermissions:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Ljava/lang/String;)V
         1: .line 104
            aload 0 /* this */
            aload 3 /* resource */
            aload 4 /* grantee */
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.addLookupEntry:(Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
         2: .line 105
            return
        end local 4 // org.apache.cassandra.auth.RoleResource grantee
        end local 3 // org.apache.cassandra.auth.IResource resource
        end local 2 // java.util.Set permissions
        end local 1 // org.apache.cassandra.auth.AuthenticatedUser performer
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0    3     1    performer  Lorg/apache/cassandra/auth/AuthenticatedUser;
            0    3     2  permissions  Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
            0    3     3     resource  Lorg/apache/cassandra/auth/IResource;
            0    3     4      grantee  Lorg/apache/cassandra/auth/RoleResource;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
    Signature: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
    MethodParameters:
             Name  Flags
      performer    
      permissions  
      resource     
      grantee      

  public void revoke(org.apache.cassandra.auth.AuthenticatedUser, java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
    descriptor: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // org.apache.cassandra.auth.AuthenticatedUser performer
        start local 2 // java.util.Set permissions
        start local 3 // org.apache.cassandra.auth.IResource resource
        start local 4 // org.apache.cassandra.auth.RoleResource revokee
         0: .line 110
            aload 0 /* this */
            aload 2 /* permissions */
            aload 3 /* resource */
            aload 4 /* revokee */
            ldc "-"
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.modifyRolePermissions:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Ljava/lang/String;)V
         1: .line 111
            aload 0 /* this */
            aload 3 /* resource */
            aload 4 /* revokee */
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.removeLookupEntry:(Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
         2: .line 112
            return
        end local 4 // org.apache.cassandra.auth.RoleResource revokee
        end local 3 // org.apache.cassandra.auth.IResource resource
        end local 2 // java.util.Set permissions
        end local 1 // org.apache.cassandra.auth.AuthenticatedUser performer
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0    3     1    performer  Lorg/apache/cassandra/auth/AuthenticatedUser;
            0    3     2  permissions  Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
            0    3     3     resource  Lorg/apache/cassandra/auth/IResource;
            0    3     4      revokee  Lorg/apache/cassandra/auth/RoleResource;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
    Signature: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
    MethodParameters:
             Name  Flags
      performer    
      permissions  
      resource     
      revokee      

  public void revokeAllFrom(org.apache.cassandra.auth.RoleResource);
    descriptor: (Lorg/apache/cassandra/auth/RoleResource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // org.apache.cassandra.auth.RoleResource revokee
         0: .line 123
            aload 0 /* this */
            ldc "SELECT resource FROM %s.%s WHERE role = '%s'"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 124
            ldc "system_auth"
            aastore
            dup
            iconst_1
         2: .line 125
            ldc "role_permissions"
            aastore
            dup
            iconst_2
         3: .line 126
            aload 0 /* this */
            aload 1 /* revokee */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         4: .line 123
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            astore 2 /* rows */
        start local 2 // org.apache.cassandra.cql3.UntypedResultSet rows
         5: .line 128
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* statements */
        start local 3 // java.util.List statements
         6: .line 129
            aload 2 /* rows */
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet.iterator:()Ljava/util/Iterator;
            astore 5
            goto 19
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.RoleResource org.apache.cassandra.cql3.UntypedResultSet java.util.List top java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.UntypedResultSet$Row
            astore 4 /* row */
        start local 4 // org.apache.cassandra.cql3.UntypedResultSet$Row row
         8: .line 131
            aload 3 /* statements */
         9: .line 132
            ldc "DELETE FROM %s.%s WHERE resource = '%s' AND role = '%s'"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
        10: .line 133
            ldc "system_auth"
            aastore
            dup
            iconst_1
        11: .line 134
            ldc "resource_role_permissons_index"
            aastore
            dup
            iconst_2
        12: .line 135
            aload 0 /* this */
            aload 4 /* row */
            ldc "resource"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_3
        13: .line 136
            aload 0 /* this */
            aload 1 /* revokee */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        14: .line 132
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        15: .line 137
            invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
        16: .line 132
            invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
        17: .line 137
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
        18: .line 131
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.apache.cassandra.cql3.UntypedResultSet$Row row
        19: .line 129
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        20: .line 141
            aload 3 /* statements */
            ldc "DELETE FROM %s.%s WHERE role = '%s'"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        21: .line 142
            ldc "system_auth"
            aastore
            dup
            iconst_1
        22: .line 143
            ldc "role_permissions"
            aastore
            dup
            iconst_2
        23: .line 144
            aload 0 /* this */
            aload 1 /* revokee */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        24: .line 141
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        25: .line 145
            invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
        26: .line 141
            invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
        27: .line 145
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
        28: .line 141
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        29: .line 147
            aload 0 /* this */
            aload 3 /* statements */
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.executeLoggedBatch:(Ljava/util/List;)V
        end local 3 // java.util.List statements
        end local 2 // org.apache.cassandra.cql3.UntypedResultSet rows
        30: .line 148
            goto 33
        31: .line 149
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.RoleResource
      StackMap stack: org.apache.cassandra.exceptions.CassandraException
            astore 2 /* e */
        start local 2 // org.apache.cassandra.exceptions.CassandraException e
        32: .line 151
            getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
            ldc "CassandraAuthorizer failed to revoke all permissions of {}: {}"
            aload 1 /* revokee */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
            aload 2 /* e */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 2 // org.apache.cassandra.exceptions.CassandraException e
        33: .line 153
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.auth.RoleResource revokee
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   34     0        this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0   34     1     revokee  Lorg/apache/cassandra/auth/RoleResource;
            5   30     2        rows  Lorg/apache/cassandra/cql3/UntypedResultSet;
            6   30     3  statements  Ljava/util/List<Lorg/apache/cassandra/cql3/CQLStatement;>;
            8   19     4         row  Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
           32   33     2           e  Lorg/apache/cassandra/exceptions/CassandraException;
      Exception table:
        from    to  target  type
           0    30      31  Class org.apache.cassandra.exceptions.RequestExecutionException
           0    30      31  Class org.apache.cassandra.exceptions.RequestValidationException
    MethodParameters:
         Name  Flags
      revokee  

  public void revokeAllOn(org.apache.cassandra.auth.IResource);
    descriptor: (Lorg/apache/cassandra/auth/IResource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // org.apache.cassandra.auth.IResource droppedResource
         0: .line 162
            aload 0 /* this */
            ldc "SELECT role FROM %s.%s WHERE resource = '%s'"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 163
            ldc "system_auth"
            aastore
            dup
            iconst_1
         2: .line 164
            ldc "resource_role_permissons_index"
            aastore
            dup
            iconst_2
         3: .line 165
            aload 0 /* this */
            aload 1 /* droppedResource */
            invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         4: .line 162
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            astore 2 /* rows */
        start local 2 // org.apache.cassandra.cql3.UntypedResultSet rows
         5: .line 167
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* statements */
        start local 3 // java.util.List statements
         6: .line 168
            aload 2 /* rows */
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet.iterator:()Ljava/util/Iterator;
            astore 5
            goto 18
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.IResource org.apache.cassandra.cql3.UntypedResultSet java.util.List top java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.UntypedResultSet$Row
            astore 4 /* row */
        start local 4 // org.apache.cassandra.cql3.UntypedResultSet$Row row
         8: .line 170
            aload 3 /* statements */
            ldc "DELETE FROM %s.%s WHERE role = '%s' AND resource = '%s'"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         9: .line 171
            ldc "system_auth"
            aastore
            dup
            iconst_1
        10: .line 172
            ldc "role_permissions"
            aastore
            dup
            iconst_2
        11: .line 173
            aload 0 /* this */
            aload 4 /* row */
            ldc "role"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_3
        12: .line 174
            aload 0 /* this */
            aload 1 /* droppedResource */
            invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        13: .line 170
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        14: .line 175
            invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
        15: .line 170
            invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
        16: .line 175
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
        17: .line 170
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // org.apache.cassandra.cql3.UntypedResultSet$Row row
        18: .line 168
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        19: .line 178
            aload 3 /* statements */
            ldc "DELETE FROM %s.%s WHERE resource = '%s'"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        20: .line 179
            ldc "system_auth"
            aastore
            dup
            iconst_1
        21: .line 180
            ldc "resource_role_permissons_index"
            aastore
            dup
            iconst_2
        22: .line 181
            aload 0 /* this */
            aload 1 /* droppedResource */
            invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
        23: .line 178
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        24: .line 182
            invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
        25: .line 178
            invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
        26: .line 182
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
        27: .line 178
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        28: .line 184
            aload 0 /* this */
            aload 3 /* statements */
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.executeLoggedBatch:(Ljava/util/List;)V
        end local 3 // java.util.List statements
        end local 2 // org.apache.cassandra.cql3.UntypedResultSet rows
        29: .line 185
            goto 33
        30: .line 186
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.IResource
      StackMap stack: org.apache.cassandra.exceptions.CassandraException
            astore 2 /* e */
        start local 2 // org.apache.cassandra.exceptions.CassandraException e
        31: .line 188
            getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
            ldc "CassandraAuthorizer failed to revoke all permissions on {}: {}"
            aload 1 /* droppedResource */
            aload 2 /* e */
            invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        32: .line 189
            return
        end local 2 // org.apache.cassandra.exceptions.CassandraException e
        33: .line 191
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.auth.IResource droppedResource
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   34     0             this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0   34     1  droppedResource  Lorg/apache/cassandra/auth/IResource;
            5   29     2             rows  Lorg/apache/cassandra/cql3/UntypedResultSet;
            6   29     3       statements  Ljava/util/List<Lorg/apache/cassandra/cql3/CQLStatement;>;
            8   18     4              row  Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
           31   33     2                e  Lorg/apache/cassandra/exceptions/CassandraException;
      Exception table:
        from    to  target  type
           0    29      30  Class org.apache.cassandra.exceptions.RequestExecutionException
           0    29      30  Class org.apache.cassandra.exceptions.RequestValidationException
    MethodParameters:
                 Name  Flags
      droppedResource  

  private void executeLoggedBatch(java.util.List<org.apache.cassandra.cql3.CQLStatement>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // java.util.List statements
         0: .line 196
            new org.apache.cassandra.cql3.statements.BatchStatement
            dup
            iconst_0
         1: .line 197
            getstatic org.apache.cassandra.cql3.statements.BatchStatement$Type.LOGGED:Lorg/apache/cassandra/cql3/statements/BatchStatement$Type;
         2: .line 198
            aload 1 /* statements */
            ldc Lorg/apache/cassandra/cql3/statements/ModificationStatement;
            invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Ljava/lang/Class;)Ljava/lang/Iterable;
            invokestatic com.google.common.collect.Lists.newArrayList:(Ljava/lang/Iterable;)Ljava/util/ArrayList;
         3: .line 199
            invokestatic org.apache.cassandra.cql3.Attributes.none:()Lorg/apache/cassandra/cql3/Attributes;
         4: .line 196
            invokespecial org.apache.cassandra.cql3.statements.BatchStatement.<init>:(ILorg/apache/cassandra/cql3/statements/BatchStatement$Type;Ljava/util/List;Lorg/apache/cassandra/cql3/Attributes;)V
            astore 2 /* batch */
        start local 2 // org.apache.cassandra.cql3.statements.BatchStatement batch
         5: .line 200
            getstatic org.apache.cassandra.cql3.QueryProcessor.instance:Lorg/apache/cassandra/cql3/QueryProcessor;
            aload 2 /* batch */
         6: .line 201
            invokestatic org.apache.cassandra.service.QueryState.forInternalCalls:()Lorg/apache/cassandra/service/QueryState;
         7: .line 202
            getstatic org.apache.cassandra.cql3.QueryOptions.DEFAULT:Lorg/apache/cassandra/cql3/QueryOptions;
            invokestatic org.apache.cassandra.cql3.BatchQueryOptions.withoutPerStatementVariables:(Lorg/apache/cassandra/cql3/QueryOptions;)Lorg/apache/cassandra/cql3/BatchQueryOptions;
         8: .line 203
            invokestatic java.lang.System.nanoTime:()J
         9: .line 200
            invokevirtual org.apache.cassandra.cql3.QueryProcessor.processBatch:(Lorg/apache/cassandra/cql3/statements/BatchStatement;Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/BatchQueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
            pop
        10: .line 205
            return
        end local 2 // org.apache.cassandra.cql3.statements.BatchStatement batch
        end local 1 // java.util.List statements
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0   11     1  statements  Ljava/util/List<Lorg/apache/cassandra/cql3/CQLStatement;>;
            5   11     2       batch  Lorg/apache/cassandra/cql3/statements/BatchStatement;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
    Signature: (Ljava/util/List<Lorg/apache/cassandra/cql3/CQLStatement;>;)V
    MethodParameters:
            Name  Flags
      statements  

  private void addPermissionsForRole(java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
    descriptor: (Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // java.util.Set permissions
        start local 2 // org.apache.cassandra.auth.IResource resource
        start local 3 // org.apache.cassandra.auth.RoleResource role
         0: .line 211
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
            iconst_2
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
         1: .line 212
            aload 3 /* role */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.bytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            aastore
            dup
            iconst_1
         2: .line 213
            aload 2 /* resource */
            invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
            invokestatic org.apache.cassandra.utils.ByteBufferUtil.bytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            aastore
         3: .line 212
            invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
         4: .line 211
            invokestatic org.apache.cassandra.cql3.QueryOptions.forInternalCalls:(Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;)Lorg/apache/cassandra/cql3/QueryOptions;
            astore 4 /* options */
        start local 4 // org.apache.cassandra.cql3.QueryOptions options
         5: .line 218
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            ldc "system_auth"
            ldc "permissions"
            invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
            ifnonnull 8
         6: .line 219
            aload 0 /* this */
            getfield org.apache.cassandra.auth.CassandraAuthorizer.authorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
            astore 5 /* statement */
        start local 5 // org.apache.cassandra.cql3.statements.SelectStatement statement
         7: goto 11
        end local 5 // org.apache.cassandra.cql3.statements.SelectStatement statement
         8: .line 223
      StackMap locals: org.apache.cassandra.cql3.QueryOptions
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.auth.CassandraAuthorizer.legacyAuthorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
            ifnonnull 10
         9: .line 224
            aload 0 /* this */
            aload 0 /* this */
            ldc "username"
            ldc "permissions"
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.prepare:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/statements/SelectStatement;
            putfield org.apache.cassandra.auth.CassandraAuthorizer.legacyAuthorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
        10: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.auth.CassandraAuthorizer.legacyAuthorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
            astore 5 /* statement */
        start local 5 // org.apache.cassandra.cql3.statements.SelectStatement statement
        11: .line 227
      StackMap locals: org.apache.cassandra.cql3.statements.SelectStatement
      StackMap stack:
            aload 5 /* statement */
            invokestatic org.apache.cassandra.service.QueryState.forInternalCalls:()Lorg/apache/cassandra/service/QueryState;
            aload 4 /* options */
            invokestatic java.lang.System.nanoTime:()J
            invokevirtual org.apache.cassandra.cql3.statements.SelectStatement.execute:(Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage$Rows;
            astore 6 /* rows */
        start local 6 // org.apache.cassandra.transport.messages.ResultMessage$Rows rows
        12: .line 228
            aload 6 /* rows */
            getfield org.apache.cassandra.transport.messages.ResultMessage$Rows.result:Lorg/apache/cassandra/cql3/ResultSet;
            invokestatic org.apache.cassandra.cql3.UntypedResultSet.create:(Lorg/apache/cassandra/cql3/ResultSet;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            astore 7 /* result */
        start local 7 // org.apache.cassandra.cql3.UntypedResultSet result
        13: .line 230
            aload 7 /* result */
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet.isEmpty:()Z
            ifne 18
            aload 7 /* result */
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet.one:()Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
            ldc "permissions"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.has:(Ljava/lang/String;)Z
            ifeq 18
        14: .line 232
            aload 7 /* result */
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet.one:()Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
            ldc "permissions"
            getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getSet:(Ljava/lang/String;Lorg/apache/cassandra/db/marshal/AbstractType;)Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 17
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource org.apache.cassandra.cql3.QueryOptions org.apache.cassandra.cql3.statements.SelectStatement org.apache.cassandra.transport.messages.ResultMessage$Rows org.apache.cassandra.cql3.UntypedResultSet top java.util.Iterator
      StackMap stack:
        15: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* perm */
        start local 8 // java.lang.String perm
        16: .line 234
            aload 1 /* permissions */
            aload 8 /* perm */
            invokestatic org.apache.cassandra.auth.Permission.valueOf:(Ljava/lang/String;)Lorg/apache/cassandra/auth/Permission;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.String perm
        17: .line 232
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 15
        18: .line 237
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource org.apache.cassandra.cql3.QueryOptions org.apache.cassandra.cql3.statements.SelectStatement org.apache.cassandra.transport.messages.ResultMessage$Rows org.apache.cassandra.cql3.UntypedResultSet
      StackMap stack:
            return
        end local 7 // org.apache.cassandra.cql3.UntypedResultSet result
        end local 6 // org.apache.cassandra.transport.messages.ResultMessage$Rows rows
        end local 5 // org.apache.cassandra.cql3.statements.SelectStatement statement
        end local 4 // org.apache.cassandra.cql3.QueryOptions options
        end local 3 // org.apache.cassandra.auth.RoleResource role
        end local 2 // org.apache.cassandra.auth.IResource resource
        end local 1 // java.util.Set permissions
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   19     0         this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0   19     1  permissions  Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
            0   19     2     resource  Lorg/apache/cassandra/auth/IResource;
            0   19     3         role  Lorg/apache/cassandra/auth/RoleResource;
            5   19     4      options  Lorg/apache/cassandra/cql3/QueryOptions;
            7    8     5    statement  Lorg/apache/cassandra/cql3/statements/SelectStatement;
           11   19     5    statement  Lorg/apache/cassandra/cql3/statements/SelectStatement;
           12   19     6         rows  Lorg/apache/cassandra/transport/messages/ResultMessage$Rows;
           13   19     7       result  Lorg/apache/cassandra/cql3/UntypedResultSet;
           16   17     8         perm  Ljava/lang/String;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException, org.apache.cassandra.exceptions.RequestValidationException
    Signature: (Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
    MethodParameters:
             Name  Flags
      permissions  
      resource     
      role         

  private void modifyRolePermissions(java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource, java.lang.String);
    descriptor: (Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // java.util.Set permissions
        start local 2 // org.apache.cassandra.auth.IResource resource
        start local 3 // org.apache.cassandra.auth.RoleResource role
        start local 4 // java.lang.String op
         0: .line 243
            aload 0 /* this */
            ldc "UPDATE %s.%s SET permissions = permissions %s {%s} WHERE role = '%s' AND resource = '%s'"
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 244
            ldc "system_auth"
            aastore
            dup
            iconst_1
         2: .line 245
            ldc "role_permissions"
            aastore
            dup
            iconst_2
         3: .line 246
            aload 4 /* op */
            aastore
            dup
            iconst_3
         4: .line 247
            new java.lang.StringBuilder
            dup
            ldc "'"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* permissions */
            ldc "','"
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_4
         5: .line 248
            aload 0 /* this */
            aload 3 /* role */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_5
         6: .line 249
            aload 0 /* this */
            aload 2 /* resource */
            invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         7: .line 243
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            pop
         8: .line 250
            return
        end local 4 // java.lang.String op
        end local 3 // org.apache.cassandra.auth.RoleResource role
        end local 2 // org.apache.cassandra.auth.IResource resource
        end local 1 // java.util.Set permissions
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0    9     1  permissions  Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
            0    9     2     resource  Lorg/apache/cassandra/auth/IResource;
            0    9     3         role  Lorg/apache/cassandra/auth/RoleResource;
            0    9     4           op  Ljava/lang/String;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException
    Signature: (Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Ljava/lang/String;)V
    MethodParameters:
             Name  Flags
      permissions  
      resource     
      role         
      op           

  private void removeLookupEntry(org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
    descriptor: (Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // org.apache.cassandra.auth.IResource resource
        start local 2 // org.apache.cassandra.auth.RoleResource role
         0: .line 255
            aload 0 /* this */
            ldc "DELETE FROM %s.%s WHERE resource = '%s' and role = '%s'"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 256
            ldc "system_auth"
            aastore
            dup
            iconst_1
         2: .line 257
            ldc "resource_role_permissons_index"
            aastore
            dup
            iconst_2
         3: .line 258
            aload 0 /* this */
            aload 1 /* resource */
            invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_3
         4: .line 259
            aload 0 /* this */
            aload 2 /* role */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         5: .line 255
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            pop
         6: .line 260
            return
        end local 2 // org.apache.cassandra.auth.RoleResource role
        end local 1 // org.apache.cassandra.auth.IResource resource
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0    7     1  resource  Lorg/apache/cassandra/auth/IResource;
            0    7     2      role  Lorg/apache/cassandra/auth/RoleResource;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException
    MethodParameters:
          Name  Flags
      resource  
      role      

  private void addLookupEntry(org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
    descriptor: (Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // org.apache.cassandra.auth.IResource resource
        start local 2 // org.apache.cassandra.auth.RoleResource role
         0: .line 265
            aload 0 /* this */
            ldc "INSERT INTO %s.%s (resource, role) VALUES ('%s','%s')"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 266
            ldc "system_auth"
            aastore
            dup
            iconst_1
         2: .line 267
            ldc "resource_role_permissons_index"
            aastore
            dup
            iconst_2
         3: .line 268
            aload 0 /* this */
            aload 1 /* resource */
            invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
            dup
            iconst_3
         4: .line 269
            aload 0 /* this */
            aload 2 /* role */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            aastore
         5: .line 265
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            pop
         6: .line 270
            return
        end local 2 // org.apache.cassandra.auth.RoleResource role
        end local 1 // org.apache.cassandra.auth.IResource resource
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0    7     1  resource  Lorg/apache/cassandra/auth/IResource;
            0    7     2      role  Lorg/apache/cassandra/auth/RoleResource;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException
    MethodParameters:
          Name  Flags
      resource  
      role      

  public java.util.Set<org.apache.cassandra.auth.PermissionDetails> list(org.apache.cassandra.auth.AuthenticatedUser, java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
    descriptor: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // org.apache.cassandra.auth.AuthenticatedUser performer
        start local 2 // java.util.Set permissions
        start local 3 // org.apache.cassandra.auth.IResource resource
        start local 4 // org.apache.cassandra.auth.RoleResource grantee
         0: .line 282
            aload 1 /* performer */
            invokevirtual org.apache.cassandra.auth.AuthenticatedUser.isSuper:()Z
            ifne 6
            aload 1 /* performer */
            invokevirtual org.apache.cassandra.auth.AuthenticatedUser.isSystem:()Z
            ifne 6
            aload 1 /* performer */
            invokevirtual org.apache.cassandra.auth.AuthenticatedUser.getRoles:()Ljava/util/Set;
            aload 4 /* grantee */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 6
         1: .line 283
            new org.apache.cassandra.exceptions.UnauthorizedException
            dup
            ldc "You are not authorized to view %s's permissions"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 284
            aload 4 /* grantee */
            ifnonnull 3
            ldc "everyone"
            goto 4
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource
      StackMap stack: new 1 new 1 java.lang.String java.lang.Object[] java.lang.Object[] int
         3: aload 4 /* grantee */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource
      StackMap stack: new 1 new 1 java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.String
         4: aastore
         5: .line 283
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.apache.cassandra.exceptions.UnauthorizedException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 286
      StackMap locals:
      StackMap stack:
            aload 4 /* grantee */
            ifnonnull 8
         7: .line 287
            aload 0 /* this */
            aload 2 /* permissions */
            aload 3 /* resource */
            aload 4 /* grantee */
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.listPermissionsForRole:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set;
            areturn
         8: .line 289
      StackMap locals:
      StackMap stack:
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getRoleManager:()Lorg/apache/cassandra/auth/IRoleManager;
            aload 4 /* grantee */
            iconst_1
            invokeinterface org.apache.cassandra.auth.IRoleManager.getRoles:(Lorg/apache/cassandra/auth/RoleResource;Z)Ljava/util/Set;
            astore 5 /* roles */
        start local 5 // java.util.Set roles
         9: .line 290
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 6 /* details */
        start local 6 // java.util.Set details
        10: .line 291
            aload 5 /* roles */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 13
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.auth.AuthenticatedUser java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource java.util.Set java.util.Set top java.util.Iterator
      StackMap stack:
        11: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.auth.RoleResource
            astore 7 /* role */
        start local 7 // org.apache.cassandra.auth.RoleResource role
        12: .line 292
            aload 6 /* details */
            aload 0 /* this */
            aload 2 /* permissions */
            aload 3 /* resource */
            aload 7 /* role */
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.listPermissionsForRole:(Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 7 // org.apache.cassandra.auth.RoleResource role
        13: .line 291
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 294
            aload 6 /* details */
            areturn
        end local 6 // java.util.Set details
        end local 5 // java.util.Set roles
        end local 4 // org.apache.cassandra.auth.RoleResource grantee
        end local 3 // org.apache.cassandra.auth.IResource resource
        end local 2 // java.util.Set permissions
        end local 1 // org.apache.cassandra.auth.AuthenticatedUser performer
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0   15     1    performer  Lorg/apache/cassandra/auth/AuthenticatedUser;
            0   15     2  permissions  Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
            0   15     3     resource  Lorg/apache/cassandra/auth/IResource;
            0   15     4      grantee  Lorg/apache/cassandra/auth/RoleResource;
            9   15     5        roles  Ljava/util/Set<Lorg/apache/cassandra/auth/RoleResource;>;
           10   15     6      details  Ljava/util/Set<Lorg/apache/cassandra/auth/PermissionDetails;>;
           12   13     7         role  Lorg/apache/cassandra/auth/RoleResource;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestValidationException, org.apache.cassandra.exceptions.RequestExecutionException
    Signature: (Lorg/apache/cassandra/auth/AuthenticatedUser;Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set<Lorg/apache/cassandra/auth/PermissionDetails;>;
    MethodParameters:
             Name  Flags
      performer    
      permissions  
      resource     
      grantee      

  private java.util.Set<org.apache.cassandra.auth.PermissionDetails> listPermissionsForRole(java.util.Set<org.apache.cassandra.auth.Permission>, org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource);
    descriptor: (Ljava/util/Set;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=4
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // java.util.Set permissions
        start local 2 // org.apache.cassandra.auth.IResource resource
        start local 3 // org.apache.cassandra.auth.RoleResource role
         0: .line 302
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* details */
        start local 4 // java.util.Set details
         1: .line 305
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            ldc "system_auth"
            ldc "permissions"
            invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: java.util.Set
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 5 /* useLegacyTable */
        start local 5 // boolean useLegacyTable
         4: .line 306
            iload 5 /* useLegacyTable */
            ifeq 5
            ldc "username"
            goto 6
      StackMap locals: int
      StackMap stack:
         5: ldc "role"
      StackMap locals:
      StackMap stack: java.lang.String
         6: astore 6 /* entityColumnName */
        start local 6 // java.lang.String entityColumnName
         7: .line 307
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* resource */
            aload 3 /* role */
            iload 5 /* useLegacyTable */
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.buildListQuery:(Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Z)Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet.iterator:()Ljava/util/Iterator;
            astore 8
            goto 19
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource java.util.Set int java.lang.String top java.util.Iterator
      StackMap stack:
         8: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.UntypedResultSet$Row
            astore 7 /* row */
        start local 7 // org.apache.cassandra.cql3.UntypedResultSet$Row row
         9: .line 309
            aload 7 /* row */
            ldc "permissions"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.has:(Ljava/lang/String;)Z
            ifeq 19
        10: .line 311
            aload 7 /* row */
            ldc "permissions"
            getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getSet:(Ljava/lang/String;Lorg/apache/cassandra/db/marshal/AbstractType;)Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 18
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource java.util.Set int java.lang.String org.apache.cassandra.cql3.UntypedResultSet$Row java.util.Iterator top java.util.Iterator
      StackMap stack:
        11: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* p */
        start local 9 // java.lang.String p
        12: .line 313
            aload 9 /* p */
            invokestatic org.apache.cassandra.auth.Permission.valueOf:(Ljava/lang/String;)Lorg/apache/cassandra/auth/Permission;
            astore 11 /* permission */
        start local 11 // org.apache.cassandra.auth.Permission permission
        13: .line 314
            aload 1 /* permissions */
            aload 11 /* permission */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 18
        14: .line 315
            aload 4 /* details */
            new org.apache.cassandra.auth.PermissionDetails
            dup
            aload 7 /* row */
            aload 6 /* entityColumnName */
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
        15: .line 316
            aload 7 /* row */
            ldc "resource"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.apache.cassandra.auth.Resources.fromName:(Ljava/lang/String;)Lorg/apache/cassandra/auth/IResource;
        16: .line 317
            aload 11 /* permission */
            invokespecial org.apache.cassandra.auth.PermissionDetails.<init>:(Ljava/lang/String;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/Permission;)V
        17: .line 315
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 11 // org.apache.cassandra.auth.Permission permission
        end local 9 // java.lang.String p
        18: .line 311
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        end local 7 // org.apache.cassandra.cql3.UntypedResultSet$Row row
        19: .line 307
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer java.util.Set org.apache.cassandra.auth.IResource org.apache.cassandra.auth.RoleResource java.util.Set int java.lang.String top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        20: .line 321
            aload 4 /* details */
            areturn
        end local 6 // java.lang.String entityColumnName
        end local 5 // boolean useLegacyTable
        end local 4 // java.util.Set details
        end local 3 // org.apache.cassandra.auth.RoleResource role
        end local 2 // org.apache.cassandra.auth.IResource resource
        end local 1 // java.util.Set permissions
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0              this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0   21     1       permissions  Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;
            0   21     2          resource  Lorg/apache/cassandra/auth/IResource;
            0   21     3              role  Lorg/apache/cassandra/auth/RoleResource;
            1   21     4           details  Ljava/util/Set<Lorg/apache/cassandra/auth/PermissionDetails;>;
            4   21     5    useLegacyTable  Z
            7   21     6  entityColumnName  Ljava/lang/String;
            9   19     7               row  Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
           12   18     9                 p  Ljava/lang/String;
           13   18    11        permission  Lorg/apache/cassandra/auth/Permission;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException
    Signature: (Ljava/util/Set<Lorg/apache/cassandra/auth/Permission;>;Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;)Ljava/util/Set<Lorg/apache/cassandra/auth/PermissionDetails;>;
    MethodParameters:
             Name  Flags
      permissions  
      resource     
      role         

  private java.lang.String buildListQuery(org.apache.cassandra.auth.IResource, org.apache.cassandra.auth.RoleResource, boolean);
    descriptor: (Lorg/apache/cassandra/auth/IResource;Lorg/apache/cassandra/auth/RoleResource;Z)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // org.apache.cassandra.auth.IResource resource
        start local 2 // org.apache.cassandra.auth.RoleResource grantee
        start local 3 // boolean useLegacyTable
         0: .line 326
            iload 3 /* useLegacyTable */
            ifeq 1
            ldc "permissions"
            goto 2
      StackMap locals:
      StackMap stack:
         1: ldc "role_permissions"
      StackMap locals:
      StackMap stack: java.lang.String
         2: astore 4 /* tableName */
        start local 4 // java.lang.String tableName
         3: .line 327
            iload 3 /* useLegacyTable */
            ifeq 4
            ldc "username"
            goto 5
      StackMap locals: java.lang.String
      StackMap stack:
         4: ldc "role"
      StackMap locals:
      StackMap stack: java.lang.String
         5: astore 5 /* entityName */
        start local 5 // java.lang.String entityName
         6: .line 328
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "system_auth"
            aastore
            dup
            iconst_1
            aload 4 /* tableName */
            aastore
            invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
            astore 6 /* vars */
        start local 6 // java.util.List vars
         7: .line 329
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* conditions */
        start local 7 // java.util.List conditions
         8: .line 331
            aload 1 /* resource */
            ifnull 11
         9: .line 333
            aload 7 /* conditions */
            ldc "resource = '%s'"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 334
            aload 6 /* vars */
            aload 0 /* this */
            aload 1 /* resource */
            invokeinterface org.apache.cassandra.auth.IResource.getName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 337
      StackMap locals: java.lang.String java.util.List java.util.List
      StackMap stack:
            aload 2 /* grantee */
            ifnull 14
        12: .line 339
            aload 7 /* conditions */
            new java.lang.StringBuilder
            dup
            aload 5 /* entityName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " = '%s'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 340
            aload 6 /* vars */
            aload 0 /* this */
            aload 2 /* grantee */
            invokevirtual org.apache.cassandra.auth.RoleResource.getRoleName:()Ljava/lang/String;
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.escape:(Ljava/lang/String;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 343
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "SELECT "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* entityName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", resource, permissions FROM %s.%s"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* query */
        start local 8 // java.lang.String query
        15: .line 345
            aload 7 /* conditions */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 17
        16: .line 346
            new java.lang.StringBuilder
            dup
            aload 8 /* query */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " WHERE "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 7 /* conditions */
            ldc " AND "
            invokestatic org.apache.commons.lang3.StringUtils.join:(Ljava/lang/Iterable;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* query */
        17: .line 348
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* resource */
            ifnull 19
            aload 2 /* grantee */
            ifnonnull 19
        18: .line 349
            new java.lang.StringBuilder
            dup
            aload 8 /* query */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " ALLOW FILTERING"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* query */
        19: .line 351
      StackMap locals:
      StackMap stack:
            aload 8 /* query */
            aload 6 /* vars */
            invokeinterface java.util.List.toArray:()[Ljava/lang/Object;
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 8 // java.lang.String query
        end local 7 // java.util.List conditions
        end local 6 // java.util.List vars
        end local 5 // java.lang.String entityName
        end local 4 // java.lang.String tableName
        end local 3 // boolean useLegacyTable
        end local 2 // org.apache.cassandra.auth.RoleResource grantee
        end local 1 // org.apache.cassandra.auth.IResource resource
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   20     0            this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0   20     1        resource  Lorg/apache/cassandra/auth/IResource;
            0   20     2         grantee  Lorg/apache/cassandra/auth/RoleResource;
            0   20     3  useLegacyTable  Z
            3   20     4       tableName  Ljava/lang/String;
            6   20     5      entityName  Ljava/lang/String;
            7   20     6            vars  Ljava/util/List<Ljava/lang/String;>;
            8   20     7      conditions  Ljava/util/List<Ljava/lang/String;>;
           15   20     8           query  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      resource        
      grantee         
      useLegacyTable  

  public java.util.Set<org.apache.cassandra.auth.DataResource> protectedResources();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
         0: .line 357
            ldc "system_auth"
            ldc "role_permissions"
            invokestatic org.apache.cassandra.auth.DataResource.table:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/auth/DataResource;
            invokestatic com.google.common.collect.ImmutableSet.of:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet;
            areturn
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
    Signature: ()Ljava/util/Set<Lorg/apache/cassandra/auth/DataResource;>;

  public void validateConfiguration();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
         0: .line 362
            return
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
    Exceptions:
      throws org.apache.cassandra.exceptions.ConfigurationException

  public void setup();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
         0: .line 366
            aload 0 /* this */
            aload 0 /* this */
            ldc "role"
            ldc "role_permissions"
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.prepare:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/statements/SelectStatement;
            putfield org.apache.cassandra.auth.CassandraAuthorizer.authorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
         1: .line 370
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            ldc "system_auth"
            ldc "permissions"
            invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
            ifnull 6
         2: .line 372
            aload 0 /* this */
            aload 0 /* this */
            ldc "username"
            ldc "permissions"
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.prepare:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/statements/SelectStatement;
            putfield org.apache.cassandra.auth.CassandraAuthorizer.legacyAuthorizeRoleStatement:Lorg/apache/cassandra/cql3/statements/SelectStatement;
         3: .line 374
            getstatic org.apache.cassandra.concurrent.ScheduledExecutors.optionalTasks:Lorg/apache/cassandra/concurrent/DebuggableScheduledThreadPoolExecutor;
            new org.apache.cassandra.auth.CassandraAuthorizer$1
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.auth.CassandraAuthorizer$1.<init>:(Lorg/apache/cassandra/auth/CassandraAuthorizer;)V
         4: .line 380
            getstatic org.apache.cassandra.auth.AuthKeyspace.SUPERUSER_SETUP_DELAY:J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
         5: .line 374
            invokevirtual org.apache.cassandra.concurrent.DebuggableScheduledThreadPoolExecutor.schedule:(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
            pop
         6: .line 382
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/cassandra/auth/CassandraAuthorizer;

  private org.apache.cassandra.cql3.statements.SelectStatement prepare(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/cql3/statements/SelectStatement;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // java.lang.String entityname
        start local 2 // java.lang.String permissionsTable
         0: .line 386
            ldc "SELECT permissions FROM %s.%s WHERE %s = ? AND resource = ?"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 387
            ldc "system_auth"
            aastore
            dup
            iconst_1
         2: .line 388
            aload 2 /* permissionsTable */
            aastore
            dup
            iconst_2
         3: .line 389
            aload 1 /* entityname */
            aastore
         4: .line 386
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 3 /* query */
        start local 3 // java.lang.String query
         5: .line 390
            aload 3 /* query */
            invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
            invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
            checkcast org.apache.cassandra.cql3.statements.SelectStatement
            areturn
        end local 3 // java.lang.String query
        end local 2 // java.lang.String permissionsTable
        end local 1 // java.lang.String entityname
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0    6     1        entityname  Ljava/lang/String;
            0    6     2  permissionsTable  Ljava/lang/String;
            5    6     3             query  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      entityname        
      permissionsTable  

  private void convertLegacyData();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=11, args_size=1
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
         0: .line 404
            getstatic org.apache.cassandra.config.Schema.instance:Lorg/apache/cassandra/config/Schema;
            ldc "system_auth"
            ldc "permissions"
            invokevirtual org.apache.cassandra.config.Schema.getCFMetaData:(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/cassandra/config/CFMetaData;
            ifnull 49
         1: .line 406
            getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
            ldc "Converting legacy permissions data"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
         2: .line 408
            ldc "INSERT INTO %s.%s (role, resource, permissions) VALUES (?, ?, ?)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 410
            ldc "system_auth"
            aastore
            dup
            iconst_1
         4: .line 411
            ldc "role_permissions"
            aastore
         5: .line 408
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         6: .line 412
            invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
         7: .line 408
            invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
         8: .line 412
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
         9: .line 407
            astore 1 /* insertStatement */
        start local 1 // org.apache.cassandra.cql3.CQLStatement insertStatement
        10: .line 414
            ldc "INSERT INTO %s.%s (resource, role) VALUES (?,?)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
        11: .line 415
            ldc "system_auth"
            aastore
            dup
            iconst_1
        12: .line 416
            ldc "resource_role_permissons_index"
            aastore
        13: .line 414
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        14: .line 417
            invokestatic org.apache.cassandra.service.ClientState.forInternalCalls:()Lorg/apache/cassandra/service/ClientState;
        15: .line 414
            invokestatic org.apache.cassandra.cql3.QueryProcessor.getStatement:(Ljava/lang/String;Lorg/apache/cassandra/service/ClientState;)Lorg/apache/cassandra/cql3/statements/ParsedStatement$Prepared;
        16: .line 417
            getfield org.apache.cassandra.cql3.statements.ParsedStatement$Prepared.statement:Lorg/apache/cassandra/cql3/CQLStatement;
        17: .line 413
            astore 2 /* indexStatement */
        start local 2 // org.apache.cassandra.cql3.CQLStatement indexStatement
        18: .line 419
            aload 0 /* this */
            ldc "SELECT * FROM system_auth.permissions"
            invokevirtual org.apache.cassandra.auth.CassandraAuthorizer.process:(Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            astore 3 /* permissions */
        start local 3 // org.apache.cassandra.cql3.UntypedResultSet permissions
        19: .line 420
            aload 3 /* permissions */
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet.iterator:()Ljava/util/Iterator;
            astore 5
            goto 43
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer org.apache.cassandra.cql3.CQLStatement org.apache.cassandra.cql3.CQLStatement org.apache.cassandra.cql3.UntypedResultSet top java.util.Iterator
      StackMap stack:
        20: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.cassandra.cql3.UntypedResultSet$Row
            astore 4 /* row */
        start local 4 // org.apache.cassandra.cql3.UntypedResultSet$Row row
        21: .line 422
            aload 4 /* row */
            ldc "resource"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokestatic org.apache.cassandra.auth.Resources.fromName:(Ljava/lang/String;)Lorg/apache/cassandra/auth/IResource;
            astore 6 /* resource */
        start local 6 // org.apache.cassandra.auth.IResource resource
        22: .line 423
            new org.apache.cassandra.auth.CassandraAuthorizer$2
            dup
            aload 0 /* this */
            aload 6 /* resource */
            invokespecial org.apache.cassandra.auth.CassandraAuthorizer$2.<init>:(Lorg/apache/cassandra/auth/CassandraAuthorizer;Lorg/apache/cassandra/auth/IResource;)V
            astore 7 /* isApplicable */
        start local 7 // com.google.common.base.Predicate isApplicable
        23: .line 430
            getstatic org.apache.cassandra.serializers.UTF8Serializer.instance:Lorg/apache/cassandra/serializers/UTF8Serializer;
            getstatic org.apache.cassandra.db.marshal.UTF8Type.instance:Lorg/apache/cassandra/db/marshal/UTF8Type;
            invokestatic org.apache.cassandra.serializers.SetSerializer.getInstance:(Lorg/apache/cassandra/serializers/TypeSerializer;Ljava/util/Comparator;)Lorg/apache/cassandra/serializers/SetSerializer;
            astore 8 /* serializer */
        start local 8 // org.apache.cassandra.serializers.SetSerializer serializer
        24: .line 431
            aload 8 /* serializer */
            aload 4 /* row */
            ldc "permissions"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            invokevirtual org.apache.cassandra.serializers.SetSerializer.deserialize:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            checkcast java.util.Set
            astore 9 /* originalPerms */
        start local 9 // java.util.Set originalPerms
        25: .line 432
            aload 9 /* originalPerms */
            aload 7 /* isApplicable */
            invokestatic com.google.common.collect.Iterables.filter:(Ljava/lang/Iterable;Lcom/google/common/base/Predicate;)Ljava/lang/Iterable;
            invokestatic com.google.common.collect.ImmutableSet.copyOf:(Ljava/lang/Iterable;)Lcom/google/common/collect/ImmutableSet;
            astore 10 /* filteredPerms */
        start local 10 // java.util.Set filteredPerms
        26: .line 433
            aload 1 /* insertStatement */
            invokestatic org.apache.cassandra.service.QueryState.forInternalCalls:()Lorg/apache/cassandra/service/QueryState;
        27: .line 434
            getstatic org.apache.cassandra.db.ConsistencyLevel.ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
            iconst_3
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
        28: .line 435
            aload 4 /* row */
            ldc "username"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            aastore
            dup
            iconst_1
        29: .line 436
            aload 4 /* row */
            ldc "resource"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            aastore
            dup
            iconst_2
        30: .line 437
            aload 8 /* serializer */
            aload 10 /* filteredPerms */
            invokevirtual org.apache.cassandra.serializers.SetSerializer.serialize:(Ljava/lang/Object;)Ljava/nio/ByteBuffer;
            aastore
        31: .line 435
            invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
        32: .line 434
            invokestatic org.apache.cassandra.cql3.QueryOptions.forInternalCalls:(Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;)Lorg/apache/cassandra/cql3/QueryOptions;
        33: .line 438
            invokestatic java.lang.System.nanoTime:()J
        34: .line 433
            invokeinterface org.apache.cassandra.cql3.CQLStatement.execute:(Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
            pop
        35: .line 440
            aload 2 /* indexStatement */
            invokestatic org.apache.cassandra.service.QueryState.forInternalCalls:()Lorg/apache/cassandra/service/QueryState;
        36: .line 441
            getstatic org.apache.cassandra.db.ConsistencyLevel.ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
            iconst_2
            anewarray java.nio.ByteBuffer
            dup
            iconst_0
        37: .line 442
            aload 4 /* row */
            ldc "resource"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            aastore
            dup
            iconst_1
        38: .line 443
            aload 4 /* row */
            ldc "username"
            invokevirtual org.apache.cassandra.cql3.UntypedResultSet$Row.getBytes:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
            aastore
        39: .line 442
            invokestatic com.google.common.collect.Lists.newArrayList:([Ljava/lang/Object;)Ljava/util/ArrayList;
        40: .line 441
            invokestatic org.apache.cassandra.cql3.QueryOptions.forInternalCalls:(Lorg/apache/cassandra/db/ConsistencyLevel;Ljava/util/List;)Lorg/apache/cassandra/cql3/QueryOptions;
        41: .line 444
            invokestatic java.lang.System.nanoTime:()J
        42: .line 440
            invokeinterface org.apache.cassandra.cql3.CQLStatement.execute:(Lorg/apache/cassandra/service/QueryState;Lorg/apache/cassandra/cql3/QueryOptions;J)Lorg/apache/cassandra/transport/messages/ResultMessage;
            pop
        end local 10 // java.util.Set filteredPerms
        end local 9 // java.util.Set originalPerms
        end local 8 // org.apache.cassandra.serializers.SetSerializer serializer
        end local 7 // com.google.common.base.Predicate isApplicable
        end local 6 // org.apache.cassandra.auth.IResource resource
        end local 4 // org.apache.cassandra.cql3.UntypedResultSet$Row row
        43: .line 420
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        44: .line 447
            getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
            ldc "Completed conversion of legacy permissions"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        end local 3 // org.apache.cassandra.cql3.UntypedResultSet permissions
        end local 2 // org.apache.cassandra.cql3.CQLStatement indexStatement
        end local 1 // org.apache.cassandra.cql3.CQLStatement insertStatement
        45: .line 449
            goto 49
        46: .line 450
      StackMap locals: org.apache.cassandra.auth.CassandraAuthorizer
      StackMap stack: java.lang.Exception
            astore 1 /* e */
        start local 1 // java.lang.Exception e
        47: .line 452
            getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
            ldc "Unable to complete conversion of legacy permissions data (perhaps not enough nodes are upgraded yet). Conversion should not be considered complete"
            invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;)V
        48: .line 454
            getstatic org.apache.cassandra.auth.CassandraAuthorizer.logger:Lorg/slf4j/Logger;
            ldc "Conversion error"
            aload 1 /* e */
            invokeinterface org.slf4j.Logger.trace:(Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 1 // java.lang.Exception e
        49: .line 456
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   50     0             this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
           10   45     1  insertStatement  Lorg/apache/cassandra/cql3/CQLStatement;
           18   45     2   indexStatement  Lorg/apache/cassandra/cql3/CQLStatement;
           19   45     3      permissions  Lorg/apache/cassandra/cql3/UntypedResultSet;
           21   43     4              row  Lorg/apache/cassandra/cql3/UntypedResultSet$Row;
           22   43     6         resource  Lorg/apache/cassandra/auth/IResource;
           23   43     7     isApplicable  Lcom/google/common/base/Predicate<Ljava/lang/String;>;
           24   43     8       serializer  Lorg/apache/cassandra/serializers/SetSerializer<Ljava/lang/String;>;
           25   43     9    originalPerms  Ljava/util/Set<Ljava/lang/String;>;
           26   43    10    filteredPerms  Ljava/util/Set<Ljava/lang/String;>;
           47   49     1                e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0    45      46  Class java.lang.Exception

  private java.lang.String escape(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // java.lang.String name
         0: .line 461
            aload 1 /* name */
            ldc "'"
            ldc "''"
            invokestatic org.apache.commons.lang3.StringUtils.replace:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private org.apache.cassandra.cql3.UntypedResultSet process(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/cassandra/cql3/UntypedResultSet;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
        start local 1 // java.lang.String query
         0: .line 466
            aload 1 /* query */
            getstatic org.apache.cassandra.db.ConsistencyLevel.LOCAL_ONE:Lorg/apache/cassandra/db/ConsistencyLevel;
            invokestatic org.apache.cassandra.cql3.QueryProcessor.process:(Ljava/lang/String;Lorg/apache/cassandra/db/ConsistencyLevel;)Lorg/apache/cassandra/cql3/UntypedResultSet;
            areturn
        end local 1 // java.lang.String query
        end local 0 // org.apache.cassandra.auth.CassandraAuthorizer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/cassandra/auth/CassandraAuthorizer;
            0    1     1  query  Ljava/lang/String;
    Exceptions:
      throws org.apache.cassandra.exceptions.RequestExecutionException
    MethodParameters:
       Name  Flags
      query  
}
SourceFile: "CassandraAuthorizer.java"
NestMembers:
  org.apache.cassandra.auth.CassandraAuthorizer$1  org.apache.cassandra.auth.CassandraAuthorizer$2
InnerClasses:
  org.apache.cassandra.auth.CassandraAuthorizer$1
  org.apache.cassandra.auth.CassandraAuthorizer$2
  public Row = org.apache.cassandra.cql3.UntypedResultSet$Row of org.apache.cassandra.cql3.UntypedResultSet
  public final Type = org.apache.cassandra.cql3.statements.BatchStatement$Type of org.apache.cassandra.cql3.statements.BatchStatement
  public Prepared = org.apache.cassandra.cql3.statements.ParsedStatement$Prepared of org.apache.cassandra.cql3.statements.ParsedStatement
  public Rows = org.apache.cassandra.transport.messages.ResultMessage$Rows of org.apache.cassandra.transport.messages.ResultMessage