http://git-wip-us.apache.org/repos/asf/hbase/blob/37dd8ff7/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/AccessControlProtos.java
----------------------------------------------------------------------
diff --git 
a/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/AccessControlProtos.java
 
b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/AccessControlProtos.java
new file mode 100644
index 0000000..06a4e01
--- /dev/null
+++ 
b/hbase-protocol-shaded/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/generated/AccessControlProtos.java
@@ -0,0 +1,11171 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: AccessControl.proto
+
+package org.apache.hadoop.hbase.shaded.protobuf.generated;
+
+public final class AccessControlProtos {
+  private AccessControlProtos() {}
+  public static void registerAllExtensions(
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
registry) {
+  }
+
+  public static void registerAllExtensions(
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistry 
registry) {
+    registerAllExtensions(
+        
(org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite) 
registry);
+  }
+  public interface PermissionOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:hbase.pb.Permission)
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>required .hbase.pb.Permission.Type type = 1;</code>
+     */
+    boolean hasType();
+    /**
+     * <code>required .hbase.pb.Permission.Type type = 1;</code>
+     */
+    
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type
 getType();
+
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    boolean hasGlobalPermission();
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission
 getGlobalPermission();
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder
 getGlobalPermissionOrBuilder();
+
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+     */
+    boolean hasNamespacePermission();
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+     */
+    
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission
 getNamespacePermission();
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+     */
+    
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder
 getNamespacePermissionOrBuilder();
+
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    boolean hasTablePermission();
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 getTablePermission();
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder
 getTablePermissionOrBuilder();
+  }
+  /**
+   * Protobuf type {@code hbase.pb.Permission}
+   */
+  public  static final class Permission extends
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3 
implements
+      // @@protoc_insertion_point(message_implements:hbase.pb.Permission)
+      PermissionOrBuilder {
+    // Use Permission.newBuilder() to construct.
+    private 
Permission(org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<?>
 builder) {
+      super(builder);
+    }
+    private Permission() {
+      type_ = 1;
+    }
+
+    @java.lang.Override
+    public final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private Permission(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream 
input,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      this();
+      int mutable_bitField0_ = 0;
+      
org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet.Builder 
unknownFields =
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 8: {
+              int rawValue = input.readEnum();
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type
 value = 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(1, rawValue);
+              } else {
+                bitField0_ |= 0x00000001;
+                type_ = rawValue;
+              }
+              break;
+            }
+            case 18: {
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder
 subBuilder = null;
+              if (((bitField0_ & 0x00000002) == 0x00000002)) {
+                subBuilder = globalPermission_.toBuilder();
+              }
+              globalPermission_ = 
input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.PARSER,
 extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(globalPermission_);
+                globalPermission_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000002;
+              break;
+            }
+            case 26: {
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder
 subBuilder = null;
+              if (((bitField0_ & 0x00000004) == 0x00000004)) {
+                subBuilder = namespacePermission_.toBuilder();
+              }
+              namespacePermission_ = 
input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.PARSER,
 extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(namespacePermission_);
+                namespacePermission_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000004;
+              break;
+            }
+            case 34: {
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder
 subBuilder = null;
+              if (((bitField0_ & 0x00000008) == 0x00000008)) {
+                subBuilder = tablePermission_.toBuilder();
+              }
+              tablePermission_ = 
input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.PARSER,
 extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(tablePermission_);
+                tablePermission_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000008;
+              break;
+            }
+          }
+        }
+      } catch 
(org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_descriptor;
+    }
+
+    protected 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.class,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Builder.class);
+    }
+
+    /**
+     * Protobuf enum {@code hbase.pb.Permission.Action}
+     */
+    public enum Action
+        implements 
org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
+      /**
+       * <code>READ = 0;</code>
+       */
+      READ(0),
+      /**
+       * <code>WRITE = 1;</code>
+       */
+      WRITE(1),
+      /**
+       * <code>EXEC = 2;</code>
+       */
+      EXEC(2),
+      /**
+       * <code>CREATE = 3;</code>
+       */
+      CREATE(3),
+      /**
+       * <code>ADMIN = 4;</code>
+       */
+      ADMIN(4),
+      ;
+
+      /**
+       * <code>READ = 0;</code>
+       */
+      public static final int READ_VALUE = 0;
+      /**
+       * <code>WRITE = 1;</code>
+       */
+      public static final int WRITE_VALUE = 1;
+      /**
+       * <code>EXEC = 2;</code>
+       */
+      public static final int EXEC_VALUE = 2;
+      /**
+       * <code>CREATE = 3;</code>
+       */
+      public static final int CREATE_VALUE = 3;
+      /**
+       * <code>ADMIN = 4;</code>
+       */
+      public static final int ADMIN_VALUE = 4;
+
+
+      public final int getNumber() {
+        return value;
+      }
+
+      /**
+       * @deprecated Use {@link #forNumber(int)} instead.
+       */
+      @java.lang.Deprecated
+      public static Action valueOf(int value) {
+        return forNumber(value);
+      }
+
+      public static Action forNumber(int value) {
+        switch (value) {
+          case 0: return READ;
+          case 1: return WRITE;
+          case 2: return EXEC;
+          case 3: return CREATE;
+          case 4: return ADMIN;
+          default: return null;
+        }
+      }
+
+      public static 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<Action>
+          internalGetValueMap() {
+        return internalValueMap;
+      }
+      private static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
+          Action> internalValueMap =
+            new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<Action>()
 {
+              public Action findValueByNumber(int number) {
+                return Action.forNumber(number);
+              }
+            };
+
+      public final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
+          getValueDescriptor() {
+        return getDescriptor().getValues().get(ordinal());
+      }
+      public final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptorForType() {
+        return getDescriptor();
+      }
+      public static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptor() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.getDescriptor().getEnumTypes().get(0);
+      }
+
+      private static final Action[] VALUES = values();
+
+      public static Action valueOf(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
 desc) {
+        if (desc.getType() != getDescriptor()) {
+          throw new java.lang.IllegalArgumentException(
+            "EnumValueDescriptor is not for this type.");
+        }
+        return VALUES[desc.getIndex()];
+      }
+
+      private final int value;
+
+      private Action(int value) {
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:hbase.pb.Permission.Action)
+    }
+
+    /**
+     * Protobuf enum {@code hbase.pb.Permission.Type}
+     */
+    public enum Type
+        implements 
org.apache.hadoop.hbase.shaded.com.google.protobuf.ProtocolMessageEnum {
+      /**
+       * <code>Global = 1;</code>
+       */
+      Global(1),
+      /**
+       * <code>Namespace = 2;</code>
+       */
+      Namespace(2),
+      /**
+       * <code>Table = 3;</code>
+       */
+      Table(3),
+      ;
+
+      /**
+       * <code>Global = 1;</code>
+       */
+      public static final int Global_VALUE = 1;
+      /**
+       * <code>Namespace = 2;</code>
+       */
+      public static final int Namespace_VALUE = 2;
+      /**
+       * <code>Table = 3;</code>
+       */
+      public static final int Table_VALUE = 3;
+
+
+      public final int getNumber() {
+        return value;
+      }
+
+      /**
+       * @deprecated Use {@link #forNumber(int)} instead.
+       */
+      @java.lang.Deprecated
+      public static Type valueOf(int value) {
+        return forNumber(value);
+      }
+
+      public static Type forNumber(int value) {
+        switch (value) {
+          case 1: return Global;
+          case 2: return Namespace;
+          case 3: return Table;
+          default: return null;
+        }
+      }
+
+      public static 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<Type>
+          internalGetValueMap() {
+        return internalValueMap;
+      }
+      private static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<
+          Type> internalValueMap =
+            new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.EnumLiteMap<Type>() 
{
+              public Type findValueByNumber(int number) {
+                return Type.forNumber(number);
+              }
+            };
+
+      public final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
+          getValueDescriptor() {
+        return getDescriptor().getValues().get(ordinal());
+      }
+      public final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptorForType() {
+        return getDescriptor();
+      }
+      public static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumDescriptor
+          getDescriptor() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.getDescriptor().getEnumTypes().get(1);
+      }
+
+      private static final Type[] VALUES = values();
+
+      public static Type valueOf(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.EnumValueDescriptor
 desc) {
+        if (desc.getType() != getDescriptor()) {
+          throw new java.lang.IllegalArgumentException(
+            "EnumValueDescriptor is not for this type.");
+        }
+        return VALUES[desc.getIndex()];
+      }
+
+      private final int value;
+
+      private Type(int value) {
+        this.value = value;
+      }
+
+      // @@protoc_insertion_point(enum_scope:hbase.pb.Permission.Type)
+    }
+
+    private int bitField0_;
+    public static final int TYPE_FIELD_NUMBER = 1;
+    private int type_;
+    /**
+     * <code>required .hbase.pb.Permission.Type type = 1;</code>
+     */
+    public boolean hasType() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>required .hbase.pb.Permission.Type type = 1;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type
 getType() {
+      
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type
 result = 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.valueOf(type_);
+      return result == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.Global
 : result;
+    }
+
+    public static final int GLOBAL_PERMISSION_FIELD_NUMBER = 2;
+    private 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission
 globalPermission_;
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    public boolean hasGlobalPermission() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission
 getGlobalPermission() {
+      return globalPermission_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance()
 : globalPermission_;
+    }
+    /**
+     * <code>optional .hbase.pb.GlobalPermission global_permission = 2;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder
 getGlobalPermissionOrBuilder() {
+      return globalPermission_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance()
 : globalPermission_;
+    }
+
+    public static final int NAMESPACE_PERMISSION_FIELD_NUMBER = 3;
+    private 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission
 namespacePermission_;
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+     */
+    public boolean hasNamespacePermission() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission
 getNamespacePermission() {
+      return namespacePermission_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance()
 : namespacePermission_;
+    }
+    /**
+     * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder
 getNamespacePermissionOrBuilder() {
+      return namespacePermission_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance()
 : namespacePermission_;
+    }
+
+    public static final int TABLE_PERMISSION_FIELD_NUMBER = 4;
+    private 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 tablePermission_;
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    public boolean hasTablePermission() {
+      return ((bitField0_ & 0x00000008) == 0x00000008);
+    }
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 getTablePermission() {
+      return tablePermission_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance()
 : tablePermission_;
+    }
+    /**
+     * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder
 getTablePermissionOrBuilder() {
+      return tablePermission_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance()
 : tablePermission_;
+    }
+
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      if (!hasType()) {
+        memoizedIsInitialized = 0;
+        return false;
+      }
+      if (hasTablePermission()) {
+        if (!getTablePermission().isInitialized()) {
+          memoizedIsInitialized = 0;
+          return false;
+        }
+      }
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void 
writeTo(org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream 
output)
+                        throws java.io.IOException {
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeEnum(1, type_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeMessage(2, getGlobalPermission());
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeMessage(3, getNamespacePermission());
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        output.writeMessage(4, getTablePermission());
+      }
+      unknownFields.writeTo(output);
+    }
+
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += 
org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeEnumSize(1, type_);
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += 
org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeMessageSize(2, getGlobalPermission());
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += 
org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeMessageSize(3, getNamespacePermission());
+      }
+      if (((bitField0_ & 0x00000008) == 0x00000008)) {
+        size += 
org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeMessageSize(4, getTablePermission());
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission))
 {
+        return super.equals(obj);
+      }
+      
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 other = 
(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission)
 obj;
+
+      boolean result = true;
+      result = result && (hasType() == other.hasType());
+      if (hasType()) {
+        result = result && type_ == other.type_;
+      }
+      result = result && (hasGlobalPermission() == 
other.hasGlobalPermission());
+      if (hasGlobalPermission()) {
+        result = result && getGlobalPermission()
+            .equals(other.getGlobalPermission());
+      }
+      result = result && (hasNamespacePermission() == 
other.hasNamespacePermission());
+      if (hasNamespacePermission()) {
+        result = result && getNamespacePermission()
+            .equals(other.getNamespacePermission());
+      }
+      result = result && (hasTablePermission() == other.hasTablePermission());
+      if (hasTablePermission()) {
+        result = result && getTablePermission()
+            .equals(other.getTablePermission());
+      }
+      result = result && unknownFields.equals(other.unknownFields);
+      return result;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (hasType()) {
+        hash = (37 * hash) + TYPE_FIELD_NUMBER;
+        hash = (53 * hash) + type_;
+      }
+      if (hasGlobalPermission()) {
+        hash = (37 * hash) + GLOBAL_PERMISSION_FIELD_NUMBER;
+        hash = (53 * hash) + getGlobalPermission().hashCode();
+      }
+      if (hasNamespacePermission()) {
+        hash = (37 * hash) + NAMESPACE_PERMISSION_FIELD_NUMBER;
+        hash = (53 * hash) + getNamespacePermission().hashCode();
+      }
+      if (hasTablePermission()) {
+        hash = (37 * hash) + TABLE_PERMISSION_FIELD_NUMBER;
+        hash = (53 * hash) + getTablePermission().hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      return PARSER.parseFrom(data);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseFrom(byte[] data)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      return PARSER.parseFrom(data);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseFrom(
+        byte[] data,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseFrom(
+        java.io.InputStream input,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseDelimitedFrom(
+        java.io.InputStream input,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream 
input)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream 
input,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder 
newBuilder(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.BuilderParent
 parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code hbase.pb.Permission}
+     */
+    public static final class Builder extends
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<Builder>
 implements
+        // @@protoc_insertion_point(builder_implements:hbase.pb.Permission)
+        
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.PermissionOrBuilder
 {
+      public static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_descriptor;
+      }
+
+      protected 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.class,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Builder.class);
+      }
+
+      // Construct using 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.BuilderParent
 parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if 
(org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getGlobalPermissionFieldBuilder();
+          getNamespacePermissionFieldBuilder();
+          getTablePermissionFieldBuilder();
+        }
+      }
+      public Builder clear() {
+        super.clear();
+        type_ = 1;
+        bitField0_ = (bitField0_ & ~0x00000001);
+        if (globalPermissionBuilder_ == null) {
+          globalPermission_ = null;
+        } else {
+          globalPermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
+        if (namespacePermissionBuilder_ == null) {
+          namespacePermission_ = null;
+        } else {
+          namespacePermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000004);
+        if (tablePermissionBuilder_ == null) {
+          tablePermission_ = null;
+        } else {
+          tablePermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000008);
+        return this;
+      }
+
+      public 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_Permission_descriptor;
+      }
+
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 getDefaultInstanceForType() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.getDefaultInstance();
+      }
+
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 build() {
+        
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 buildPartial() {
+        
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 result = new 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        result.type_ = type_;
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        if (globalPermissionBuilder_ == null) {
+          result.globalPermission_ = globalPermission_;
+        } else {
+          result.globalPermission_ = globalPermissionBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        if (namespacePermissionBuilder_ == null) {
+          result.namespacePermission_ = namespacePermission_;
+        } else {
+          result.namespacePermission_ = namespacePermissionBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+          to_bitField0_ |= 0x00000008;
+        }
+        if (tablePermissionBuilder_ == null) {
+          result.tablePermission_ = tablePermission_;
+        } else {
+          result.tablePermission_ = tablePermissionBuilder_.build();
+        }
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder clone() {
+        return (Builder) super.clone();
+      }
+      public Builder setField(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor 
field,
+          Object value) {
+        return (Builder) super.setField(field, value);
+      }
+      public Builder clearField(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor 
field) {
+        return (Builder) super.clearField(field);
+      }
+      public Builder clearOneof(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.OneofDescriptor 
oneof) {
+        return (Builder) super.clearOneof(oneof);
+      }
+      public Builder setRepeatedField(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor 
field,
+          int index, Object value) {
+        return (Builder) super.setRepeatedField(field, index, value);
+      }
+      public Builder addRepeatedField(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor 
field,
+          Object value) {
+        return (Builder) super.addRepeatedField(field, value);
+      }
+      public Builder 
mergeFrom(org.apache.hadoop.hbase.shaded.com.google.protobuf.Message other) {
+        if (other instanceof 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission)
 {
+          return 
mergeFrom((org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder 
mergeFrom(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 other) {
+        if (other == 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.getDefaultInstance())
 return this;
+        if (other.hasType()) {
+          setType(other.getType());
+        }
+        if (other.hasGlobalPermission()) {
+          mergeGlobalPermission(other.getGlobalPermission());
+        }
+        if (other.hasNamespacePermission()) {
+          mergeNamespacePermission(other.getNamespacePermission());
+        }
+        if (other.hasTablePermission()) {
+          mergeTablePermission(other.getTablePermission());
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        if (!hasType()) {
+          return false;
+        }
+        if (hasTablePermission()) {
+          if (!getTablePermission().isInitialized()) {
+            return false;
+          }
+        }
+        return true;
+      }
+
+      public Builder mergeFrom(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream 
input,
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+          throws java.io.IOException {
+        
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 parsedMessage = null;
+        try {
+          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
+        } catch 
(org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 e) {
+          parsedMessage = 
(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission)
 e.getUnfinishedMessage();
+          throw e.unwrapIOException();
+        } finally {
+          if (parsedMessage != null) {
+            mergeFrom(parsedMessage);
+          }
+        }
+        return this;
+      }
+      private int bitField0_;
+
+      private int type_ = 1;
+      /**
+       * <code>required .hbase.pb.Permission.Type type = 1;</code>
+       */
+      public boolean hasType() {
+        return ((bitField0_ & 0x00000001) == 0x00000001);
+      }
+      /**
+       * <code>required .hbase.pb.Permission.Type type = 1;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type
 getType() {
+        
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type
 result = 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.valueOf(type_);
+        return result == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type.Global
 : result;
+      }
+      /**
+       * <code>required .hbase.pb.Permission.Type type = 1;</code>
+       */
+      public Builder 
setType(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Type
 value) {
+        if (value == null) {
+          throw new NullPointerException();
+        }
+        bitField0_ |= 0x00000001;
+        type_ = value.getNumber();
+        onChanged();
+        return this;
+      }
+      /**
+       * <code>required .hbase.pb.Permission.Type type = 1;</code>
+       */
+      public Builder clearType() {
+        bitField0_ = (bitField0_ & ~0x00000001);
+        type_ = 1;
+        onChanged();
+        return this;
+      }
+
+      private 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission
 globalPermission_ = null;
+      private 
org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder>
 globalPermissionBuilder_;
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 
2;</code>
+       */
+      public boolean hasGlobalPermission() {
+        return ((bitField0_ & 0x00000002) == 0x00000002);
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 
2;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission
 getGlobalPermission() {
+        if (globalPermissionBuilder_ == null) {
+          return globalPermission_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance()
 : globalPermission_;
+        } else {
+          return globalPermissionBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 
2;</code>
+       */
+      public Builder 
setGlobalPermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission
 value) {
+        if (globalPermissionBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          globalPermission_ = value;
+          onChanged();
+        } else {
+          globalPermissionBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 
2;</code>
+       */
+      public Builder setGlobalPermission(
+          
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder
 builderForValue) {
+        if (globalPermissionBuilder_ == null) {
+          globalPermission_ = builderForValue.build();
+          onChanged();
+        } else {
+          globalPermissionBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 
2;</code>
+       */
+      public Builder 
mergeGlobalPermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission
 value) {
+        if (globalPermissionBuilder_ == null) {
+          if (((bitField0_ & 0x00000002) == 0x00000002) &&
+              globalPermission_ != null &&
+              globalPermission_ != 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance())
 {
+            globalPermission_ =
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.newBuilder(globalPermission_).mergeFrom(value).buildPartial();
+          } else {
+            globalPermission_ = value;
+          }
+          onChanged();
+        } else {
+          globalPermissionBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000002;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 
2;</code>
+       */
+      public Builder clearGlobalPermission() {
+        if (globalPermissionBuilder_ == null) {
+          globalPermission_ = null;
+          onChanged();
+        } else {
+          globalPermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000002);
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 
2;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder
 getGlobalPermissionBuilder() {
+        bitField0_ |= 0x00000002;
+        onChanged();
+        return getGlobalPermissionFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 
2;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder
 getGlobalPermissionOrBuilder() {
+        if (globalPermissionBuilder_ != null) {
+          return globalPermissionBuilder_.getMessageOrBuilder();
+        } else {
+          return globalPermission_ == null ?
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.getDefaultInstance()
 : globalPermission_;
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.GlobalPermission global_permission = 
2;</code>
+       */
+      private 
org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder>
+          getGlobalPermissionFieldBuilder() {
+        if (globalPermissionBuilder_ == null) {
+          globalPermissionBuilder_ = new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermission.Builder,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.GlobalPermissionOrBuilder>(
+                  getGlobalPermission(),
+                  getParentForChildren(),
+                  isClean());
+          globalPermission_ = null;
+        }
+        return globalPermissionBuilder_;
+      }
+
+      private 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission
 namespacePermission_ = null;
+      private 
org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder>
 namespacePermissionBuilder_;
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+       */
+      public boolean hasNamespacePermission() {
+        return ((bitField0_ & 0x00000004) == 0x00000004);
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission
 getNamespacePermission() {
+        if (namespacePermissionBuilder_ == null) {
+          return namespacePermission_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance()
 : namespacePermission_;
+        } else {
+          return namespacePermissionBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+       */
+      public Builder 
setNamespacePermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission
 value) {
+        if (namespacePermissionBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          namespacePermission_ = value;
+          onChanged();
+        } else {
+          namespacePermissionBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000004;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+       */
+      public Builder setNamespacePermission(
+          
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder
 builderForValue) {
+        if (namespacePermissionBuilder_ == null) {
+          namespacePermission_ = builderForValue.build();
+          onChanged();
+        } else {
+          namespacePermissionBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000004;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+       */
+      public Builder 
mergeNamespacePermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission
 value) {
+        if (namespacePermissionBuilder_ == null) {
+          if (((bitField0_ & 0x00000004) == 0x00000004) &&
+              namespacePermission_ != null &&
+              namespacePermission_ != 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance())
 {
+            namespacePermission_ =
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.newBuilder(namespacePermission_).mergeFrom(value).buildPartial();
+          } else {
+            namespacePermission_ = value;
+          }
+          onChanged();
+        } else {
+          namespacePermissionBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000004;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+       */
+      public Builder clearNamespacePermission() {
+        if (namespacePermissionBuilder_ == null) {
+          namespacePermission_ = null;
+          onChanged();
+        } else {
+          namespacePermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000004);
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder
 getNamespacePermissionBuilder() {
+        bitField0_ |= 0x00000004;
+        onChanged();
+        return getNamespacePermissionFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder
 getNamespacePermissionOrBuilder() {
+        if (namespacePermissionBuilder_ != null) {
+          return namespacePermissionBuilder_.getMessageOrBuilder();
+        } else {
+          return namespacePermission_ == null ?
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.getDefaultInstance()
 : namespacePermission_;
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.NamespacePermission namespace_permission = 
3;</code>
+       */
+      private 
org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder>
+          getNamespacePermissionFieldBuilder() {
+        if (namespacePermissionBuilder_ == null) {
+          namespacePermissionBuilder_ = new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermission.Builder,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.NamespacePermissionOrBuilder>(
+                  getNamespacePermission(),
+                  getParentForChildren(),
+                  isClean());
+          namespacePermission_ = null;
+        }
+        return namespacePermissionBuilder_;
+      }
+
+      private 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 tablePermission_ = null;
+      private 
org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder>
 tablePermissionBuilder_;
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public boolean hasTablePermission() {
+        return ((bitField0_ & 0x00000008) == 0x00000008);
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 getTablePermission() {
+        if (tablePermissionBuilder_ == null) {
+          return tablePermission_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance()
 : tablePermission_;
+        } else {
+          return tablePermissionBuilder_.getMessage();
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public Builder 
setTablePermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 value) {
+        if (tablePermissionBuilder_ == null) {
+          if (value == null) {
+            throw new NullPointerException();
+          }
+          tablePermission_ = value;
+          onChanged();
+        } else {
+          tablePermissionBuilder_.setMessage(value);
+        }
+        bitField0_ |= 0x00000008;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public Builder setTablePermission(
+          
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder
 builderForValue) {
+        if (tablePermissionBuilder_ == null) {
+          tablePermission_ = builderForValue.build();
+          onChanged();
+        } else {
+          tablePermissionBuilder_.setMessage(builderForValue.build());
+        }
+        bitField0_ |= 0x00000008;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public Builder 
mergeTablePermission(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 value) {
+        if (tablePermissionBuilder_ == null) {
+          if (((bitField0_ & 0x00000008) == 0x00000008) &&
+              tablePermission_ != null &&
+              tablePermission_ != 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance())
 {
+            tablePermission_ =
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.newBuilder(tablePermission_).mergeFrom(value).buildPartial();
+          } else {
+            tablePermission_ = value;
+          }
+          onChanged();
+        } else {
+          tablePermissionBuilder_.mergeFrom(value);
+        }
+        bitField0_ |= 0x00000008;
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public Builder clearTablePermission() {
+        if (tablePermissionBuilder_ == null) {
+          tablePermission_ = null;
+          onChanged();
+        } else {
+          tablePermissionBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000008);
+        return this;
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder
 getTablePermissionBuilder() {
+        bitField0_ |= 0x00000008;
+        onChanged();
+        return getTablePermissionFieldBuilder().getBuilder();
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder
 getTablePermissionOrBuilder() {
+        if (tablePermissionBuilder_ != null) {
+          return tablePermissionBuilder_.getMessageOrBuilder();
+        } else {
+          return tablePermission_ == null ?
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance()
 : tablePermission_;
+        }
+      }
+      /**
+       * <code>optional .hbase.pb.TablePermission table_permission = 4;</code>
+       */
+      private 
org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+          
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder>
+          getTablePermissionFieldBuilder() {
+        if (tablePermissionBuilder_ == null) {
+          tablePermissionBuilder_ = new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.SingleFieldBuilderV3<
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder>(
+                  getTablePermission(),
+                  getParentForChildren(),
+                  isClean());
+          tablePermission_ = null;
+        }
+        return tablePermissionBuilder_;
+      }
+      public final Builder setUnknownFields(
+          final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet 
unknownFields) {
+        return super.setUnknownFields(unknownFields);
+      }
+
+      public final Builder mergeUnknownFields(
+          final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet 
unknownFields) {
+        return super.mergeUnknownFields(unknownFields);
+      }
+
+
+      // @@protoc_insertion_point(builder_scope:hbase.pb.Permission)
+    }
+
+    // @@protoc_insertion_point(class_scope:hbase.pb.Permission)
+    private static final 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 DEFAULT_INSTANCE;
+    static {
+      DEFAULT_INSTANCE = new 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission();
+    }
+
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 getDefaultInstance() {
+      return DEFAULT_INSTANCE;
+    }
+
+    @java.lang.Deprecated public static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Parser<Permission>
+        PARSER = new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.AbstractParser<Permission>() 
{
+      public Permission parsePartialFrom(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream 
input,
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+          throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+          return new Permission(input, extensionRegistry);
+      }
+    };
+
+    public static 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Parser<Permission> parser() {
+      return PARSER;
+    }
+
+    @java.lang.Override
+    public 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Parser<Permission> 
getParserForType() {
+      return PARSER;
+    }
+
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission
 getDefaultInstanceForType() {
+      return DEFAULT_INSTANCE;
+    }
+
+  }
+
+  public interface TablePermissionOrBuilder extends
+      // @@protoc_insertion_point(interface_extends:hbase.pb.TablePermission)
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.MessageOrBuilder {
+
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    boolean hasTableName();
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName 
getTableName();
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableNameOrBuilder
 getTableNameOrBuilder();
+
+    /**
+     * <code>optional bytes family = 2;</code>
+     */
+    boolean hasFamily();
+    /**
+     * <code>optional bytes family = 2;</code>
+     */
+    org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString getFamily();
+
+    /**
+     * <code>optional bytes qualifier = 3;</code>
+     */
+    boolean hasQualifier();
+    /**
+     * <code>optional bytes qualifier = 3;</code>
+     */
+    org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString 
getQualifier();
+
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    
java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action>
 getActionList();
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    int getActionCount();
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action
 getAction(int index);
+  }
+  /**
+   * Protobuf type {@code hbase.pb.TablePermission}
+   */
+  public  static final class TablePermission extends
+      org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3 
implements
+      // @@protoc_insertion_point(message_implements:hbase.pb.TablePermission)
+      TablePermissionOrBuilder {
+    // Use TablePermission.newBuilder() to construct.
+    private 
TablePermission(org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<?>
 builder) {
+      super(builder);
+    }
+    private TablePermission() {
+      family_ = 
org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString.EMPTY;
+      qualifier_ = 
org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString.EMPTY;
+      action_ = java.util.Collections.emptyList();
+    }
+
+    @java.lang.Override
+    public final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet
+    getUnknownFields() {
+      return this.unknownFields;
+    }
+    private TablePermission(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream 
input,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      this();
+      int mutable_bitField0_ = 0;
+      
org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet.Builder 
unknownFields =
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.UnknownFieldSet.newBuilder();
+      try {
+        boolean done = false;
+        while (!done) {
+          int tag = input.readTag();
+          switch (tag) {
+            case 0:
+              done = true;
+              break;
+            default: {
+              if (!parseUnknownField(input, unknownFields,
+                                     extensionRegistry, tag)) {
+                done = true;
+              }
+              break;
+            }
+            case 10: {
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.Builder 
subBuilder = null;
+              if (((bitField0_ & 0x00000001) == 0x00000001)) {
+                subBuilder = tableName_.toBuilder();
+              }
+              tableName_ = 
input.readMessage(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.PARSER,
 extensionRegistry);
+              if (subBuilder != null) {
+                subBuilder.mergeFrom(tableName_);
+                tableName_ = subBuilder.buildPartial();
+              }
+              bitField0_ |= 0x00000001;
+              break;
+            }
+            case 18: {
+              bitField0_ |= 0x00000002;
+              family_ = input.readBytes();
+              break;
+            }
+            case 26: {
+              bitField0_ |= 0x00000004;
+              qualifier_ = input.readBytes();
+              break;
+            }
+            case 32: {
+              int rawValue = input.readEnum();
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action
 value = 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action.valueOf(rawValue);
+              if (value == null) {
+                unknownFields.mergeVarintField(4, rawValue);
+              } else {
+                if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+                  action_ = new java.util.ArrayList<java.lang.Integer>();
+                  mutable_bitField0_ |= 0x00000008;
+                }
+                action_.add(rawValue);
+              }
+              break;
+            }
+            case 34: {
+              int length = input.readRawVarint32();
+              int oldLimit = input.pushLimit(length);
+              while(input.getBytesUntilLimit() > 0) {
+                int rawValue = input.readEnum();
+                
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action
 value = 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action.valueOf(rawValue);
+                if (value == null) {
+                  unknownFields.mergeVarintField(4, rawValue);
+                } else {
+                  if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+                    action_ = new java.util.ArrayList<java.lang.Integer>();
+                    mutable_bitField0_ |= 0x00000008;
+                  }
+                  action_.add(rawValue);
+                }
+              }
+              input.popLimit(oldLimit);
+              break;
+            }
+          }
+        }
+      } catch 
(org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 e) {
+        throw e.setUnfinishedMessage(this);
+      } catch (java.io.IOException e) {
+        throw new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException(
+            e).setUnfinishedMessage(this);
+      } finally {
+        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
+          action_ = java.util.Collections.unmodifiableList(action_);
+        }
+        this.unknownFields = unknownFields.build();
+        makeExtensionsImmutable();
+      }
+    }
+    public static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+        getDescriptor() {
+      return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_descriptor;
+    }
+
+    protected 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+        internalGetFieldAccessorTable() {
+      return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_fieldAccessorTable
+          .ensureFieldAccessorsInitialized(
+              
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.class,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder.class);
+    }
+
+    private int bitField0_;
+    public static final int TABLE_NAME_FIELD_NUMBER = 1;
+    private 
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName 
tableName_;
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    public boolean hasTableName() {
+      return ((bitField0_ & 0x00000001) == 0x00000001);
+    }
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName 
getTableName() {
+      return tableName_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.getDefaultInstance()
 : tableName_;
+    }
+    /**
+     * <code>optional .hbase.pb.TableName table_name = 1;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableNameOrBuilder
 getTableNameOrBuilder() {
+      return tableName_ == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.TableName.getDefaultInstance()
 : tableName_;
+    }
+
+    public static final int FAMILY_FIELD_NUMBER = 2;
+    private org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString 
family_;
+    /**
+     * <code>optional bytes family = 2;</code>
+     */
+    public boolean hasFamily() {
+      return ((bitField0_ & 0x00000002) == 0x00000002);
+    }
+    /**
+     * <code>optional bytes family = 2;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString 
getFamily() {
+      return family_;
+    }
+
+    public static final int QUALIFIER_FIELD_NUMBER = 3;
+    private org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString 
qualifier_;
+    /**
+     * <code>optional bytes qualifier = 3;</code>
+     */
+    public boolean hasQualifier() {
+      return ((bitField0_ & 0x00000004) == 0x00000004);
+    }
+    /**
+     * <code>optional bytes qualifier = 3;</code>
+     */
+    public org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString 
getQualifier() {
+      return qualifier_;
+    }
+
+    public static final int ACTION_FIELD_NUMBER = 4;
+    private java.util.List<java.lang.Integer> action_;
+    private static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.ListAdapter.Converter<
+        java.lang.Integer, 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action>
 action_converter_ =
+            new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.ListAdapter.Converter<
+                java.lang.Integer, 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action>()
 {
+              public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action
 convert(java.lang.Integer from) {
+                
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action
 result = 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action.valueOf(from);
+                return result == null ? 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action.READ
 : result;
+              }
+            };
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    public 
java.util.List<org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action>
 getActionList() {
+      return new 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Internal.ListAdapter<
+          java.lang.Integer, 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action>(action_,
 action_converter_);
+    }
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    public int getActionCount() {
+      return action_.size();
+    }
+    /**
+     * <code>repeated .hbase.pb.Permission.Action action = 4;</code>
+     */
+    public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.Permission.Action
 getAction(int index) {
+      return action_converter_.convert(action_.get(index));
+    }
+
+    private byte memoizedIsInitialized = -1;
+    public final boolean isInitialized() {
+      byte isInitialized = memoizedIsInitialized;
+      if (isInitialized == 1) return true;
+      if (isInitialized == 0) return false;
+
+      if (hasTableName()) {
+        if (!getTableName().isInitialized()) {
+          memoizedIsInitialized = 0;
+          return false;
+        }
+      }
+      memoizedIsInitialized = 1;
+      return true;
+    }
+
+    public void 
writeTo(org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream 
output)
+                        throws java.io.IOException {
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        output.writeMessage(1, getTableName());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        output.writeBytes(2, family_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        output.writeBytes(3, qualifier_);
+      }
+      for (int i = 0; i < action_.size(); i++) {
+        output.writeEnum(4, action_.get(i));
+      }
+      unknownFields.writeTo(output);
+    }
+
+    public int getSerializedSize() {
+      int size = memoizedSize;
+      if (size != -1) return size;
+
+      size = 0;
+      if (((bitField0_ & 0x00000001) == 0x00000001)) {
+        size += 
org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeMessageSize(1, getTableName());
+      }
+      if (((bitField0_ & 0x00000002) == 0x00000002)) {
+        size += 
org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeBytesSize(2, family_);
+      }
+      if (((bitField0_ & 0x00000004) == 0x00000004)) {
+        size += 
org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+          .computeBytesSize(3, qualifier_);
+      }
+      {
+        int dataSize = 0;
+        for (int i = 0; i < action_.size(); i++) {
+          dataSize += 
org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedOutputStream
+            .computeEnumSizeNoTag(action_.get(i));
+        }
+        size += dataSize;
+        size += 1 * action_.size();
+      }
+      size += unknownFields.getSerializedSize();
+      memoizedSize = size;
+      return size;
+    }
+
+    private static final long serialVersionUID = 0L;
+    @java.lang.Override
+    public boolean equals(final java.lang.Object obj) {
+      if (obj == this) {
+       return true;
+      }
+      if (!(obj instanceof 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission))
 {
+        return super.equals(obj);
+      }
+      
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 other = 
(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission)
 obj;
+
+      boolean result = true;
+      result = result && (hasTableName() == other.hasTableName());
+      if (hasTableName()) {
+        result = result && getTableName()
+            .equals(other.getTableName());
+      }
+      result = result && (hasFamily() == other.hasFamily());
+      if (hasFamily()) {
+        result = result && getFamily()
+            .equals(other.getFamily());
+      }
+      result = result && (hasQualifier() == other.hasQualifier());
+      if (hasQualifier()) {
+        result = result && getQualifier()
+            .equals(other.getQualifier());
+      }
+      result = result && action_.equals(other.action_);
+      result = result && unknownFields.equals(other.unknownFields);
+      return result;
+    }
+
+    @java.lang.Override
+    public int hashCode() {
+      if (memoizedHashCode != 0) {
+        return memoizedHashCode;
+      }
+      int hash = 41;
+      hash = (19 * hash) + getDescriptor().hashCode();
+      if (hasTableName()) {
+        hash = (37 * hash) + TABLE_NAME_FIELD_NUMBER;
+        hash = (53 * hash) + getTableName().hashCode();
+      }
+      if (hasFamily()) {
+        hash = (37 * hash) + FAMILY_FIELD_NUMBER;
+        hash = (53 * hash) + getFamily().hashCode();
+      }
+      if (hasQualifier()) {
+        hash = (37 * hash) + QUALIFIER_FIELD_NUMBER;
+        hash = (53 * hash) + getQualifier().hashCode();
+      }
+      if (getActionCount() > 0) {
+        hash = (37 * hash) + ACTION_FIELD_NUMBER;
+        hash = (53 * hash) + action_.hashCode();
+      }
+      hash = (29 * hash) + unknownFields.hashCode();
+      memoizedHashCode = hash;
+      return hash;
+    }
+
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      return PARSER.parseFrom(data);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString data,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseFrom(byte[] data)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      return PARSER.parseFrom(data);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseFrom(
+        byte[] data,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws 
org.apache.hadoop.hbase.shaded.com.google.protobuf.InvalidProtocolBufferException
 {
+      return PARSER.parseFrom(data, extensionRegistry);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseFrom(
+        java.io.InputStream input,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseDelimitedFrom(java.io.InputStream input)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseDelimitedFrom(
+        java.io.InputStream input,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream 
input)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input);
+    }
+    public static 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parseFrom(
+        org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream 
input,
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+        throws java.io.IOException {
+      return 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+          .parseWithIOException(PARSER, input, extensionRegistry);
+    }
+
+    public Builder newBuilderForType() { return newBuilder(); }
+    public static Builder newBuilder() {
+      return DEFAULT_INSTANCE.toBuilder();
+    }
+    public static Builder 
newBuilder(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 prototype) {
+      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
+    }
+    public Builder toBuilder() {
+      return this == DEFAULT_INSTANCE
+          ? new Builder() : new Builder().mergeFrom(this);
+    }
+
+    @java.lang.Override
+    protected Builder newBuilderForType(
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.BuilderParent
 parent) {
+      Builder builder = new Builder(parent);
+      return builder;
+    }
+    /**
+     * Protobuf type {@code hbase.pb.TablePermission}
+     */
+    public static final class Builder extends
+        
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.Builder<Builder>
 implements
+        // 
@@protoc_insertion_point(builder_implements:hbase.pb.TablePermission)
+        
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermissionOrBuilder
 {
+      public static final 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+          getDescriptor() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_descriptor;
+      }
+
+      protected 
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
+          internalGetFieldAccessorTable() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_fieldAccessorTable
+            .ensureFieldAccessorsInitialized(
+                
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.class,
 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.Builder.class);
+      }
+
+      // Construct using 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.newBuilder()
+      private Builder() {
+        maybeForceBuilderInitialization();
+      }
+
+      private Builder(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3.BuilderParent
 parent) {
+        super(parent);
+        maybeForceBuilderInitialization();
+      }
+      private void maybeForceBuilderInitialization() {
+        if 
(org.apache.hadoop.hbase.shaded.com.google.protobuf.GeneratedMessageV3
+                .alwaysUseFieldBuilders) {
+          getTableNameFieldBuilder();
+        }
+      }
+      public Builder clear() {
+        super.clear();
+        if (tableNameBuilder_ == null) {
+          tableName_ = null;
+        } else {
+          tableNameBuilder_.clear();
+        }
+        bitField0_ = (bitField0_ & ~0x00000001);
+        family_ = 
org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000002);
+        qualifier_ = 
org.apache.hadoop.hbase.shaded.com.google.protobuf.ByteString.EMPTY;
+        bitField0_ = (bitField0_ & ~0x00000004);
+        action_ = java.util.Collections.emptyList();
+        bitField0_ = (bitField0_ & ~0x00000008);
+        return this;
+      }
+
+      public 
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.Descriptor
+          getDescriptorForType() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.internal_static_hbase_pb_TablePermission_descriptor;
+      }
+
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 getDefaultInstanceForType() {
+        return 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance();
+      }
+
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 build() {
+        
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 result = buildPartial();
+        if (!result.isInitialized()) {
+          throw newUninitializedMessageException(result);
+        }
+        return result;
+      }
+
+      public 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 buildPartial() {
+        
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 result = new 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission(this);
+        int from_bitField0_ = bitField0_;
+        int to_bitField0_ = 0;
+        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+          to_bitField0_ |= 0x00000001;
+        }
+        if (tableNameBuilder_ == null) {
+          result.tableName_ = tableName_;
+        } else {
+          result.tableName_ = tableNameBuilder_.build();
+        }
+        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+          to_bitField0_ |= 0x00000002;
+        }
+        result.family_ = family_;
+        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+          to_bitField0_ |= 0x00000004;
+        }
+        result.qualifier_ = qualifier_;
+        if (((bitField0_ & 0x00000008) == 0x00000008)) {
+          action_ = java.util.Collections.unmodifiableList(action_);
+          bitField0_ = (bitField0_ & ~0x00000008);
+        }
+        result.action_ = action_;
+        result.bitField0_ = to_bitField0_;
+        onBuilt();
+        return result;
+      }
+
+      public Builder clone() {
+        return (Builder) super.clone();
+      }
+      public Builder setField(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor 
field,
+          Object value) {
+        return (Builder) super.setField(field, value);
+      }
+      public Builder clearField(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor 
field) {
+        return (Builder) super.clearField(field);
+      }
+      public Builder clearOneof(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.OneofDescriptor 
oneof) {
+        return (Builder) super.clearOneof(oneof);
+      }
+      public Builder setRepeatedField(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor 
field,
+          int index, Object value) {
+        return (Builder) super.setRepeatedField(field, index, value);
+      }
+      public Builder addRepeatedField(
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.Descriptors.FieldDescriptor 
field,
+          Object value) {
+        return (Builder) super.addRepeatedField(field, value);
+      }
+      public Builder 
mergeFrom(org.apache.hadoop.hbase.shaded.com.google.protobuf.Message other) {
+        if (other instanceof 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission)
 {
+          return 
mergeFrom((org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission)other);
+        } else {
+          super.mergeFrom(other);
+          return this;
+        }
+      }
+
+      public Builder 
mergeFrom(org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 other) {
+        if (other == 
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission.getDefaultInstance())
 return this;
+        if (other.hasTableName()) {
+          mergeTableName(other.getTableName());
+        }
+        if (other.hasFamily()) {
+          setFamily(other.getFamily());
+        }
+        if (other.hasQualifier()) {
+          setQualifier(other.getQualifier());
+        }
+        if (!other.action_.isEmpty()) {
+          if (action_.isEmpty()) {
+            action_ = other.action_;
+            bitField0_ = (bitField0_ & ~0x00000008);
+          } else {
+            ensureActionIsMutable();
+            action_.addAll(other.action_);
+          }
+          onChanged();
+        }
+        this.mergeUnknownFields(other.unknownFields);
+        onChanged();
+        return this;
+      }
+
+      public final boolean isInitialized() {
+        if (hasTableName()) {
+          if (!getTableName().isInitialized()) {
+            return false;
+          }
+        }
+        return true;
+      }
+
+      public Builder mergeFrom(
+          org.apache.hadoop.hbase.shaded.com.google.protobuf.CodedInputStream 
input,
+          
org.apache.hadoop.hbase.shaded.com.google.protobuf.ExtensionRegistryLite 
extensionRegistry)
+          throws java.io.IOException {
+        
org.apache.hadoop.hbase.shaded.protobuf.generated.AccessControlProtos.TablePermission
 parsedMessage = null

<TRUNCATED>

Reply via email to