// 
// Decompiled by Procyon v0.6.0
// 

package com.google.crypto.tink.proto;

import com.google.protobuf.AbstractMessageLite;
import com.google.protobuf.UnknownFieldSet;
import com.google.protobuf.SingleFieldBuilder;
import com.google.protobuf.UninitializedMessageException;
import com.google.protobuf.AbstractParser;
import com.google.protobuf.RuntimeVersion;
import com.google.protobuf.Message;
import com.google.protobuf.AbstractMessage;
import com.google.protobuf.CodedInputStream;
import java.io.InputStream;
import com.google.protobuf.ByteString;
import com.google.protobuf.ExtensionRegistryLite;
import com.google.protobuf.InvalidProtocolBufferException;
import java.nio.ByteBuffer;
import java.io.IOException;
import com.google.protobuf.MessageLite;
import com.google.protobuf.CodedOutputStream;
import com.google.protobuf.Descriptors;
import com.google.protobuf.Parser;
import com.google.protobuf.GeneratedMessage;

public final class EciesAeadHkdfParams extends GeneratedMessage implements EciesAeadHkdfParamsOrBuilder
{
    private static final long serialVersionUID = 0L;
    private int bitField0_;
    public static final int KEM_PARAMS_FIELD_NUMBER = 1;
    private EciesHkdfKemParams kemParams_;
    public static final int DEM_PARAMS_FIELD_NUMBER = 2;
    private EciesAeadDemParams demParams_;
    public static final int EC_POINT_FORMAT_FIELD_NUMBER = 3;
    private int ecPointFormat_;
    private byte memoizedIsInitialized;
    private static final EciesAeadHkdfParams DEFAULT_INSTANCE;
    private static final Parser<EciesAeadHkdfParams> PARSER;
    
    private EciesAeadHkdfParams(final GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.ecPointFormat_ = 0;
        this.memoizedIsInitialized = -1;
    }
    
    private EciesAeadHkdfParams() {
        this.ecPointFormat_ = 0;
        this.memoizedIsInitialized = -1;
        this.ecPointFormat_ = 0;
    }
    
    public static final Descriptors.Descriptor getDescriptor() {
        return EciesAeadHkdf.internal_static_google_crypto_tink_EciesAeadHkdfParams_descriptor;
    }
    
    @Override
    protected FieldAccessorTable internalGetFieldAccessorTable() {
        return EciesAeadHkdf.internal_static_google_crypto_tink_EciesAeadHkdfParams_fieldAccessorTable.ensureFieldAccessorsInitialized(EciesAeadHkdfParams.class, Builder.class);
    }
    
    @Override
    public boolean hasKemParams() {
        return (this.bitField0_ & 0x1) != 0x0;
    }
    
    @Override
    public EciesHkdfKemParams getKemParams() {
        return (this.kemParams_ == null) ? EciesHkdfKemParams.getDefaultInstance() : this.kemParams_;
    }
    
    @Override
    public EciesHkdfKemParamsOrBuilder getKemParamsOrBuilder() {
        return (this.kemParams_ == null) ? EciesHkdfKemParams.getDefaultInstance() : this.kemParams_;
    }
    
    @Override
    public boolean hasDemParams() {
        return (this.bitField0_ & 0x2) != 0x0;
    }
    
    @Override
    public EciesAeadDemParams getDemParams() {
        return (this.demParams_ == null) ? EciesAeadDemParams.getDefaultInstance() : this.demParams_;
    }
    
    @Override
    public EciesAeadDemParamsOrBuilder getDemParamsOrBuilder() {
        return (this.demParams_ == null) ? EciesAeadDemParams.getDefaultInstance() : this.demParams_;
    }
    
    @Override
    public int getEcPointFormatValue() {
        return this.ecPointFormat_;
    }
    
    @Override
    public EcPointFormat getEcPointFormat() {
        final EcPointFormat result = EcPointFormat.forNumber(this.ecPointFormat_);
        return (result == null) ? EcPointFormat.UNRECOGNIZED : result;
    }
    
    @Override
    public final boolean isInitialized() {
        final byte isInitialized = this.memoizedIsInitialized;
        if (isInitialized == 1) {
            return true;
        }
        if (isInitialized == 0) {
            return false;
        }
        this.memoizedIsInitialized = 1;
        return true;
    }
    
    @Override
    public void writeTo(final CodedOutputStream output) throws IOException {
        if ((this.bitField0_ & 0x1) != 0x0) {
            output.writeMessage(1, this.getKemParams());
        }
        if ((this.bitField0_ & 0x2) != 0x0) {
            output.writeMessage(2, this.getDemParams());
        }
        if (this.ecPointFormat_ != EcPointFormat.UNKNOWN_FORMAT.getNumber()) {
            output.writeEnum(3, this.ecPointFormat_);
        }
        this.getUnknownFields().writeTo(output);
    }
    
    @Override
    public int getSerializedSize() {
        int size = this.memoizedSize;
        if (size != -1) {
            return size;
        }
        size = 0;
        if ((this.bitField0_ & 0x1) != 0x0) {
            size += CodedOutputStream.computeMessageSize(1, this.getKemParams());
        }
        if ((this.bitField0_ & 0x2) != 0x0) {
            size += CodedOutputStream.computeMessageSize(2, this.getDemParams());
        }
        if (this.ecPointFormat_ != EcPointFormat.UNKNOWN_FORMAT.getNumber()) {
            size += CodedOutputStream.computeEnumSize(3, this.ecPointFormat_);
        }
        size += this.getUnknownFields().getSerializedSize();
        return this.memoizedSize = size;
    }
    
    @Override
    public boolean equals(final Object obj) {
        if (obj == this) {
            return true;
        }
        if (!(obj instanceof EciesAeadHkdfParams)) {
            return super.equals(obj);
        }
        final EciesAeadHkdfParams other = (EciesAeadHkdfParams)obj;
        return this.hasKemParams() == other.hasKemParams() && (!this.hasKemParams() || this.getKemParams().equals(other.getKemParams())) && this.hasDemParams() == other.hasDemParams() && (!this.hasDemParams() || this.getDemParams().equals(other.getDemParams())) && this.ecPointFormat_ == other.ecPointFormat_ && this.getUnknownFields().equals(other.getUnknownFields());
    }
    
    @Override
    public int hashCode() {
        if (this.memoizedHashCode != 0) {
            return this.memoizedHashCode;
        }
        int hash = 41;
        hash = 19 * hash + getDescriptor().hashCode();
        if (this.hasKemParams()) {
            hash = 37 * hash + 1;
            hash = 53 * hash + this.getKemParams().hashCode();
        }
        if (this.hasDemParams()) {
            hash = 37 * hash + 2;
            hash = 53 * hash + this.getDemParams().hashCode();
        }
        hash = 37 * hash + 3;
        hash = 53 * hash + this.ecPointFormat_;
        hash = 29 * hash + this.getUnknownFields().hashCode();
        return this.memoizedHashCode = hash;
    }
    
    public static EciesAeadHkdfParams parseFrom(final ByteBuffer data) throws InvalidProtocolBufferException {
        return EciesAeadHkdfParams.PARSER.parseFrom(data);
    }
    
    public static EciesAeadHkdfParams parseFrom(final ByteBuffer data, final ExtensionRegistryLite extensionRegistry) throws InvalidProtocolBufferException {
        return EciesAeadHkdfParams.PARSER.parseFrom(data, extensionRegistry);
    }
    
    public static EciesAeadHkdfParams parseFrom(final ByteString data) throws InvalidProtocolBufferException {
        return EciesAeadHkdfParams.PARSER.parseFrom(data);
    }
    
    public static EciesAeadHkdfParams parseFrom(final ByteString data, final ExtensionRegistryLite extensionRegistry) throws InvalidProtocolBufferException {
        return EciesAeadHkdfParams.PARSER.parseFrom(data, extensionRegistry);
    }
    
    public static EciesAeadHkdfParams parseFrom(final byte[] data) throws InvalidProtocolBufferException {
        return EciesAeadHkdfParams.PARSER.parseFrom(data);
    }
    
    public static EciesAeadHkdfParams parseFrom(final byte[] data, final ExtensionRegistryLite extensionRegistry) throws InvalidProtocolBufferException {
        return EciesAeadHkdfParams.PARSER.parseFrom(data, extensionRegistry);
    }
    
    public static EciesAeadHkdfParams parseFrom(final InputStream input) throws IOException {
        return GeneratedMessage.parseWithIOException(EciesAeadHkdfParams.PARSER, input);
    }
    
    public static EciesAeadHkdfParams parseFrom(final InputStream input, final ExtensionRegistryLite extensionRegistry) throws IOException {
        return GeneratedMessage.parseWithIOException(EciesAeadHkdfParams.PARSER, input, extensionRegistry);
    }
    
    public static EciesAeadHkdfParams parseDelimitedFrom(final InputStream input) throws IOException {
        return GeneratedMessage.parseDelimitedWithIOException(EciesAeadHkdfParams.PARSER, input);
    }
    
    public static EciesAeadHkdfParams parseDelimitedFrom(final InputStream input, final ExtensionRegistryLite extensionRegistry) throws IOException {
        return GeneratedMessage.parseDelimitedWithIOException(EciesAeadHkdfParams.PARSER, input, extensionRegistry);
    }
    
    public static EciesAeadHkdfParams parseFrom(final CodedInputStream input) throws IOException {
        return GeneratedMessage.parseWithIOException(EciesAeadHkdfParams.PARSER, input);
    }
    
    public static EciesAeadHkdfParams parseFrom(final CodedInputStream input, final ExtensionRegistryLite extensionRegistry) throws IOException {
        return GeneratedMessage.parseWithIOException(EciesAeadHkdfParams.PARSER, input, extensionRegistry);
    }
    
    @Override
    public Builder newBuilderForType() {
        return newBuilder();
    }
    
    public static Builder newBuilder() {
        return EciesAeadHkdfParams.DEFAULT_INSTANCE.toBuilder();
    }
    
    public static Builder newBuilder(final EciesAeadHkdfParams prototype) {
        return EciesAeadHkdfParams.DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    
    @Override
    public Builder toBuilder() {
        return (this == EciesAeadHkdfParams.DEFAULT_INSTANCE) ? new Builder() : new Builder().mergeFrom(this);
    }
    
    @Override
    protected Builder newBuilderForType(final BuilderParent parent) {
        final Builder builder = new Builder(parent);
        return builder;
    }
    
    public static EciesAeadHkdfParams getDefaultInstance() {
        return EciesAeadHkdfParams.DEFAULT_INSTANCE;
    }
    
    public static Parser<EciesAeadHkdfParams> parser() {
        return EciesAeadHkdfParams.PARSER;
    }
    
    @Override
    public Parser<EciesAeadHkdfParams> getParserForType() {
        return EciesAeadHkdfParams.PARSER;
    }
    
    @Override
    public EciesAeadHkdfParams getDefaultInstanceForType() {
        return EciesAeadHkdfParams.DEFAULT_INSTANCE;
    }
    
    static {
        RuntimeVersion.validateProtobufGencodeVersion(RuntimeVersion.RuntimeDomain.PUBLIC, 4, 32, 1, "", EciesAeadHkdfParams.class.getName());
        DEFAULT_INSTANCE = new EciesAeadHkdfParams();
        PARSER = new AbstractParser<EciesAeadHkdfParams>() {
            @Override
            public EciesAeadHkdfParams parsePartialFrom(final CodedInputStream input, final ExtensionRegistryLite extensionRegistry) throws InvalidProtocolBufferException {
                final Builder builder = EciesAeadHkdfParams.newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                }
                catch (final InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                }
                catch (final UninitializedMessageException e2) {
                    throw e2.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                }
                catch (final IOException e3) {
                    throw new InvalidProtocolBufferException(e3).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };
    }
    
    public static final class Builder extends GeneratedMessage.Builder<Builder> implements EciesAeadHkdfParamsOrBuilder
    {
        private int bitField0_;
        private EciesHkdfKemParams kemParams_;
        private SingleFieldBuilder<EciesHkdfKemParams, EciesHkdfKemParams.Builder, EciesHkdfKemParamsOrBuilder> kemParamsBuilder_;
        private EciesAeadDemParams demParams_;
        private SingleFieldBuilder<EciesAeadDemParams, EciesAeadDemParams.Builder, EciesAeadDemParamsOrBuilder> demParamsBuilder_;
        private int ecPointFormat_;
        
        public static final Descriptors.Descriptor getDescriptor() {
            return EciesAeadHkdf.internal_static_google_crypto_tink_EciesAeadHkdfParams_descriptor;
        }
        
        @Override
        protected FieldAccessorTable internalGetFieldAccessorTable() {
            return EciesAeadHkdf.internal_static_google_crypto_tink_EciesAeadHkdfParams_fieldAccessorTable.ensureFieldAccessorsInitialized(EciesAeadHkdfParams.class, Builder.class);
        }
        
        private Builder() {
            this.ecPointFormat_ = 0;
            this.maybeForceBuilderInitialization();
        }
        
        private Builder(final BuilderParent parent) {
            super(parent);
            this.ecPointFormat_ = 0;
            this.maybeForceBuilderInitialization();
        }
        
        private void maybeForceBuilderInitialization() {
            if (EciesAeadHkdfParams.alwaysUseFieldBuilders) {
                this.internalGetKemParamsFieldBuilder();
                this.internalGetDemParamsFieldBuilder();
            }
        }
        
        @Override
        public Builder clear() {
            super.clear();
            this.bitField0_ = 0;
            this.kemParams_ = null;
            if (this.kemParamsBuilder_ != null) {
                this.kemParamsBuilder_.dispose();
                this.kemParamsBuilder_ = null;
            }
            this.demParams_ = null;
            if (this.demParamsBuilder_ != null) {
                this.demParamsBuilder_.dispose();
                this.demParamsBuilder_ = null;
            }
            this.ecPointFormat_ = 0;
            return this;
        }
        
        @Override
        public Descriptors.Descriptor getDescriptorForType() {
            return EciesAeadHkdf.internal_static_google_crypto_tink_EciesAeadHkdfParams_descriptor;
        }
        
        @Override
        public EciesAeadHkdfParams getDefaultInstanceForType() {
            return EciesAeadHkdfParams.getDefaultInstance();
        }
        
        @Override
        public EciesAeadHkdfParams build() {
            final EciesAeadHkdfParams result = this.buildPartial();
            if (!result.isInitialized()) {
                throw AbstractMessage.Builder.newUninitializedMessageException(result);
            }
            return result;
        }
        
        @Override
        public EciesAeadHkdfParams buildPartial() {
            final EciesAeadHkdfParams result = new EciesAeadHkdfParams(this, null);
            if (this.bitField0_ != 0) {
                this.buildPartial0(result);
            }
            this.onBuilt();
            return result;
        }
        
        private void buildPartial0(final EciesAeadHkdfParams result) {
            final int from_bitField0_ = this.bitField0_;
            int to_bitField0_ = 0;
            if ((from_bitField0_ & 0x1) != 0x0) {
                result.kemParams_ = ((this.kemParamsBuilder_ == null) ? this.kemParams_ : this.kemParamsBuilder_.build());
                to_bitField0_ |= 0x1;
            }
            if ((from_bitField0_ & 0x2) != 0x0) {
                result.demParams_ = ((this.demParamsBuilder_ == null) ? this.demParams_ : this.demParamsBuilder_.build());
                to_bitField0_ |= 0x2;
            }
            if ((from_bitField0_ & 0x4) != 0x0) {
                result.ecPointFormat_ = this.ecPointFormat_;
            }
            result.bitField0_ |= to_bitField0_;
        }
        
        @Override
        public Builder mergeFrom(final Message other) {
            if (other instanceof EciesAeadHkdfParams) {
                return this.mergeFrom((EciesAeadHkdfParams)other);
            }
            super.mergeFrom(other);
            return this;
        }
        
        public Builder mergeFrom(final EciesAeadHkdfParams other) {
            if (other == EciesAeadHkdfParams.getDefaultInstance()) {
                return this;
            }
            if (other.hasKemParams()) {
                this.mergeKemParams(other.getKemParams());
            }
            if (other.hasDemParams()) {
                this.mergeDemParams(other.getDemParams());
            }
            if (other.ecPointFormat_ != 0) {
                this.setEcPointFormatValue(other.getEcPointFormatValue());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            this.onChanged();
            return this;
        }
        
        @Override
        public final boolean isInitialized() {
            return true;
        }
        
        @Override
        public Builder mergeFrom(final CodedInputStream input, final ExtensionRegistryLite extensionRegistry) throws IOException {
            if (extensionRegistry == null) {
                throw new NullPointerException();
            }
            try {
                boolean done = false;
                while (!done) {
                    final int tag = input.readTag();
                    switch (tag) {
                        case 0: {
                            done = true;
                            continue;
                        }
                        case 10: {
                            input.readMessage(this.internalGetKemParamsFieldBuilder().getBuilder(), extensionRegistry);
                            this.bitField0_ |= 0x1;
                            continue;
                        }
                        case 18: {
                            input.readMessage(this.internalGetDemParamsFieldBuilder().getBuilder(), extensionRegistry);
                            this.bitField0_ |= 0x2;
                            continue;
                        }
                        case 24: {
                            this.ecPointFormat_ = input.readEnum();
                            this.bitField0_ |= 0x4;
                            continue;
                        }
                        default: {
                            if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                done = true;
                                continue;
                            }
                            continue;
                        }
                    }
                }
            }
            catch (final InvalidProtocolBufferException e) {
                throw e.unwrapIOException();
            }
            finally {
                this.onChanged();
            }
            return this;
        }
        
        @Override
        public boolean hasKemParams() {
            return (this.bitField0_ & 0x1) != 0x0;
        }
        
        @Override
        public EciesHkdfKemParams getKemParams() {
            if (this.kemParamsBuilder_ == null) {
                return (this.kemParams_ == null) ? EciesHkdfKemParams.getDefaultInstance() : this.kemParams_;
            }
            return this.kemParamsBuilder_.getMessage();
        }
        
        public Builder setKemParams(final EciesHkdfKemParams value) {
            if (this.kemParamsBuilder_ == null) {
                if (value == null) {
                    throw new NullPointerException();
                }
                this.kemParams_ = value;
            }
            else {
                this.kemParamsBuilder_.setMessage(value);
            }
            this.bitField0_ |= 0x1;
            this.onChanged();
            return this;
        }
        
        public Builder setKemParams(final EciesHkdfKemParams.Builder builderForValue) {
            if (this.kemParamsBuilder_ == null) {
                this.kemParams_ = builderForValue.build();
            }
            else {
                this.kemParamsBuilder_.setMessage(builderForValue.build());
            }
            this.bitField0_ |= 0x1;
            this.onChanged();
            return this;
        }
        
        public Builder mergeKemParams(final EciesHkdfKemParams value) {
            if (this.kemParamsBuilder_ == null) {
                if ((this.bitField0_ & 0x1) != 0x0 && this.kemParams_ != null && this.kemParams_ != EciesHkdfKemParams.getDefaultInstance()) {
                    this.getKemParamsBuilder().mergeFrom(value);
                }
                else {
                    this.kemParams_ = value;
                }
            }
            else {
                this.kemParamsBuilder_.mergeFrom(value);
            }
            if (this.kemParams_ != null) {
                this.bitField0_ |= 0x1;
                this.onChanged();
            }
            return this;
        }
        
        public Builder clearKemParams() {
            this.bitField0_ &= 0xFFFFFFFE;
            this.kemParams_ = null;
            if (this.kemParamsBuilder_ != null) {
                this.kemParamsBuilder_.dispose();
                this.kemParamsBuilder_ = null;
            }
            this.onChanged();
            return this;
        }
        
        public EciesHkdfKemParams.Builder getKemParamsBuilder() {
            this.bitField0_ |= 0x1;
            this.onChanged();
            return this.internalGetKemParamsFieldBuilder().getBuilder();
        }
        
        @Override
        public EciesHkdfKemParamsOrBuilder getKemParamsOrBuilder() {
            if (this.kemParamsBuilder_ != null) {
                return this.kemParamsBuilder_.getMessageOrBuilder();
            }
            return (this.kemParams_ == null) ? EciesHkdfKemParams.getDefaultInstance() : this.kemParams_;
        }
        
        private SingleFieldBuilder<EciesHkdfKemParams, EciesHkdfKemParams.Builder, EciesHkdfKemParamsOrBuilder> internalGetKemParamsFieldBuilder() {
            if (this.kemParamsBuilder_ == null) {
                this.kemParamsBuilder_ = new SingleFieldBuilder<EciesHkdfKemParams, EciesHkdfKemParams.Builder, EciesHkdfKemParamsOrBuilder>(this.getKemParams(), this.getParentForChildren(), this.isClean());
                this.kemParams_ = null;
            }
            return this.kemParamsBuilder_;
        }
        
        @Override
        public boolean hasDemParams() {
            return (this.bitField0_ & 0x2) != 0x0;
        }
        
        @Override
        public EciesAeadDemParams getDemParams() {
            if (this.demParamsBuilder_ == null) {
                return (this.demParams_ == null) ? EciesAeadDemParams.getDefaultInstance() : this.demParams_;
            }
            return this.demParamsBuilder_.getMessage();
        }
        
        public Builder setDemParams(final EciesAeadDemParams value) {
            if (this.demParamsBuilder_ == null) {
                if (value == null) {
                    throw new NullPointerException();
                }
                this.demParams_ = value;
            }
            else {
                this.demParamsBuilder_.setMessage(value);
            }
            this.bitField0_ |= 0x2;
            this.onChanged();
            return this;
        }
        
        public Builder setDemParams(final EciesAeadDemParams.Builder builderForValue) {
            if (this.demParamsBuilder_ == null) {
                this.demParams_ = builderForValue.build();
            }
            else {
                this.demParamsBuilder_.setMessage(builderForValue.build());
            }
            this.bitField0_ |= 0x2;
            this.onChanged();
            return this;
        }
        
        public Builder mergeDemParams(final EciesAeadDemParams value) {
            if (this.demParamsBuilder_ == null) {
                if ((this.bitField0_ & 0x2) != 0x0 && this.demParams_ != null && this.demParams_ != EciesAeadDemParams.getDefaultInstance()) {
                    this.getDemParamsBuilder().mergeFrom(value);
                }
                else {
                    this.demParams_ = value;
                }
            }
            else {
                this.demParamsBuilder_.mergeFrom(value);
            }
            if (this.demParams_ != null) {
                this.bitField0_ |= 0x2;
                this.onChanged();
            }
            return this;
        }
        
        public Builder clearDemParams() {
            this.bitField0_ &= 0xFFFFFFFD;
            this.demParams_ = null;
            if (this.demParamsBuilder_ != null) {
                this.demParamsBuilder_.dispose();
                this.demParamsBuilder_ = null;
            }
            this.onChanged();
            return this;
        }
        
        public EciesAeadDemParams.Builder getDemParamsBuilder() {
            this.bitField0_ |= 0x2;
            this.onChanged();
            return this.internalGetDemParamsFieldBuilder().getBuilder();
        }
        
        @Override
        public EciesAeadDemParamsOrBuilder getDemParamsOrBuilder() {
            if (this.demParamsBuilder_ != null) {
                return this.demParamsBuilder_.getMessageOrBuilder();
            }
            return (this.demParams_ == null) ? EciesAeadDemParams.getDefaultInstance() : this.demParams_;
        }
        
        private SingleFieldBuilder<EciesAeadDemParams, EciesAeadDemParams.Builder, EciesAeadDemParamsOrBuilder> internalGetDemParamsFieldBuilder() {
            if (this.demParamsBuilder_ == null) {
                this.demParamsBuilder_ = new SingleFieldBuilder<EciesAeadDemParams, EciesAeadDemParams.Builder, EciesAeadDemParamsOrBuilder>(this.getDemParams(), this.getParentForChildren(), this.isClean());
                this.demParams_ = null;
            }
            return this.demParamsBuilder_;
        }
        
        @Override
        public int getEcPointFormatValue() {
            return this.ecPointFormat_;
        }
        
        public Builder setEcPointFormatValue(final int value) {
            this.ecPointFormat_ = value;
            this.bitField0_ |= 0x4;
            this.onChanged();
            return this;
        }
        
        @Override
        public EcPointFormat getEcPointFormat() {
            final EcPointFormat result = EcPointFormat.forNumber(this.ecPointFormat_);
            return (result == null) ? EcPointFormat.UNRECOGNIZED : result;
        }
        
        public Builder setEcPointFormat(final EcPointFormat value) {
            if (value == null) {
                throw new NullPointerException();
            }
            this.bitField0_ |= 0x4;
            this.ecPointFormat_ = value.getNumber();
            this.onChanged();
            return this;
        }
        
        public Builder clearEcPointFormat() {
            this.bitField0_ &= 0xFFFFFFFB;
            this.ecPointFormat_ = 0;
            this.onChanged();
            return this;
        }
    }
}
