/*
 * MIT License
 *
 * Copyright (c) 2023 OrdinaryRoad
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: GiftStruct.proto

package tech.ordinaryroad.live.chat.client.douyin.protobuf.dto;

public final class GiftStructOuterClass {
  private GiftStructOuterClass() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface GiftStructOrBuilder extends
      // @@protoc_insertion_point(interface_extends:GiftStruct)
      com.google.protobuf.MessageOrBuilder {

    /**
     * <code>.Image image = 1;</code>
     * @return Whether the image field is set.
     */
    boolean hasImage();
    /**
     * <code>.Image image = 1;</code>
     * @return The image.
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage();
    /**
     * <code>.Image image = 1;</code>
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder();

    /**
     * <code>string describe = 2;</code>
     * @return The describe.
     */
    java.lang.String getDescribe();
    /**
     * <code>string describe = 2;</code>
     * @return The bytes for describe.
     */
    com.google.protobuf.ByteString
        getDescribeBytes();

    /**
     * <code>bool notify = 3;</code>
     * @return The notify.
     */
    boolean getNotify();

    /**
     * <code>uint64 duration = 4;</code>
     * @return The duration.
     */
    long getDuration();

    /**
     * <code>uint64 id = 5;</code>
     * @return The id.
     */
    long getId();

    /**
     * <pre>
     * GiftStructFansClubInfo fansclubInfo = 6;
     * </pre>
     *
     * <code>bool for_linkmic = 7;</code>
     * @return The forLinkmic.
     */
    boolean getForLinkmic();

    /**
     * <code>bool doodle = 8;</code>
     * @return The doodle.
     */
    boolean getDoodle();

    /**
     * <code>bool for_fansclub = 9;</code>
     * @return The forFansclub.
     */
    boolean getForFansclub();

    /**
     * <code>bool combo = 10;</code>
     * @return The combo.
     */
    boolean getCombo();

    /**
     * <code>uint32 type = 11;</code>
     * @return The type.
     */
    int getType();

    /**
     * <code>uint32 diamond_count = 12;</code>
     * @return The diamondCount.
     */
    int getDiamondCount();

    /**
     * <code>bool is_displayed_on_panel = 13;</code>
     * @return The isDisplayedOnPanel.
     */
    boolean getIsDisplayedOnPanel();

    /**
     * <code>uint64 primary_effect_id = 14;</code>
     * @return The primaryEffectId.
     */
    long getPrimaryEffectId();

    /**
     * <code>.Image gift_label_icon = 15;</code>
     * @return Whether the giftLabelIcon field is set.
     */
    boolean hasGiftLabelIcon();
    /**
     * <code>.Image gift_label_icon = 15;</code>
     * @return The giftLabelIcon.
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftLabelIcon();
    /**
     * <code>.Image gift_label_icon = 15;</code>
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftLabelIconOrBuilder();

    /**
     * <code>string name = 16;</code>
     * @return The name.
     */
    java.lang.String getName();
    /**
     * <code>string name = 16;</code>
     * @return The bytes for name.
     */
    com.google.protobuf.ByteString
        getNameBytes();

    /**
     * <code>string region = 17;</code>
     * @return The region.
     */
    java.lang.String getRegion();
    /**
     * <code>string region = 17;</code>
     * @return The bytes for region.
     */
    com.google.protobuf.ByteString
        getRegionBytes();

    /**
     * <code>string manual = 18;</code>
     * @return The manual.
     */
    java.lang.String getManual();
    /**
     * <code>string manual = 18;</code>
     * @return The bytes for manual.
     */
    com.google.protobuf.ByteString
        getManualBytes();

    /**
     * <code>bool for_custom = 19;</code>
     * @return The forCustom.
     */
    boolean getForCustom();

    /**
     * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
     */
    int getSpecialEffectsMapCount();
    /**
     * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
     */
    boolean containsSpecialEffectsMap(
        java.lang.String key);
    /**
     * Use {@link #getSpecialEffectsMapMap()} instead.
     */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.Long>
    getSpecialEffectsMap();
    /**
     * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
     */
    java.util.Map<java.lang.String, java.lang.Long>
    getSpecialEffectsMapMap();
    /**
     * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
     */
    long getSpecialEffectsMapOrDefault(
        java.lang.String key,
        long defaultValue);
    /**
     * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
     */
    long getSpecialEffectsMapOrThrow(
        java.lang.String key);

    /**
     * <code>.Image icon = 21;</code>
     * @return Whether the icon field is set.
     */
    boolean hasIcon();
    /**
     * <code>.Image icon = 21;</code>
     * @return The icon.
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon();
    /**
     * <code>.Image icon = 21;</code>
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder();

    /**
     * <code>uint32 action_type = 22;</code>
     * @return The actionType.
     */
    int getActionType();

    /**
     * <code>int32 watermelonSeeds = 23;</code>
     * @return The watermelonSeeds.
     */
    int getWatermelonSeeds();

    /**
     * <code>string goldEffect = 24;</code>
     * @return The goldEffect.
     */
    java.lang.String getGoldEffect();
    /**
     * <code>string goldEffect = 24;</code>
     * @return The bytes for goldEffect.
     */
    com.google.protobuf.ByteString
        getGoldEffectBytes();

    /**
     * <pre>
     * repeated LuckyMoneyGiftMeta subs = 25;
     * </pre>
     *
     * <code>int64 goldenBeans = 26;</code>
     * @return The goldenBeans.
     */
    long getGoldenBeans();

    /**
     * <code>int64 honorLevel = 27;</code>
     * @return The honorLevel.
     */
    long getHonorLevel();

    /**
     * <code>int32 itemType = 28;</code>
     * @return The itemType.
     */
    int getItemType();

    /**
     * <code>string schemeUrl = 29;</code>
     * @return The schemeUrl.
     */
    java.lang.String getSchemeUrl();
    /**
     * <code>string schemeUrl = 29;</code>
     * @return The bytes for schemeUrl.
     */
    com.google.protobuf.ByteString
        getSchemeUrlBytes();

    /**
     * <pre>
     * GiftPanelOperation giftOperation = 30;
     * </pre>
     *
     * <code>string eventName = 31;</code>
     * @return The eventName.
     */
    java.lang.String getEventName();
    /**
     * <pre>
     * GiftPanelOperation giftOperation = 30;
     * </pre>
     *
     * <code>string eventName = 31;</code>
     * @return The bytes for eventName.
     */
    com.google.protobuf.ByteString
        getEventNameBytes();

    /**
     * <code>int64 nobleLevel = 32;</code>
     * @return The nobleLevel.
     */
    long getNobleLevel();

    /**
     * <code>string guideUrl = 33;</code>
     * @return The guideUrl.
     */
    java.lang.String getGuideUrl();
    /**
     * <code>string guideUrl = 33;</code>
     * @return The bytes for guideUrl.
     */
    com.google.protobuf.ByteString
        getGuideUrlBytes();

    /**
     * <code>bool punishMedicine = 34;</code>
     * @return The punishMedicine.
     */
    boolean getPunishMedicine();

    /**
     * <code>bool forPortal = 35;</code>
     * @return The forPortal.
     */
    boolean getForPortal();

    /**
     * <code>string businessText = 36;</code>
     * @return The businessText.
     */
    java.lang.String getBusinessText();
    /**
     * <code>string businessText = 36;</code>
     * @return The bytes for businessText.
     */
    com.google.protobuf.ByteString
        getBusinessTextBytes();

    /**
     * <code>bool cnyGift = 37;</code>
     * @return The cnyGift.
     */
    boolean getCnyGift();

    /**
     * <code>int64 appId = 38;</code>
     * @return The appId.
     */
    long getAppId();

    /**
     * <code>int64 vipLevel = 39;</code>
     * @return The vipLevel.
     */
    long getVipLevel();

    /**
     * <code>bool isGray = 40;</code>
     * @return The isGray.
     */
    boolean getIsGray();

    /**
     * <code>string graySchemeUrl = 41;</code>
     * @return The graySchemeUrl.
     */
    java.lang.String getGraySchemeUrl();
    /**
     * <code>string graySchemeUrl = 41;</code>
     * @return The bytes for graySchemeUrl.
     */
    com.google.protobuf.ByteString
        getGraySchemeUrlBytes();

    /**
     * <code>int64 giftScene = 42;</code>
     * @return The giftScene.
     */
    long getGiftScene();

    /**
     * <pre>
     * GiftBanner giftBanner = 43;
     * </pre>
     *
     * <code>repeated string triggerWords = 44;</code>
     * @return A list containing the triggerWords.
     */
    java.util.List<java.lang.String>
        getTriggerWordsList();
    /**
     * <pre>
     * GiftBanner giftBanner = 43;
     * </pre>
     *
     * <code>repeated string triggerWords = 44;</code>
     * @return The count of triggerWords.
     */
    int getTriggerWordsCount();
    /**
     * <pre>
     * GiftBanner giftBanner = 43;
     * </pre>
     *
     * <code>repeated string triggerWords = 44;</code>
     * @param index The index of the element to return.
     * @return The triggerWords at the given index.
     */
    java.lang.String getTriggerWords(int index);
    /**
     * <pre>
     * GiftBanner giftBanner = 43;
     * </pre>
     *
     * <code>repeated string triggerWords = 44;</code>
     * @param index The index of the value to return.
     * @return The bytes of the triggerWords at the given index.
     */
    com.google.protobuf.ByteString
        getTriggerWordsBytes(int index);

    /**
     * <pre>
     * repeated GiftBuffInfo giftBuffInfos = 45;
     * </pre>
     *
     * <code>bool forFirstRecharge = 46;</code>
     * @return The forFirstRecharge.
     */
    boolean getForFirstRecharge();

    /**
     * <code>.Image dynamicImgForSelected = 47;</code>
     * @return Whether the dynamicImgForSelected field is set.
     */
    boolean hasDynamicImgForSelected();
    /**
     * <code>.Image dynamicImgForSelected = 47;</code>
     * @return The dynamicImgForSelected.
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDynamicImgForSelected();
    /**
     * <code>.Image dynamicImgForSelected = 47;</code>
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDynamicImgForSelectedOrBuilder();

    /**
     * <code>int32 afterSendAction = 48;</code>
     * @return The afterSendAction.
     */
    int getAfterSendAction();

    /**
     * <code>int64 giftOfflineTime = 49;</code>
     * @return The giftOfflineTime.
     */
    long getGiftOfflineTime();

    /**
     * <code>string topBarText = 50;</code>
     * @return The topBarText.
     */
    java.lang.String getTopBarText();
    /**
     * <code>string topBarText = 50;</code>
     * @return The bytes for topBarText.
     */
    com.google.protobuf.ByteString
        getTopBarTextBytes();

    /**
     * <code>.Image topRightAvatar = 51;</code>
     * @return Whether the topRightAvatar field is set.
     */
    boolean hasTopRightAvatar();
    /**
     * <code>.Image topRightAvatar = 51;</code>
     * @return The topRightAvatar.
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getTopRightAvatar();
    /**
     * <code>.Image topRightAvatar = 51;</code>
     */
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getTopRightAvatarOrBuilder();

    /**
     * <code>string bannerSchemeUrl = 52;</code>
     * @return The bannerSchemeUrl.
     */
    java.lang.String getBannerSchemeUrl();
    /**
     * <code>string bannerSchemeUrl = 52;</code>
     * @return The bytes for bannerSchemeUrl.
     */
    com.google.protobuf.ByteString
        getBannerSchemeUrlBytes();

    /**
     * <code>bool isLocked = 53;</code>
     * @return The isLocked.
     */
    boolean getIsLocked();

    /**
     * <code>int64 reqExtraType = 54;</code>
     * @return The reqExtraType.
     */
    long getReqExtraType();

    /**
     * <code>repeated int64 assetIds = 55;</code>
     * @return A list containing the assetIds.
     */
    java.util.List<java.lang.Long> getAssetIdsList();
    /**
     * <code>repeated int64 assetIds = 55;</code>
     * @return The count of assetIds.
     */
    int getAssetIdsCount();
    /**
     * <code>repeated int64 assetIds = 55;</code>
     * @param index The index of the element to return.
     * @return The assetIds at the given index.
     */
    long getAssetIds(int index);

    /**
     * <pre>
     * GiftPreviewInfo giftPreviewInfo = 56;
     * GiftTip giftTip = 57;
     * </pre>
     *
     * <code>int32 needSweepLightCount = 58;</code>
     * @return The needSweepLightCount.
     */
    int getNeedSweepLightCount();
  }
  /**
   * Protobuf type {@code GiftStruct}
   */
  public static final class GiftStruct extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:GiftStruct)
      GiftStructOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use GiftStruct.newBuilder() to construct.
    private GiftStruct(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }
    private GiftStruct() {
      describe_ = "";
      name_ = "";
      region_ = "";
      manual_ = "";
      goldEffect_ = "";
      schemeUrl_ = "";
      eventName_ = "";
      guideUrl_ = "";
      businessText_ = "";
      graySchemeUrl_ = "";
      triggerWords_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      topBarText_ = "";
      bannerSchemeUrl_ = "";
      assetIds_ = emptyLongList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new GiftStruct();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(
        int number) {
      switch (number) {
        case 20:
          return internalGetSpecialEffectsMap();
        default:
          throw new RuntimeException(
              "Invalid map field number: " + number);
      }
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder.class);
    }

    public static final int IMAGE_FIELD_NUMBER = 1;
    private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_;
    /**
     * <code>.Image image = 1;</code>
     * @return Whether the image field is set.
     */
    @java.lang.Override
    public boolean hasImage() {
      return image_ != null;
    }
    /**
     * <code>.Image image = 1;</code>
     * @return The image.
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() {
      return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_;
    }
    /**
     * <code>.Image image = 1;</code>
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() {
      return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_;
    }

    public static final int DESCRIBE_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object describe_ = "";
    /**
     * <code>string describe = 2;</code>
     * @return The describe.
     */
    @java.lang.Override
    public java.lang.String getDescribe() {
      java.lang.Object ref = describe_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        describe_ = s;
        return s;
      }
    }
    /**
     * <code>string describe = 2;</code>
     * @return The bytes for describe.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getDescribeBytes() {
      java.lang.Object ref = describe_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        describe_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NOTIFY_FIELD_NUMBER = 3;
    private boolean notify_ = false;
    /**
     * <code>bool notify = 3;</code>
     * @return The notify.
     */
    @java.lang.Override
    public boolean getNotify() {
      return notify_;
    }

    public static final int DURATION_FIELD_NUMBER = 4;
    private long duration_ = 0L;
    /**
     * <code>uint64 duration = 4;</code>
     * @return The duration.
     */
    @java.lang.Override
    public long getDuration() {
      return duration_;
    }

    public static final int ID_FIELD_NUMBER = 5;
    private long id_ = 0L;
    /**
     * <code>uint64 id = 5;</code>
     * @return The id.
     */
    @java.lang.Override
    public long getId() {
      return id_;
    }

    public static final int FOR_LINKMIC_FIELD_NUMBER = 7;
    private boolean forLinkmic_ = false;
    /**
     * <pre>
     * GiftStructFansClubInfo fansclubInfo = 6;
     * </pre>
     *
     * <code>bool for_linkmic = 7;</code>
     * @return The forLinkmic.
     */
    @java.lang.Override
    public boolean getForLinkmic() {
      return forLinkmic_;
    }

    public static final int DOODLE_FIELD_NUMBER = 8;
    private boolean doodle_ = false;
    /**
     * <code>bool doodle = 8;</code>
     * @return The doodle.
     */
    @java.lang.Override
    public boolean getDoodle() {
      return doodle_;
    }

    public static final int FOR_FANSCLUB_FIELD_NUMBER = 9;
    private boolean forFansclub_ = false;
    /**
     * <code>bool for_fansclub = 9;</code>
     * @return The forFansclub.
     */
    @java.lang.Override
    public boolean getForFansclub() {
      return forFansclub_;
    }

    public static final int COMBO_FIELD_NUMBER = 10;
    private boolean combo_ = false;
    /**
     * <code>bool combo = 10;</code>
     * @return The combo.
     */
    @java.lang.Override
    public boolean getCombo() {
      return combo_;
    }

    public static final int TYPE_FIELD_NUMBER = 11;
    private int type_ = 0;
    /**
     * <code>uint32 type = 11;</code>
     * @return The type.
     */
    @java.lang.Override
    public int getType() {
      return type_;
    }

    public static final int DIAMOND_COUNT_FIELD_NUMBER = 12;
    private int diamondCount_ = 0;
    /**
     * <code>uint32 diamond_count = 12;</code>
     * @return The diamondCount.
     */
    @java.lang.Override
    public int getDiamondCount() {
      return diamondCount_;
    }

    public static final int IS_DISPLAYED_ON_PANEL_FIELD_NUMBER = 13;
    private boolean isDisplayedOnPanel_ = false;
    /**
     * <code>bool is_displayed_on_panel = 13;</code>
     * @return The isDisplayedOnPanel.
     */
    @java.lang.Override
    public boolean getIsDisplayedOnPanel() {
      return isDisplayedOnPanel_;
    }

    public static final int PRIMARY_EFFECT_ID_FIELD_NUMBER = 14;
    private long primaryEffectId_ = 0L;
    /**
     * <code>uint64 primary_effect_id = 14;</code>
     * @return The primaryEffectId.
     */
    @java.lang.Override
    public long getPrimaryEffectId() {
      return primaryEffectId_;
    }

    public static final int GIFT_LABEL_ICON_FIELD_NUMBER = 15;
    private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftLabelIcon_;
    /**
     * <code>.Image gift_label_icon = 15;</code>
     * @return Whether the giftLabelIcon field is set.
     */
    @java.lang.Override
    public boolean hasGiftLabelIcon() {
      return giftLabelIcon_ != null;
    }
    /**
     * <code>.Image gift_label_icon = 15;</code>
     * @return The giftLabelIcon.
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftLabelIcon() {
      return giftLabelIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_;
    }
    /**
     * <code>.Image gift_label_icon = 15;</code>
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftLabelIconOrBuilder() {
      return giftLabelIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_;
    }

    public static final int NAME_FIELD_NUMBER = 16;
    @SuppressWarnings("serial")
    private volatile java.lang.Object name_ = "";
    /**
     * <code>string name = 16;</code>
     * @return The name.
     */
    @java.lang.Override
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        name_ = s;
        return s;
      }
    }
    /**
     * <code>string name = 16;</code>
     * @return The bytes for name.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REGION_FIELD_NUMBER = 17;
    @SuppressWarnings("serial")
    private volatile java.lang.Object region_ = "";
    /**
     * <code>string region = 17;</code>
     * @return The region.
     */
    @java.lang.Override
    public java.lang.String getRegion() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        region_ = s;
        return s;
      }
    }
    /**
     * <code>string region = 17;</code>
     * @return The bytes for region.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getRegionBytes() {
      java.lang.Object ref = region_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        region_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MANUAL_FIELD_NUMBER = 18;
    @SuppressWarnings("serial")
    private volatile java.lang.Object manual_ = "";
    /**
     * <code>string manual = 18;</code>
     * @return The manual.
     */
    @java.lang.Override
    public java.lang.String getManual() {
      java.lang.Object ref = manual_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        manual_ = s;
        return s;
      }
    }
    /**
     * <code>string manual = 18;</code>
     * @return The bytes for manual.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getManualBytes() {
      java.lang.Object ref = manual_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        manual_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FOR_CUSTOM_FIELD_NUMBER = 19;
    private boolean forCustom_ = false;
    /**
     * <code>bool for_custom = 19;</code>
     * @return The forCustom.
     */
    @java.lang.Override
    public boolean getForCustom() {
      return forCustom_;
    }

    public static final int SPECIALEFFECTSMAP_FIELD_NUMBER = 20;
    private static final class SpecialEffectsMapDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
          java.lang.String, java.lang.Long> defaultEntry =
              com.google.protobuf.MapEntry
              .<java.lang.String, java.lang.Long>newDefaultInstance(
                  tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor, 
                  com.google.protobuf.WireFormat.FieldType.STRING,
                  "",
                  com.google.protobuf.WireFormat.FieldType.INT64,
                  0L);
    }
    @SuppressWarnings("serial")
    private com.google.protobuf.MapField<
        java.lang.String, java.lang.Long> specialEffectsMap_;
    private com.google.protobuf.MapField<java.lang.String, java.lang.Long>
    internalGetSpecialEffectsMap() {
      if (specialEffectsMap_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            SpecialEffectsMapDefaultEntryHolder.defaultEntry);
      }
      return specialEffectsMap_;
    }
    public int getSpecialEffectsMapCount() {
      return internalGetSpecialEffectsMap().getMap().size();
    }
    /**
     * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
     */
    @java.lang.Override
    public boolean containsSpecialEffectsMap(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      return internalGetSpecialEffectsMap().getMap().containsKey(key);
    }
    /**
     * Use {@link #getSpecialEffectsMapMap()} instead.
     */
    @java.lang.Override
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.Long> getSpecialEffectsMap() {
      return getSpecialEffectsMapMap();
    }
    /**
     * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
     */
    @java.lang.Override
    public java.util.Map<java.lang.String, java.lang.Long> getSpecialEffectsMapMap() {
      return internalGetSpecialEffectsMap().getMap();
    }
    /**
     * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
     */
    @java.lang.Override
    public long getSpecialEffectsMapOrDefault(
        java.lang.String key,
        long defaultValue) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.Long> map =
          internalGetSpecialEffectsMap().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
     */
    @java.lang.Override
    public long getSpecialEffectsMapOrThrow(
        java.lang.String key) {
      if (key == null) { throw new NullPointerException("map key"); }
      java.util.Map<java.lang.String, java.lang.Long> map =
          internalGetSpecialEffectsMap().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int ICON_FIELD_NUMBER = 21;
    private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_;
    /**
     * <code>.Image icon = 21;</code>
     * @return Whether the icon field is set.
     */
    @java.lang.Override
    public boolean hasIcon() {
      return icon_ != null;
    }
    /**
     * <code>.Image icon = 21;</code>
     * @return The icon.
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() {
      return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_;
    }
    /**
     * <code>.Image icon = 21;</code>
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() {
      return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_;
    }

    public static final int ACTION_TYPE_FIELD_NUMBER = 22;
    private int actionType_ = 0;
    /**
     * <code>uint32 action_type = 22;</code>
     * @return The actionType.
     */
    @java.lang.Override
    public int getActionType() {
      return actionType_;
    }

    public static final int WATERMELONSEEDS_FIELD_NUMBER = 23;
    private int watermelonSeeds_ = 0;
    /**
     * <code>int32 watermelonSeeds = 23;</code>
     * @return The watermelonSeeds.
     */
    @java.lang.Override
    public int getWatermelonSeeds() {
      return watermelonSeeds_;
    }

    public static final int GOLDEFFECT_FIELD_NUMBER = 24;
    @SuppressWarnings("serial")
    private volatile java.lang.Object goldEffect_ = "";
    /**
     * <code>string goldEffect = 24;</code>
     * @return The goldEffect.
     */
    @java.lang.Override
    public java.lang.String getGoldEffect() {
      java.lang.Object ref = goldEffect_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        goldEffect_ = s;
        return s;
      }
    }
    /**
     * <code>string goldEffect = 24;</code>
     * @return The bytes for goldEffect.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getGoldEffectBytes() {
      java.lang.Object ref = goldEffect_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        goldEffect_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GOLDENBEANS_FIELD_NUMBER = 26;
    private long goldenBeans_ = 0L;
    /**
     * <pre>
     * repeated LuckyMoneyGiftMeta subs = 25;
     * </pre>
     *
     * <code>int64 goldenBeans = 26;</code>
     * @return The goldenBeans.
     */
    @java.lang.Override
    public long getGoldenBeans() {
      return goldenBeans_;
    }

    public static final int HONORLEVEL_FIELD_NUMBER = 27;
    private long honorLevel_ = 0L;
    /**
     * <code>int64 honorLevel = 27;</code>
     * @return The honorLevel.
     */
    @java.lang.Override
    public long getHonorLevel() {
      return honorLevel_;
    }

    public static final int ITEMTYPE_FIELD_NUMBER = 28;
    private int itemType_ = 0;
    /**
     * <code>int32 itemType = 28;</code>
     * @return The itemType.
     */
    @java.lang.Override
    public int getItemType() {
      return itemType_;
    }

    public static final int SCHEMEURL_FIELD_NUMBER = 29;
    @SuppressWarnings("serial")
    private volatile java.lang.Object schemeUrl_ = "";
    /**
     * <code>string schemeUrl = 29;</code>
     * @return The schemeUrl.
     */
    @java.lang.Override
    public java.lang.String getSchemeUrl() {
      java.lang.Object ref = schemeUrl_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        schemeUrl_ = s;
        return s;
      }
    }
    /**
     * <code>string schemeUrl = 29;</code>
     * @return The bytes for schemeUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSchemeUrlBytes() {
      java.lang.Object ref = schemeUrl_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        schemeUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EVENTNAME_FIELD_NUMBER = 31;
    @SuppressWarnings("serial")
    private volatile java.lang.Object eventName_ = "";
    /**
     * <pre>
     * GiftPanelOperation giftOperation = 30;
     * </pre>
     *
     * <code>string eventName = 31;</code>
     * @return The eventName.
     */
    @java.lang.Override
    public java.lang.String getEventName() {
      java.lang.Object ref = eventName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        eventName_ = s;
        return s;
      }
    }
    /**
     * <pre>
     * GiftPanelOperation giftOperation = 30;
     * </pre>
     *
     * <code>string eventName = 31;</code>
     * @return The bytes for eventName.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getEventNameBytes() {
      java.lang.Object ref = eventName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        eventName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NOBLELEVEL_FIELD_NUMBER = 32;
    private long nobleLevel_ = 0L;
    /**
     * <code>int64 nobleLevel = 32;</code>
     * @return The nobleLevel.
     */
    @java.lang.Override
    public long getNobleLevel() {
      return nobleLevel_;
    }

    public static final int GUIDEURL_FIELD_NUMBER = 33;
    @SuppressWarnings("serial")
    private volatile java.lang.Object guideUrl_ = "";
    /**
     * <code>string guideUrl = 33;</code>
     * @return The guideUrl.
     */
    @java.lang.Override
    public java.lang.String getGuideUrl() {
      java.lang.Object ref = guideUrl_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        guideUrl_ = s;
        return s;
      }
    }
    /**
     * <code>string guideUrl = 33;</code>
     * @return The bytes for guideUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getGuideUrlBytes() {
      java.lang.Object ref = guideUrl_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        guideUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PUNISHMEDICINE_FIELD_NUMBER = 34;
    private boolean punishMedicine_ = false;
    /**
     * <code>bool punishMedicine = 34;</code>
     * @return The punishMedicine.
     */
    @java.lang.Override
    public boolean getPunishMedicine() {
      return punishMedicine_;
    }

    public static final int FORPORTAL_FIELD_NUMBER = 35;
    private boolean forPortal_ = false;
    /**
     * <code>bool forPortal = 35;</code>
     * @return The forPortal.
     */
    @java.lang.Override
    public boolean getForPortal() {
      return forPortal_;
    }

    public static final int BUSINESSTEXT_FIELD_NUMBER = 36;
    @SuppressWarnings("serial")
    private volatile java.lang.Object businessText_ = "";
    /**
     * <code>string businessText = 36;</code>
     * @return The businessText.
     */
    @java.lang.Override
    public java.lang.String getBusinessText() {
      java.lang.Object ref = businessText_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        businessText_ = s;
        return s;
      }
    }
    /**
     * <code>string businessText = 36;</code>
     * @return The bytes for businessText.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBusinessTextBytes() {
      java.lang.Object ref = businessText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        businessText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CNYGIFT_FIELD_NUMBER = 37;
    private boolean cnyGift_ = false;
    /**
     * <code>bool cnyGift = 37;</code>
     * @return The cnyGift.
     */
    @java.lang.Override
    public boolean getCnyGift() {
      return cnyGift_;
    }

    public static final int APPID_FIELD_NUMBER = 38;
    private long appId_ = 0L;
    /**
     * <code>int64 appId = 38;</code>
     * @return The appId.
     */
    @java.lang.Override
    public long getAppId() {
      return appId_;
    }

    public static final int VIPLEVEL_FIELD_NUMBER = 39;
    private long vipLevel_ = 0L;
    /**
     * <code>int64 vipLevel = 39;</code>
     * @return The vipLevel.
     */
    @java.lang.Override
    public long getVipLevel() {
      return vipLevel_;
    }

    public static final int ISGRAY_FIELD_NUMBER = 40;
    private boolean isGray_ = false;
    /**
     * <code>bool isGray = 40;</code>
     * @return The isGray.
     */
    @java.lang.Override
    public boolean getIsGray() {
      return isGray_;
    }

    public static final int GRAYSCHEMEURL_FIELD_NUMBER = 41;
    @SuppressWarnings("serial")
    private volatile java.lang.Object graySchemeUrl_ = "";
    /**
     * <code>string graySchemeUrl = 41;</code>
     * @return The graySchemeUrl.
     */
    @java.lang.Override
    public java.lang.String getGraySchemeUrl() {
      java.lang.Object ref = graySchemeUrl_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        graySchemeUrl_ = s;
        return s;
      }
    }
    /**
     * <code>string graySchemeUrl = 41;</code>
     * @return The bytes for graySchemeUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getGraySchemeUrlBytes() {
      java.lang.Object ref = graySchemeUrl_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        graySchemeUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GIFTSCENE_FIELD_NUMBER = 42;
    private long giftScene_ = 0L;
    /**
     * <code>int64 giftScene = 42;</code>
     * @return The giftScene.
     */
    @java.lang.Override
    public long getGiftScene() {
      return giftScene_;
    }

    public static final int TRIGGERWORDS_FIELD_NUMBER = 44;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList triggerWords_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * <pre>
     * GiftBanner giftBanner = 43;
     * </pre>
     *
     * <code>repeated string triggerWords = 44;</code>
     * @return A list containing the triggerWords.
     */
    public com.google.protobuf.ProtocolStringList
        getTriggerWordsList() {
      return triggerWords_;
    }
    /**
     * <pre>
     * GiftBanner giftBanner = 43;
     * </pre>
     *
     * <code>repeated string triggerWords = 44;</code>
     * @return The count of triggerWords.
     */
    public int getTriggerWordsCount() {
      return triggerWords_.size();
    }
    /**
     * <pre>
     * GiftBanner giftBanner = 43;
     * </pre>
     *
     * <code>repeated string triggerWords = 44;</code>
     * @param index The index of the element to return.
     * @return The triggerWords at the given index.
     */
    public java.lang.String getTriggerWords(int index) {
      return triggerWords_.get(index);
    }
    /**
     * <pre>
     * GiftBanner giftBanner = 43;
     * </pre>
     *
     * <code>repeated string triggerWords = 44;</code>
     * @param index The index of the value to return.
     * @return The bytes of the triggerWords at the given index.
     */
    public com.google.protobuf.ByteString
        getTriggerWordsBytes(int index) {
      return triggerWords_.getByteString(index);
    }

    public static final int FORFIRSTRECHARGE_FIELD_NUMBER = 46;
    private boolean forFirstRecharge_ = false;
    /**
     * <pre>
     * repeated GiftBuffInfo giftBuffInfos = 45;
     * </pre>
     *
     * <code>bool forFirstRecharge = 46;</code>
     * @return The forFirstRecharge.
     */
    @java.lang.Override
    public boolean getForFirstRecharge() {
      return forFirstRecharge_;
    }

    public static final int DYNAMICIMGFORSELECTED_FIELD_NUMBER = 47;
    private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image dynamicImgForSelected_;
    /**
     * <code>.Image dynamicImgForSelected = 47;</code>
     * @return Whether the dynamicImgForSelected field is set.
     */
    @java.lang.Override
    public boolean hasDynamicImgForSelected() {
      return dynamicImgForSelected_ != null;
    }
    /**
     * <code>.Image dynamicImgForSelected = 47;</code>
     * @return The dynamicImgForSelected.
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDynamicImgForSelected() {
      return dynamicImgForSelected_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_;
    }
    /**
     * <code>.Image dynamicImgForSelected = 47;</code>
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDynamicImgForSelectedOrBuilder() {
      return dynamicImgForSelected_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_;
    }

    public static final int AFTERSENDACTION_FIELD_NUMBER = 48;
    private int afterSendAction_ = 0;
    /**
     * <code>int32 afterSendAction = 48;</code>
     * @return The afterSendAction.
     */
    @java.lang.Override
    public int getAfterSendAction() {
      return afterSendAction_;
    }

    public static final int GIFTOFFLINETIME_FIELD_NUMBER = 49;
    private long giftOfflineTime_ = 0L;
    /**
     * <code>int64 giftOfflineTime = 49;</code>
     * @return The giftOfflineTime.
     */
    @java.lang.Override
    public long getGiftOfflineTime() {
      return giftOfflineTime_;
    }

    public static final int TOPBARTEXT_FIELD_NUMBER = 50;
    @SuppressWarnings("serial")
    private volatile java.lang.Object topBarText_ = "";
    /**
     * <code>string topBarText = 50;</code>
     * @return The topBarText.
     */
    @java.lang.Override
    public java.lang.String getTopBarText() {
      java.lang.Object ref = topBarText_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        topBarText_ = s;
        return s;
      }
    }
    /**
     * <code>string topBarText = 50;</code>
     * @return The bytes for topBarText.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getTopBarTextBytes() {
      java.lang.Object ref = topBarText_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        topBarText_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOPRIGHTAVATAR_FIELD_NUMBER = 51;
    private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image topRightAvatar_;
    /**
     * <code>.Image topRightAvatar = 51;</code>
     * @return Whether the topRightAvatar field is set.
     */
    @java.lang.Override
    public boolean hasTopRightAvatar() {
      return topRightAvatar_ != null;
    }
    /**
     * <code>.Image topRightAvatar = 51;</code>
     * @return The topRightAvatar.
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getTopRightAvatar() {
      return topRightAvatar_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_;
    }
    /**
     * <code>.Image topRightAvatar = 51;</code>
     */
    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getTopRightAvatarOrBuilder() {
      return topRightAvatar_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_;
    }

    public static final int BANNERSCHEMEURL_FIELD_NUMBER = 52;
    @SuppressWarnings("serial")
    private volatile java.lang.Object bannerSchemeUrl_ = "";
    /**
     * <code>string bannerSchemeUrl = 52;</code>
     * @return The bannerSchemeUrl.
     */
    @java.lang.Override
    public java.lang.String getBannerSchemeUrl() {
      java.lang.Object ref = bannerSchemeUrl_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        bannerSchemeUrl_ = s;
        return s;
      }
    }
    /**
     * <code>string bannerSchemeUrl = 52;</code>
     * @return The bytes for bannerSchemeUrl.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getBannerSchemeUrlBytes() {
      java.lang.Object ref = bannerSchemeUrl_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        bannerSchemeUrl_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ISLOCKED_FIELD_NUMBER = 53;
    private boolean isLocked_ = false;
    /**
     * <code>bool isLocked = 53;</code>
     * @return The isLocked.
     */
    @java.lang.Override
    public boolean getIsLocked() {
      return isLocked_;
    }

    public static final int REQEXTRATYPE_FIELD_NUMBER = 54;
    private long reqExtraType_ = 0L;
    /**
     * <code>int64 reqExtraType = 54;</code>
     * @return The reqExtraType.
     */
    @java.lang.Override
    public long getReqExtraType() {
      return reqExtraType_;
    }

    public static final int ASSETIDS_FIELD_NUMBER = 55;
    @SuppressWarnings("serial")
    private com.google.protobuf.Internal.LongList assetIds_;
    /**
     * <code>repeated int64 assetIds = 55;</code>
     * @return A list containing the assetIds.
     */
    @java.lang.Override
    public java.util.List<java.lang.Long>
        getAssetIdsList() {
      return assetIds_;
    }
    /**
     * <code>repeated int64 assetIds = 55;</code>
     * @return The count of assetIds.
     */
    public int getAssetIdsCount() {
      return assetIds_.size();
    }
    /**
     * <code>repeated int64 assetIds = 55;</code>
     * @param index The index of the element to return.
     * @return The assetIds at the given index.
     */
    public long getAssetIds(int index) {
      return assetIds_.getLong(index);
    }
    private int assetIdsMemoizedSerializedSize = -1;

    public static final int NEEDSWEEPLIGHTCOUNT_FIELD_NUMBER = 58;
    private int needSweepLightCount_ = 0;
    /**
     * <pre>
     * GiftPreviewInfo giftPreviewInfo = 56;
     * GiftTip giftTip = 57;
     * </pre>
     *
     * <code>int32 needSweepLightCount = 58;</code>
     * @return The needSweepLightCount.
     */
    @java.lang.Override
    public int getNeedSweepLightCount() {
      return needSweepLightCount_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (image_ != null) {
        output.writeMessage(1, getImage());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, describe_);
      }
      if (notify_ != false) {
        output.writeBool(3, notify_);
      }
      if (duration_ != 0L) {
        output.writeUInt64(4, duration_);
      }
      if (id_ != 0L) {
        output.writeUInt64(5, id_);
      }
      if (forLinkmic_ != false) {
        output.writeBool(7, forLinkmic_);
      }
      if (doodle_ != false) {
        output.writeBool(8, doodle_);
      }
      if (forFansclub_ != false) {
        output.writeBool(9, forFansclub_);
      }
      if (combo_ != false) {
        output.writeBool(10, combo_);
      }
      if (type_ != 0) {
        output.writeUInt32(11, type_);
      }
      if (diamondCount_ != 0) {
        output.writeUInt32(12, diamondCount_);
      }
      if (isDisplayedOnPanel_ != false) {
        output.writeBool(13, isDisplayedOnPanel_);
      }
      if (primaryEffectId_ != 0L) {
        output.writeUInt64(14, primaryEffectId_);
      }
      if (giftLabelIcon_ != null) {
        output.writeMessage(15, getGiftLabelIcon());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(region_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, region_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(manual_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 18, manual_);
      }
      if (forCustom_ != false) {
        output.writeBool(19, forCustom_);
      }
      com.google.protobuf.GeneratedMessageV3
        .serializeStringMapTo(
          output,
          internalGetSpecialEffectsMap(),
          SpecialEffectsMapDefaultEntryHolder.defaultEntry,
          20);
      if (icon_ != null) {
        output.writeMessage(21, getIcon());
      }
      if (actionType_ != 0) {
        output.writeUInt32(22, actionType_);
      }
      if (watermelonSeeds_ != 0) {
        output.writeInt32(23, watermelonSeeds_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(goldEffect_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 24, goldEffect_);
      }
      if (goldenBeans_ != 0L) {
        output.writeInt64(26, goldenBeans_);
      }
      if (honorLevel_ != 0L) {
        output.writeInt64(27, honorLevel_);
      }
      if (itemType_ != 0) {
        output.writeInt32(28, itemType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemeUrl_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 29, schemeUrl_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventName_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 31, eventName_);
      }
      if (nobleLevel_ != 0L) {
        output.writeInt64(32, nobleLevel_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guideUrl_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 33, guideUrl_);
      }
      if (punishMedicine_ != false) {
        output.writeBool(34, punishMedicine_);
      }
      if (forPortal_ != false) {
        output.writeBool(35, forPortal_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(businessText_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 36, businessText_);
      }
      if (cnyGift_ != false) {
        output.writeBool(37, cnyGift_);
      }
      if (appId_ != 0L) {
        output.writeInt64(38, appId_);
      }
      if (vipLevel_ != 0L) {
        output.writeInt64(39, vipLevel_);
      }
      if (isGray_ != false) {
        output.writeBool(40, isGray_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(graySchemeUrl_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 41, graySchemeUrl_);
      }
      if (giftScene_ != 0L) {
        output.writeInt64(42, giftScene_);
      }
      for (int i = 0; i < triggerWords_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 44, triggerWords_.getRaw(i));
      }
      if (forFirstRecharge_ != false) {
        output.writeBool(46, forFirstRecharge_);
      }
      if (dynamicImgForSelected_ != null) {
        output.writeMessage(47, getDynamicImgForSelected());
      }
      if (afterSendAction_ != 0) {
        output.writeInt32(48, afterSendAction_);
      }
      if (giftOfflineTime_ != 0L) {
        output.writeInt64(49, giftOfflineTime_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topBarText_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 50, topBarText_);
      }
      if (topRightAvatar_ != null) {
        output.writeMessage(51, getTopRightAvatar());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bannerSchemeUrl_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 52, bannerSchemeUrl_);
      }
      if (isLocked_ != false) {
        output.writeBool(53, isLocked_);
      }
      if (reqExtraType_ != 0L) {
        output.writeInt64(54, reqExtraType_);
      }
      if (getAssetIdsList().size() > 0) {
        output.writeUInt32NoTag(442);
        output.writeUInt32NoTag(assetIdsMemoizedSerializedSize);
      }
      for (int i = 0; i < assetIds_.size(); i++) {
        output.writeInt64NoTag(assetIds_.getLong(i));
      }
      if (needSweepLightCount_ != 0) {
        output.writeInt32(58, needSweepLightCount_);
      }
      getUnknownFields().writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (image_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getImage());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(describe_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, describe_);
      }
      if (notify_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(3, notify_);
      }
      if (duration_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(4, duration_);
      }
      if (id_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(5, id_);
      }
      if (forLinkmic_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(7, forLinkmic_);
      }
      if (doodle_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, doodle_);
      }
      if (forFansclub_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, forFansclub_);
      }
      if (combo_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(10, combo_);
      }
      if (type_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(11, type_);
      }
      if (diamondCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(12, diamondCount_);
      }
      if (isDisplayedOnPanel_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(13, isDisplayedOnPanel_);
      }
      if (primaryEffectId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(14, primaryEffectId_);
      }
      if (giftLabelIcon_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, getGiftLabelIcon());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, name_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(region_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, region_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(manual_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(18, manual_);
      }
      if (forCustom_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(19, forCustom_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.Long> entry
           : internalGetSpecialEffectsMap().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.Long>
        specialEffectsMap__ = SpecialEffectsMapDefaultEntryHolder.defaultEntry.newBuilderForType()
            .setKey(entry.getKey())
            .setValue(entry.getValue())
            .build();
        size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(20, specialEffectsMap__);
      }
      if (icon_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(21, getIcon());
      }
      if (actionType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt32Size(22, actionType_);
      }
      if (watermelonSeeds_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(23, watermelonSeeds_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(goldEffect_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(24, goldEffect_);
      }
      if (goldenBeans_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(26, goldenBeans_);
      }
      if (honorLevel_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(27, honorLevel_);
      }
      if (itemType_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(28, itemType_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(schemeUrl_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(29, schemeUrl_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(eventName_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(31, eventName_);
      }
      if (nobleLevel_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(32, nobleLevel_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(guideUrl_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(33, guideUrl_);
      }
      if (punishMedicine_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(34, punishMedicine_);
      }
      if (forPortal_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(35, forPortal_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(businessText_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(36, businessText_);
      }
      if (cnyGift_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(37, cnyGift_);
      }
      if (appId_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(38, appId_);
      }
      if (vipLevel_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(39, vipLevel_);
      }
      if (isGray_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(40, isGray_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(graySchemeUrl_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(41, graySchemeUrl_);
      }
      if (giftScene_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(42, giftScene_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < triggerWords_.size(); i++) {
          dataSize += computeStringSizeNoTag(triggerWords_.getRaw(i));
        }
        size += dataSize;
        size += 2 * getTriggerWordsList().size();
      }
      if (forFirstRecharge_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(46, forFirstRecharge_);
      }
      if (dynamicImgForSelected_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(47, getDynamicImgForSelected());
      }
      if (afterSendAction_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(48, afterSendAction_);
      }
      if (giftOfflineTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(49, giftOfflineTime_);
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(topBarText_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(50, topBarText_);
      }
      if (topRightAvatar_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(51, getTopRightAvatar());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(bannerSchemeUrl_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(52, bannerSchemeUrl_);
      }
      if (isLocked_ != false) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(53, isLocked_);
      }
      if (reqExtraType_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt64Size(54, reqExtraType_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < assetIds_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeInt64SizeNoTag(assetIds_.getLong(i));
        }
        size += dataSize;
        if (!getAssetIdsList().isEmpty()) {
          size += 2;
          size += com.google.protobuf.CodedOutputStream
              .computeInt32SizeNoTag(dataSize);
        }
        assetIdsMemoizedSerializedSize = dataSize;
      }
      if (needSweepLightCount_ != 0) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(58, needSweepLightCount_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct)) {
        return super.equals(obj);
      }
      tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct other = (tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct) obj;

      if (hasImage() != other.hasImage()) return false;
      if (hasImage()) {
        if (!getImage()
            .equals(other.getImage())) return false;
      }
      if (!getDescribe()
          .equals(other.getDescribe())) return false;
      if (getNotify()
          != other.getNotify()) return false;
      if (getDuration()
          != other.getDuration()) return false;
      if (getId()
          != other.getId()) return false;
      if (getForLinkmic()
          != other.getForLinkmic()) return false;
      if (getDoodle()
          != other.getDoodle()) return false;
      if (getForFansclub()
          != other.getForFansclub()) return false;
      if (getCombo()
          != other.getCombo()) return false;
      if (getType()
          != other.getType()) return false;
      if (getDiamondCount()
          != other.getDiamondCount()) return false;
      if (getIsDisplayedOnPanel()
          != other.getIsDisplayedOnPanel()) return false;
      if (getPrimaryEffectId()
          != other.getPrimaryEffectId()) return false;
      if (hasGiftLabelIcon() != other.hasGiftLabelIcon()) return false;
      if (hasGiftLabelIcon()) {
        if (!getGiftLabelIcon()
            .equals(other.getGiftLabelIcon())) return false;
      }
      if (!getName()
          .equals(other.getName())) return false;
      if (!getRegion()
          .equals(other.getRegion())) return false;
      if (!getManual()
          .equals(other.getManual())) return false;
      if (getForCustom()
          != other.getForCustom()) return false;
      if (!internalGetSpecialEffectsMap().equals(
          other.internalGetSpecialEffectsMap())) return false;
      if (hasIcon() != other.hasIcon()) return false;
      if (hasIcon()) {
        if (!getIcon()
            .equals(other.getIcon())) return false;
      }
      if (getActionType()
          != other.getActionType()) return false;
      if (getWatermelonSeeds()
          != other.getWatermelonSeeds()) return false;
      if (!getGoldEffect()
          .equals(other.getGoldEffect())) return false;
      if (getGoldenBeans()
          != other.getGoldenBeans()) return false;
      if (getHonorLevel()
          != other.getHonorLevel()) return false;
      if (getItemType()
          != other.getItemType()) return false;
      if (!getSchemeUrl()
          .equals(other.getSchemeUrl())) return false;
      if (!getEventName()
          .equals(other.getEventName())) return false;
      if (getNobleLevel()
          != other.getNobleLevel()) return false;
      if (!getGuideUrl()
          .equals(other.getGuideUrl())) return false;
      if (getPunishMedicine()
          != other.getPunishMedicine()) return false;
      if (getForPortal()
          != other.getForPortal()) return false;
      if (!getBusinessText()
          .equals(other.getBusinessText())) return false;
      if (getCnyGift()
          != other.getCnyGift()) return false;
      if (getAppId()
          != other.getAppId()) return false;
      if (getVipLevel()
          != other.getVipLevel()) return false;
      if (getIsGray()
          != other.getIsGray()) return false;
      if (!getGraySchemeUrl()
          .equals(other.getGraySchemeUrl())) return false;
      if (getGiftScene()
          != other.getGiftScene()) return false;
      if (!getTriggerWordsList()
          .equals(other.getTriggerWordsList())) return false;
      if (getForFirstRecharge()
          != other.getForFirstRecharge()) return false;
      if (hasDynamicImgForSelected() != other.hasDynamicImgForSelected()) return false;
      if (hasDynamicImgForSelected()) {
        if (!getDynamicImgForSelected()
            .equals(other.getDynamicImgForSelected())) return false;
      }
      if (getAfterSendAction()
          != other.getAfterSendAction()) return false;
      if (getGiftOfflineTime()
          != other.getGiftOfflineTime()) return false;
      if (!getTopBarText()
          .equals(other.getTopBarText())) return false;
      if (hasTopRightAvatar() != other.hasTopRightAvatar()) return false;
      if (hasTopRightAvatar()) {
        if (!getTopRightAvatar()
            .equals(other.getTopRightAvatar())) return false;
      }
      if (!getBannerSchemeUrl()
          .equals(other.getBannerSchemeUrl())) return false;
      if (getIsLocked()
          != other.getIsLocked()) return false;
      if (getReqExtraType()
          != other.getReqExtraType()) return false;
      if (!getAssetIdsList()
          .equals(other.getAssetIdsList())) return false;
      if (getNeedSweepLightCount()
          != other.getNeedSweepLightCount()) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasImage()) {
        hash = (37 * hash) + IMAGE_FIELD_NUMBER;
        hash = (53 * hash) + getImage().hashCode();
      }
      hash = (37 * hash) + DESCRIBE_FIELD_NUMBER;
      hash = (53 * hash) + getDescribe().hashCode();
      hash = (37 * hash) + NOTIFY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getNotify());
      hash = (37 * hash) + DURATION_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getDuration());
      hash = (37 * hash) + ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getId());
      hash = (37 * hash) + FOR_LINKMIC_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getForLinkmic());
      hash = (37 * hash) + DOODLE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getDoodle());
      hash = (37 * hash) + FOR_FANSCLUB_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getForFansclub());
      hash = (37 * hash) + COMBO_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCombo());
      hash = (37 * hash) + TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getType();
      hash = (37 * hash) + DIAMOND_COUNT_FIELD_NUMBER;
      hash = (53 * hash) + getDiamondCount();
      hash = (37 * hash) + IS_DISPLAYED_ON_PANEL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsDisplayedOnPanel());
      hash = (37 * hash) + PRIMARY_EFFECT_ID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getPrimaryEffectId());
      if (hasGiftLabelIcon()) {
        hash = (37 * hash) + GIFT_LABEL_ICON_FIELD_NUMBER;
        hash = (53 * hash) + getGiftLabelIcon().hashCode();
      }
      hash = (37 * hash) + NAME_FIELD_NUMBER;
      hash = (53 * hash) + getName().hashCode();
      hash = (37 * hash) + REGION_FIELD_NUMBER;
      hash = (53 * hash) + getRegion().hashCode();
      hash = (37 * hash) + MANUAL_FIELD_NUMBER;
      hash = (53 * hash) + getManual().hashCode();
      hash = (37 * hash) + FOR_CUSTOM_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getForCustom());
      if (!internalGetSpecialEffectsMap().getMap().isEmpty()) {
        hash = (37 * hash) + SPECIALEFFECTSMAP_FIELD_NUMBER;
        hash = (53 * hash) + internalGetSpecialEffectsMap().hashCode();
      }
      if (hasIcon()) {
        hash = (37 * hash) + ICON_FIELD_NUMBER;
        hash = (53 * hash) + getIcon().hashCode();
      }
      hash = (37 * hash) + ACTION_TYPE_FIELD_NUMBER;
      hash = (53 * hash) + getActionType();
      hash = (37 * hash) + WATERMELONSEEDS_FIELD_NUMBER;
      hash = (53 * hash) + getWatermelonSeeds();
      hash = (37 * hash) + GOLDEFFECT_FIELD_NUMBER;
      hash = (53 * hash) + getGoldEffect().hashCode();
      hash = (37 * hash) + GOLDENBEANS_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getGoldenBeans());
      hash = (37 * hash) + HONORLEVEL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getHonorLevel());
      hash = (37 * hash) + ITEMTYPE_FIELD_NUMBER;
      hash = (53 * hash) + getItemType();
      hash = (37 * hash) + SCHEMEURL_FIELD_NUMBER;
      hash = (53 * hash) + getSchemeUrl().hashCode();
      hash = (37 * hash) + EVENTNAME_FIELD_NUMBER;
      hash = (53 * hash) + getEventName().hashCode();
      hash = (37 * hash) + NOBLELEVEL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getNobleLevel());
      hash = (37 * hash) + GUIDEURL_FIELD_NUMBER;
      hash = (53 * hash) + getGuideUrl().hashCode();
      hash = (37 * hash) + PUNISHMEDICINE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getPunishMedicine());
      hash = (37 * hash) + FORPORTAL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getForPortal());
      hash = (37 * hash) + BUSINESSTEXT_FIELD_NUMBER;
      hash = (53 * hash) + getBusinessText().hashCode();
      hash = (37 * hash) + CNYGIFT_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getCnyGift());
      hash = (37 * hash) + APPID_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getAppId());
      hash = (37 * hash) + VIPLEVEL_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getVipLevel());
      hash = (37 * hash) + ISGRAY_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsGray());
      hash = (37 * hash) + GRAYSCHEMEURL_FIELD_NUMBER;
      hash = (53 * hash) + getGraySchemeUrl().hashCode();
      hash = (37 * hash) + GIFTSCENE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getGiftScene());
      if (getTriggerWordsCount() > 0) {
        hash = (37 * hash) + TRIGGERWORDS_FIELD_NUMBER;
        hash = (53 * hash) + getTriggerWordsList().hashCode();
      }
      hash = (37 * hash) + FORFIRSTRECHARGE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getForFirstRecharge());
      if (hasDynamicImgForSelected()) {
        hash = (37 * hash) + DYNAMICIMGFORSELECTED_FIELD_NUMBER;
        hash = (53 * hash) + getDynamicImgForSelected().hashCode();
      }
      hash = (37 * hash) + AFTERSENDACTION_FIELD_NUMBER;
      hash = (53 * hash) + getAfterSendAction();
      hash = (37 * hash) + GIFTOFFLINETIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getGiftOfflineTime());
      hash = (37 * hash) + TOPBARTEXT_FIELD_NUMBER;
      hash = (53 * hash) + getTopBarText().hashCode();
      if (hasTopRightAvatar()) {
        hash = (37 * hash) + TOPRIGHTAVATAR_FIELD_NUMBER;
        hash = (53 * hash) + getTopRightAvatar().hashCode();
      }
      hash = (37 * hash) + BANNERSCHEMEURL_FIELD_NUMBER;
      hash = (53 * hash) + getBannerSchemeUrl().hashCode();
      hash = (37 * hash) + ISLOCKED_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(
          getIsLocked());
      hash = (37 * hash) + REQEXTRATYPE_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
          getReqExtraType());
      if (getAssetIdsCount() > 0) {
        hash = (37 * hash) + ASSETIDS_FIELD_NUMBER;
        hash = (53 * hash) + getAssetIdsList().hashCode();
      }
      hash = (37 * hash) + NEEDSWEEPLIGHTCOUNT_FIELD_NUMBER;
      hash = (53 * hash) + getNeedSweepLightCount();
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code GiftStruct}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
        // @@protoc_insertion_point(builder_implements:GiftStruct)
        tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStructOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(
          int number) {
        switch (number) {
          case 20:
            return internalGetSpecialEffectsMap();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(
          int number) {
        switch (number) {
          case 20:
            return internalGetMutableSpecialEffectsMap();
          default:
            throw new RuntimeException(
                "Invalid map field number: " + number);
        }
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.class, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.Builder.class);
      }

      // Construct using tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.newBuilder()
      private Builder() {

      }

      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        bitField1_ = 0;
        image_ = null;
        if (imageBuilder_ != null) {
          imageBuilder_.dispose();
          imageBuilder_ = null;
        }
        describe_ = "";
        notify_ = false;
        duration_ = 0L;
        id_ = 0L;
        forLinkmic_ = false;
        doodle_ = false;
        forFansclub_ = false;
        combo_ = false;
        type_ = 0;
        diamondCount_ = 0;
        isDisplayedOnPanel_ = false;
        primaryEffectId_ = 0L;
        giftLabelIcon_ = null;
        if (giftLabelIconBuilder_ != null) {
          giftLabelIconBuilder_.dispose();
          giftLabelIconBuilder_ = null;
        }
        name_ = "";
        region_ = "";
        manual_ = "";
        forCustom_ = false;
        internalGetMutableSpecialEffectsMap().clear();
        icon_ = null;
        if (iconBuilder_ != null) {
          iconBuilder_.dispose();
          iconBuilder_ = null;
        }
        actionType_ = 0;
        watermelonSeeds_ = 0;
        goldEffect_ = "";
        goldenBeans_ = 0L;
        honorLevel_ = 0L;
        itemType_ = 0;
        schemeUrl_ = "";
        eventName_ = "";
        nobleLevel_ = 0L;
        guideUrl_ = "";
        punishMedicine_ = false;
        forPortal_ = false;
        businessText_ = "";
        cnyGift_ = false;
        appId_ = 0L;
        vipLevel_ = 0L;
        isGray_ = false;
        graySchemeUrl_ = "";
        giftScene_ = 0L;
        triggerWords_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        forFirstRecharge_ = false;
        dynamicImgForSelected_ = null;
        if (dynamicImgForSelectedBuilder_ != null) {
          dynamicImgForSelectedBuilder_.dispose();
          dynamicImgForSelectedBuilder_ = null;
        }
        afterSendAction_ = 0;
        giftOfflineTime_ = 0L;
        topBarText_ = "";
        topRightAvatar_ = null;
        if (topRightAvatarBuilder_ != null) {
          topRightAvatarBuilder_.dispose();
          topRightAvatarBuilder_ = null;
        }
        bannerSchemeUrl_ = "";
        isLocked_ = false;
        reqExtraType_ = 0L;
        assetIds_ = emptyLongList();
        needSweepLightCount_ = 0;
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.internal_static_GiftStruct_descriptor;
      }

      @java.lang.Override
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getDefaultInstanceForType() {
        return tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance();
      }

      @java.lang.Override
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct build() {
        tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct buildPartial() {
        tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        if (bitField1_ != 0) { buildPartial1(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result) {
        if (((bitField1_ & 0x00020000) != 0)) {
          assetIds_.makeImmutable();
          bitField1_ = (bitField1_ & ~0x00020000);
        }
        result.assetIds_ = assetIds_;
      }

      private void buildPartial0(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.image_ = imageBuilder_ == null
              ? image_
              : imageBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.describe_ = describe_;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.notify_ = notify_;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.duration_ = duration_;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.id_ = id_;
        }
        if (((from_bitField0_ & 0x00000020) != 0)) {
          result.forLinkmic_ = forLinkmic_;
        }
        if (((from_bitField0_ & 0x00000040) != 0)) {
          result.doodle_ = doodle_;
        }
        if (((from_bitField0_ & 0x00000080) != 0)) {
          result.forFansclub_ = forFansclub_;
        }
        if (((from_bitField0_ & 0x00000100) != 0)) {
          result.combo_ = combo_;
        }
        if (((from_bitField0_ & 0x00000200) != 0)) {
          result.type_ = type_;
        }
        if (((from_bitField0_ & 0x00000400) != 0)) {
          result.diamondCount_ = diamondCount_;
        }
        if (((from_bitField0_ & 0x00000800) != 0)) {
          result.isDisplayedOnPanel_ = isDisplayedOnPanel_;
        }
        if (((from_bitField0_ & 0x00001000) != 0)) {
          result.primaryEffectId_ = primaryEffectId_;
        }
        if (((from_bitField0_ & 0x00002000) != 0)) {
          result.giftLabelIcon_ = giftLabelIconBuilder_ == null
              ? giftLabelIcon_
              : giftLabelIconBuilder_.build();
        }
        if (((from_bitField0_ & 0x00004000) != 0)) {
          result.name_ = name_;
        }
        if (((from_bitField0_ & 0x00008000) != 0)) {
          result.region_ = region_;
        }
        if (((from_bitField0_ & 0x00010000) != 0)) {
          result.manual_ = manual_;
        }
        if (((from_bitField0_ & 0x00020000) != 0)) {
          result.forCustom_ = forCustom_;
        }
        if (((from_bitField0_ & 0x00040000) != 0)) {
          result.specialEffectsMap_ = internalGetSpecialEffectsMap();
          result.specialEffectsMap_.makeImmutable();
        }
        if (((from_bitField0_ & 0x00080000) != 0)) {
          result.icon_ = iconBuilder_ == null
              ? icon_
              : iconBuilder_.build();
        }
        if (((from_bitField0_ & 0x00100000) != 0)) {
          result.actionType_ = actionType_;
        }
        if (((from_bitField0_ & 0x00200000) != 0)) {
          result.watermelonSeeds_ = watermelonSeeds_;
        }
        if (((from_bitField0_ & 0x00400000) != 0)) {
          result.goldEffect_ = goldEffect_;
        }
        if (((from_bitField0_ & 0x00800000) != 0)) {
          result.goldenBeans_ = goldenBeans_;
        }
        if (((from_bitField0_ & 0x01000000) != 0)) {
          result.honorLevel_ = honorLevel_;
        }
        if (((from_bitField0_ & 0x02000000) != 0)) {
          result.itemType_ = itemType_;
        }
        if (((from_bitField0_ & 0x04000000) != 0)) {
          result.schemeUrl_ = schemeUrl_;
        }
        if (((from_bitField0_ & 0x08000000) != 0)) {
          result.eventName_ = eventName_;
        }
        if (((from_bitField0_ & 0x10000000) != 0)) {
          result.nobleLevel_ = nobleLevel_;
        }
        if (((from_bitField0_ & 0x20000000) != 0)) {
          result.guideUrl_ = guideUrl_;
        }
        if (((from_bitField0_ & 0x40000000) != 0)) {
          result.punishMedicine_ = punishMedicine_;
        }
        if (((from_bitField0_ & 0x80000000) != 0)) {
          result.forPortal_ = forPortal_;
        }
      }

      private void buildPartial1(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct result) {
        int from_bitField1_ = bitField1_;
        if (((from_bitField1_ & 0x00000001) != 0)) {
          result.businessText_ = businessText_;
        }
        if (((from_bitField1_ & 0x00000002) != 0)) {
          result.cnyGift_ = cnyGift_;
        }
        if (((from_bitField1_ & 0x00000004) != 0)) {
          result.appId_ = appId_;
        }
        if (((from_bitField1_ & 0x00000008) != 0)) {
          result.vipLevel_ = vipLevel_;
        }
        if (((from_bitField1_ & 0x00000010) != 0)) {
          result.isGray_ = isGray_;
        }
        if (((from_bitField1_ & 0x00000020) != 0)) {
          result.graySchemeUrl_ = graySchemeUrl_;
        }
        if (((from_bitField1_ & 0x00000040) != 0)) {
          result.giftScene_ = giftScene_;
        }
        if (((from_bitField1_ & 0x00000080) != 0)) {
          triggerWords_.makeImmutable();
          result.triggerWords_ = triggerWords_;
        }
        if (((from_bitField1_ & 0x00000100) != 0)) {
          result.forFirstRecharge_ = forFirstRecharge_;
        }
        if (((from_bitField1_ & 0x00000200) != 0)) {
          result.dynamicImgForSelected_ = dynamicImgForSelectedBuilder_ == null
              ? dynamicImgForSelected_
              : dynamicImgForSelectedBuilder_.build();
        }
        if (((from_bitField1_ & 0x00000400) != 0)) {
          result.afterSendAction_ = afterSendAction_;
        }
        if (((from_bitField1_ & 0x00000800) != 0)) {
          result.giftOfflineTime_ = giftOfflineTime_;
        }
        if (((from_bitField1_ & 0x00001000) != 0)) {
          result.topBarText_ = topBarText_;
        }
        if (((from_bitField1_ & 0x00002000) != 0)) {
          result.topRightAvatar_ = topRightAvatarBuilder_ == null
              ? topRightAvatar_
              : topRightAvatarBuilder_.build();
        }
        if (((from_bitField1_ & 0x00004000) != 0)) {
          result.bannerSchemeUrl_ = bannerSchemeUrl_;
        }
        if (((from_bitField1_ & 0x00008000) != 0)) {
          result.isLocked_ = isLocked_;
        }
        if (((from_bitField1_ & 0x00010000) != 0)) {
          result.reqExtraType_ = reqExtraType_;
        }
        if (((from_bitField1_ & 0x00040000) != 0)) {
          result.needSweepLightCount_ = needSweepLightCount_;
        }
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct) {
          return mergeFrom((tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct other) {
        if (other == tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct.getDefaultInstance()) return this;
        if (other.hasImage()) {
          mergeImage(other.getImage());
        }
        if (!other.getDescribe().isEmpty()) {
          describe_ = other.describe_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (other.getNotify() != false) {
          setNotify(other.getNotify());
        }
        if (other.getDuration() != 0L) {
          setDuration(other.getDuration());
        }
        if (other.getId() != 0L) {
          setId(other.getId());
        }
        if (other.getForLinkmic() != false) {
          setForLinkmic(other.getForLinkmic());
        }
        if (other.getDoodle() != false) {
          setDoodle(other.getDoodle());
        }
        if (other.getForFansclub() != false) {
          setForFansclub(other.getForFansclub());
        }
        if (other.getCombo() != false) {
          setCombo(other.getCombo());
        }
        if (other.getType() != 0) {
          setType(other.getType());
        }
        if (other.getDiamondCount() != 0) {
          setDiamondCount(other.getDiamondCount());
        }
        if (other.getIsDisplayedOnPanel() != false) {
          setIsDisplayedOnPanel(other.getIsDisplayedOnPanel());
        }
        if (other.getPrimaryEffectId() != 0L) {
          setPrimaryEffectId(other.getPrimaryEffectId());
        }
        if (other.hasGiftLabelIcon()) {
          mergeGiftLabelIcon(other.getGiftLabelIcon());
        }
        if (!other.getName().isEmpty()) {
          name_ = other.name_;
          bitField0_ |= 0x00004000;
          onChanged();
        }
        if (!other.getRegion().isEmpty()) {
          region_ = other.region_;
          bitField0_ |= 0x00008000;
          onChanged();
        }
        if (!other.getManual().isEmpty()) {
          manual_ = other.manual_;
          bitField0_ |= 0x00010000;
          onChanged();
        }
        if (other.getForCustom() != false) {
          setForCustom(other.getForCustom());
        }
        internalGetMutableSpecialEffectsMap().mergeFrom(
            other.internalGetSpecialEffectsMap());
        bitField0_ |= 0x00040000;
        if (other.hasIcon()) {
          mergeIcon(other.getIcon());
        }
        if (other.getActionType() != 0) {
          setActionType(other.getActionType());
        }
        if (other.getWatermelonSeeds() != 0) {
          setWatermelonSeeds(other.getWatermelonSeeds());
        }
        if (!other.getGoldEffect().isEmpty()) {
          goldEffect_ = other.goldEffect_;
          bitField0_ |= 0x00400000;
          onChanged();
        }
        if (other.getGoldenBeans() != 0L) {
          setGoldenBeans(other.getGoldenBeans());
        }
        if (other.getHonorLevel() != 0L) {
          setHonorLevel(other.getHonorLevel());
        }
        if (other.getItemType() != 0) {
          setItemType(other.getItemType());
        }
        if (!other.getSchemeUrl().isEmpty()) {
          schemeUrl_ = other.schemeUrl_;
          bitField0_ |= 0x04000000;
          onChanged();
        }
        if (!other.getEventName().isEmpty()) {
          eventName_ = other.eventName_;
          bitField0_ |= 0x08000000;
          onChanged();
        }
        if (other.getNobleLevel() != 0L) {
          setNobleLevel(other.getNobleLevel());
        }
        if (!other.getGuideUrl().isEmpty()) {
          guideUrl_ = other.guideUrl_;
          bitField0_ |= 0x20000000;
          onChanged();
        }
        if (other.getPunishMedicine() != false) {
          setPunishMedicine(other.getPunishMedicine());
        }
        if (other.getForPortal() != false) {
          setForPortal(other.getForPortal());
        }
        if (!other.getBusinessText().isEmpty()) {
          businessText_ = other.businessText_;
          bitField1_ |= 0x00000001;
          onChanged();
        }
        if (other.getCnyGift() != false) {
          setCnyGift(other.getCnyGift());
        }
        if (other.getAppId() != 0L) {
          setAppId(other.getAppId());
        }
        if (other.getVipLevel() != 0L) {
          setVipLevel(other.getVipLevel());
        }
        if (other.getIsGray() != false) {
          setIsGray(other.getIsGray());
        }
        if (!other.getGraySchemeUrl().isEmpty()) {
          graySchemeUrl_ = other.graySchemeUrl_;
          bitField1_ |= 0x00000020;
          onChanged();
        }
        if (other.getGiftScene() != 0L) {
          setGiftScene(other.getGiftScene());
        }
        if (!other.triggerWords_.isEmpty()) {
          if (triggerWords_.isEmpty()) {
            triggerWords_ = other.triggerWords_;
            bitField1_ |= 0x00000080;
          } else {
            ensureTriggerWordsIsMutable();
            triggerWords_.addAll(other.triggerWords_);
          }
          onChanged();
        }
        if (other.getForFirstRecharge() != false) {
          setForFirstRecharge(other.getForFirstRecharge());
        }
        if (other.hasDynamicImgForSelected()) {
          mergeDynamicImgForSelected(other.getDynamicImgForSelected());
        }
        if (other.getAfterSendAction() != 0) {
          setAfterSendAction(other.getAfterSendAction());
        }
        if (other.getGiftOfflineTime() != 0L) {
          setGiftOfflineTime(other.getGiftOfflineTime());
        }
        if (!other.getTopBarText().isEmpty()) {
          topBarText_ = other.topBarText_;
          bitField1_ |= 0x00001000;
          onChanged();
        }
        if (other.hasTopRightAvatar()) {
          mergeTopRightAvatar(other.getTopRightAvatar());
        }
        if (!other.getBannerSchemeUrl().isEmpty()) {
          bannerSchemeUrl_ = other.bannerSchemeUrl_;
          bitField1_ |= 0x00004000;
          onChanged();
        }
        if (other.getIsLocked() != false) {
          setIsLocked(other.getIsLocked());
        }
        if (other.getReqExtraType() != 0L) {
          setReqExtraType(other.getReqExtraType());
        }
        if (!other.assetIds_.isEmpty()) {
          if (assetIds_.isEmpty()) {
            assetIds_ = other.assetIds_;
            bitField1_ = (bitField1_ & ~0x00020000);
          } else {
            ensureAssetIdsIsMutable();
            assetIds_.addAll(other.assetIds_);
          }
          onChanged();
        }
        if (other.getNeedSweepLightCount() != 0) {
          setNeedSweepLightCount(other.getNeedSweepLightCount());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                input.readMessage(
                    getImageFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 18: {
                describe_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 24: {
                notify_ = input.readBool();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                duration_ = input.readUInt64();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 40: {
                id_ = input.readUInt64();
                bitField0_ |= 0x00000010;
                break;
              } // case 40
              case 56: {
                forLinkmic_ = input.readBool();
                bitField0_ |= 0x00000020;
                break;
              } // case 56
              case 64: {
                doodle_ = input.readBool();
                bitField0_ |= 0x00000040;
                break;
              } // case 64
              case 72: {
                forFansclub_ = input.readBool();
                bitField0_ |= 0x00000080;
                break;
              } // case 72
              case 80: {
                combo_ = input.readBool();
                bitField0_ |= 0x00000100;
                break;
              } // case 80
              case 88: {
                type_ = input.readUInt32();
                bitField0_ |= 0x00000200;
                break;
              } // case 88
              case 96: {
                diamondCount_ = input.readUInt32();
                bitField0_ |= 0x00000400;
                break;
              } // case 96
              case 104: {
                isDisplayedOnPanel_ = input.readBool();
                bitField0_ |= 0x00000800;
                break;
              } // case 104
              case 112: {
                primaryEffectId_ = input.readUInt64();
                bitField0_ |= 0x00001000;
                break;
              } // case 112
              case 122: {
                input.readMessage(
                    getGiftLabelIconFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00002000;
                break;
              } // case 122
              case 130: {
                name_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00004000;
                break;
              } // case 130
              case 138: {
                region_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00008000;
                break;
              } // case 138
              case 146: {
                manual_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00010000;
                break;
              } // case 146
              case 152: {
                forCustom_ = input.readBool();
                bitField0_ |= 0x00020000;
                break;
              } // case 152
              case 162: {
                com.google.protobuf.MapEntry<java.lang.String, java.lang.Long>
                specialEffectsMap__ = input.readMessage(
                    SpecialEffectsMapDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                internalGetMutableSpecialEffectsMap().getMutableMap().put(
                    specialEffectsMap__.getKey(), specialEffectsMap__.getValue());
                bitField0_ |= 0x00040000;
                break;
              } // case 162
              case 170: {
                input.readMessage(
                    getIconFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00080000;
                break;
              } // case 170
              case 176: {
                actionType_ = input.readUInt32();
                bitField0_ |= 0x00100000;
                break;
              } // case 176
              case 184: {
                watermelonSeeds_ = input.readInt32();
                bitField0_ |= 0x00200000;
                break;
              } // case 184
              case 194: {
                goldEffect_ = input.readStringRequireUtf8();
                bitField0_ |= 0x00400000;
                break;
              } // case 194
              case 208: {
                goldenBeans_ = input.readInt64();
                bitField0_ |= 0x00800000;
                break;
              } // case 208
              case 216: {
                honorLevel_ = input.readInt64();
                bitField0_ |= 0x01000000;
                break;
              } // case 216
              case 224: {
                itemType_ = input.readInt32();
                bitField0_ |= 0x02000000;
                break;
              } // case 224
              case 234: {
                schemeUrl_ = input.readStringRequireUtf8();
                bitField0_ |= 0x04000000;
                break;
              } // case 234
              case 250: {
                eventName_ = input.readStringRequireUtf8();
                bitField0_ |= 0x08000000;
                break;
              } // case 250
              case 256: {
                nobleLevel_ = input.readInt64();
                bitField0_ |= 0x10000000;
                break;
              } // case 256
              case 266: {
                guideUrl_ = input.readStringRequireUtf8();
                bitField0_ |= 0x20000000;
                break;
              } // case 266
              case 272: {
                punishMedicine_ = input.readBool();
                bitField0_ |= 0x40000000;
                break;
              } // case 272
              case 280: {
                forPortal_ = input.readBool();
                bitField0_ |= 0x80000000;
                break;
              } // case 280
              case 290: {
                businessText_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00000001;
                break;
              } // case 290
              case 296: {
                cnyGift_ = input.readBool();
                bitField1_ |= 0x00000002;
                break;
              } // case 296
              case 304: {
                appId_ = input.readInt64();
                bitField1_ |= 0x00000004;
                break;
              } // case 304
              case 312: {
                vipLevel_ = input.readInt64();
                bitField1_ |= 0x00000008;
                break;
              } // case 312
              case 320: {
                isGray_ = input.readBool();
                bitField1_ |= 0x00000010;
                break;
              } // case 320
              case 330: {
                graySchemeUrl_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00000020;
                break;
              } // case 330
              case 336: {
                giftScene_ = input.readInt64();
                bitField1_ |= 0x00000040;
                break;
              } // case 336
              case 354: {
                java.lang.String s = input.readStringRequireUtf8();
                ensureTriggerWordsIsMutable();
                triggerWords_.add(s);
                break;
              } // case 354
              case 368: {
                forFirstRecharge_ = input.readBool();
                bitField1_ |= 0x00000100;
                break;
              } // case 368
              case 378: {
                input.readMessage(
                    getDynamicImgForSelectedFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00000200;
                break;
              } // case 378
              case 384: {
                afterSendAction_ = input.readInt32();
                bitField1_ |= 0x00000400;
                break;
              } // case 384
              case 392: {
                giftOfflineTime_ = input.readInt64();
                bitField1_ |= 0x00000800;
                break;
              } // case 392
              case 402: {
                topBarText_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00001000;
                break;
              } // case 402
              case 410: {
                input.readMessage(
                    getTopRightAvatarFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField1_ |= 0x00002000;
                break;
              } // case 410
              case 418: {
                bannerSchemeUrl_ = input.readStringRequireUtf8();
                bitField1_ |= 0x00004000;
                break;
              } // case 418
              case 424: {
                isLocked_ = input.readBool();
                bitField1_ |= 0x00008000;
                break;
              } // case 424
              case 432: {
                reqExtraType_ = input.readInt64();
                bitField1_ |= 0x00010000;
                break;
              } // case 432
              case 440: {
                long v = input.readInt64();
                ensureAssetIdsIsMutable();
                assetIds_.addLong(v);
                break;
              } // case 440
              case 442: {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                ensureAssetIdsIsMutable();
                while (input.getBytesUntilLimit() > 0) {
                  assetIds_.addLong(input.readInt64());
                }
                input.popLimit(limit);
                break;
              } // case 442
              case 464: {
                needSweepLightCount_ = input.readInt32();
                bitField1_ |= 0x00040000;
                break;
              } // case 464
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;
      private int bitField1_;

      private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image image_;
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> imageBuilder_;
      /**
       * <code>.Image image = 1;</code>
       * @return Whether the image field is set.
       */
      public boolean hasImage() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>.Image image = 1;</code>
       * @return The image.
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getImage() {
        if (imageBuilder_ == null) {
          return image_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_;
        } else {
          return imageBuilder_.getMessage();
        }
      }
      /**
       * <code>.Image image = 1;</code>
       */
      public Builder setImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (imageBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          image_ = value;
        } else {
          imageBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.Image image = 1;</code>
       */
      public Builder setImage(
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) {
        if (imageBuilder_ == null) {
          image_ = builderForValue.build();
        } else {
          imageBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.Image image = 1;</code>
       */
      public Builder mergeImage(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (imageBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0) &&
            image_ != null &&
            image_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) {
            getImageBuilder().mergeFrom(value);
          } else {
            image_ = value;
          }
        } else {
          imageBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>.Image image = 1;</code>
       */
      public Builder clearImage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        image_ = null;
        if (imageBuilder_ != null) {
          imageBuilder_.dispose();
          imageBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.Image image = 1;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getImageBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getImageFieldBuilder().getBuilder();
      }
      /**
       * <code>.Image image = 1;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getImageOrBuilder() {
        if (imageBuilder_ != null) {
          return imageBuilder_.getMessageOrBuilder();
        } else {
          return image_ == null ?
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : image_;
        }
      }
      /**
       * <code>.Image image = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> 
          getImageFieldBuilder() {
        if (imageBuilder_ == null) {
          imageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>(
                  getImage(),
                  getParentForChildren(),
                  isClean());
          image_ = null;
        }
        return imageBuilder_;
      }

      private java.lang.Object describe_ = "";
      /**
       * <code>string describe = 2;</code>
       * @return The describe.
       */
      public java.lang.String getDescribe() {
        java.lang.Object ref = describe_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          describe_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string describe = 2;</code>
       * @return The bytes for describe.
       */
      public com.google.protobuf.ByteString
          getDescribeBytes() {
        java.lang.Object ref = describe_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          describe_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string describe = 2;</code>
       * @param value The describe to set.
       * @return This builder for chaining.
       */
      public Builder setDescribe(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        describe_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>string describe = 2;</code>
       * @return This builder for chaining.
       */
      public Builder clearDescribe() {
        describe_ = getDefaultInstance().getDescribe();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * <code>string describe = 2;</code>
       * @param value The bytes for describe to set.
       * @return This builder for chaining.
       */
      public Builder setDescribeBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        describe_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private boolean notify_ ;
      /**
       * <code>bool notify = 3;</code>
       * @return The notify.
       */
      @java.lang.Override
      public boolean getNotify() {
        return notify_;
      }
      /**
       * <code>bool notify = 3;</code>
       * @param value The notify to set.
       * @return This builder for chaining.
       */
      public Builder setNotify(boolean value) {

        notify_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>bool notify = 3;</code>
       * @return This builder for chaining.
       */
      public Builder clearNotify() {
        bitField0_ = (bitField0_ & ~0x00000004);
        notify_ = false;
        onChanged();
        return this;
      }

      private long duration_ ;
      /**
       * <code>uint64 duration = 4;</code>
       * @return The duration.
       */
      @java.lang.Override
      public long getDuration() {
        return duration_;
      }
      /**
       * <code>uint64 duration = 4;</code>
       * @param value The duration to set.
       * @return This builder for chaining.
       */
      public Builder setDuration(long value) {

        duration_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 duration = 4;</code>
       * @return This builder for chaining.
       */
      public Builder clearDuration() {
        bitField0_ = (bitField0_ & ~0x00000008);
        duration_ = 0L;
        onChanged();
        return this;
      }

      private long id_ ;
      /**
       * <code>uint64 id = 5;</code>
       * @return The id.
       */
      @java.lang.Override
      public long getId() {
        return id_;
      }
      /**
       * <code>uint64 id = 5;</code>
       * @param value The id to set.
       * @return This builder for chaining.
       */
      public Builder setId(long value) {

        id_ = value;
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 id = 5;</code>
       * @return This builder for chaining.
       */
      public Builder clearId() {
        bitField0_ = (bitField0_ & ~0x00000010);
        id_ = 0L;
        onChanged();
        return this;
      }

      private boolean forLinkmic_ ;
      /**
       * <pre>
       * GiftStructFansClubInfo fansclubInfo = 6;
       * </pre>
       *
       * <code>bool for_linkmic = 7;</code>
       * @return The forLinkmic.
       */
      @java.lang.Override
      public boolean getForLinkmic() {
        return forLinkmic_;
      }
      /**
       * <pre>
       * GiftStructFansClubInfo fansclubInfo = 6;
       * </pre>
       *
       * <code>bool for_linkmic = 7;</code>
       * @param value The forLinkmic to set.
       * @return This builder for chaining.
       */
      public Builder setForLinkmic(boolean value) {

        forLinkmic_ = value;
        bitField0_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GiftStructFansClubInfo fansclubInfo = 6;
       * </pre>
       *
       * <code>bool for_linkmic = 7;</code>
       * @return This builder for chaining.
       */
      public Builder clearForLinkmic() {
        bitField0_ = (bitField0_ & ~0x00000020);
        forLinkmic_ = false;
        onChanged();
        return this;
      }

      private boolean doodle_ ;
      /**
       * <code>bool doodle = 8;</code>
       * @return The doodle.
       */
      @java.lang.Override
      public boolean getDoodle() {
        return doodle_;
      }
      /**
       * <code>bool doodle = 8;</code>
       * @param value The doodle to set.
       * @return This builder for chaining.
       */
      public Builder setDoodle(boolean value) {

        doodle_ = value;
        bitField0_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>bool doodle = 8;</code>
       * @return This builder for chaining.
       */
      public Builder clearDoodle() {
        bitField0_ = (bitField0_ & ~0x00000040);
        doodle_ = false;
        onChanged();
        return this;
      }

      private boolean forFansclub_ ;
      /**
       * <code>bool for_fansclub = 9;</code>
       * @return The forFansclub.
       */
      @java.lang.Override
      public boolean getForFansclub() {
        return forFansclub_;
      }
      /**
       * <code>bool for_fansclub = 9;</code>
       * @param value The forFansclub to set.
       * @return This builder for chaining.
       */
      public Builder setForFansclub(boolean value) {

        forFansclub_ = value;
        bitField0_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <code>bool for_fansclub = 9;</code>
       * @return This builder for chaining.
       */
      public Builder clearForFansclub() {
        bitField0_ = (bitField0_ & ~0x00000080);
        forFansclub_ = false;
        onChanged();
        return this;
      }

      private boolean combo_ ;
      /**
       * <code>bool combo = 10;</code>
       * @return The combo.
       */
      @java.lang.Override
      public boolean getCombo() {
        return combo_;
      }
      /**
       * <code>bool combo = 10;</code>
       * @param value The combo to set.
       * @return This builder for chaining.
       */
      public Builder setCombo(boolean value) {

        combo_ = value;
        bitField0_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <code>bool combo = 10;</code>
       * @return This builder for chaining.
       */
      public Builder clearCombo() {
        bitField0_ = (bitField0_ & ~0x00000100);
        combo_ = false;
        onChanged();
        return this;
      }

      private int type_ ;
      /**
       * <code>uint32 type = 11;</code>
       * @return The type.
       */
      @java.lang.Override
      public int getType() {
        return type_;
      }
      /**
       * <code>uint32 type = 11;</code>
       * @param value The type to set.
       * @return This builder for chaining.
       */
      public Builder setType(int value) {

        type_ = value;
        bitField0_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 type = 11;</code>
       * @return This builder for chaining.
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000200);
        type_ = 0;
        onChanged();
        return this;
      }

      private int diamondCount_ ;
      /**
       * <code>uint32 diamond_count = 12;</code>
       * @return The diamondCount.
       */
      @java.lang.Override
      public int getDiamondCount() {
        return diamondCount_;
      }
      /**
       * <code>uint32 diamond_count = 12;</code>
       * @param value The diamondCount to set.
       * @return This builder for chaining.
       */
      public Builder setDiamondCount(int value) {

        diamondCount_ = value;
        bitField0_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 diamond_count = 12;</code>
       * @return This builder for chaining.
       */
      public Builder clearDiamondCount() {
        bitField0_ = (bitField0_ & ~0x00000400);
        diamondCount_ = 0;
        onChanged();
        return this;
      }

      private boolean isDisplayedOnPanel_ ;
      /**
       * <code>bool is_displayed_on_panel = 13;</code>
       * @return The isDisplayedOnPanel.
       */
      @java.lang.Override
      public boolean getIsDisplayedOnPanel() {
        return isDisplayedOnPanel_;
      }
      /**
       * <code>bool is_displayed_on_panel = 13;</code>
       * @param value The isDisplayedOnPanel to set.
       * @return This builder for chaining.
       */
      public Builder setIsDisplayedOnPanel(boolean value) {

        isDisplayedOnPanel_ = value;
        bitField0_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>bool is_displayed_on_panel = 13;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsDisplayedOnPanel() {
        bitField0_ = (bitField0_ & ~0x00000800);
        isDisplayedOnPanel_ = false;
        onChanged();
        return this;
      }

      private long primaryEffectId_ ;
      /**
       * <code>uint64 primary_effect_id = 14;</code>
       * @return The primaryEffectId.
       */
      @java.lang.Override
      public long getPrimaryEffectId() {
        return primaryEffectId_;
      }
      /**
       * <code>uint64 primary_effect_id = 14;</code>
       * @param value The primaryEffectId to set.
       * @return This builder for chaining.
       */
      public Builder setPrimaryEffectId(long value) {

        primaryEffectId_ = value;
        bitField0_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>uint64 primary_effect_id = 14;</code>
       * @return This builder for chaining.
       */
      public Builder clearPrimaryEffectId() {
        bitField0_ = (bitField0_ & ~0x00001000);
        primaryEffectId_ = 0L;
        onChanged();
        return this;
      }

      private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image giftLabelIcon_;
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> giftLabelIconBuilder_;
      /**
       * <code>.Image gift_label_icon = 15;</code>
       * @return Whether the giftLabelIcon field is set.
       */
      public boolean hasGiftLabelIcon() {
        return ((bitField0_ & 0x00002000) != 0);
      }
      /**
       * <code>.Image gift_label_icon = 15;</code>
       * @return The giftLabelIcon.
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getGiftLabelIcon() {
        if (giftLabelIconBuilder_ == null) {
          return giftLabelIcon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_;
        } else {
          return giftLabelIconBuilder_.getMessage();
        }
      }
      /**
       * <code>.Image gift_label_icon = 15;</code>
       */
      public Builder setGiftLabelIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (giftLabelIconBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          giftLabelIcon_ = value;
        } else {
          giftLabelIconBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>.Image gift_label_icon = 15;</code>
       */
      public Builder setGiftLabelIcon(
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) {
        if (giftLabelIconBuilder_ == null) {
          giftLabelIcon_ = builderForValue.build();
        } else {
          giftLabelIconBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>.Image gift_label_icon = 15;</code>
       */
      public Builder mergeGiftLabelIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (giftLabelIconBuilder_ == null) {
          if (((bitField0_ & 0x00002000) != 0) &&
            giftLabelIcon_ != null &&
            giftLabelIcon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) {
            getGiftLabelIconBuilder().mergeFrom(value);
          } else {
            giftLabelIcon_ = value;
          }
        } else {
          giftLabelIconBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>.Image gift_label_icon = 15;</code>
       */
      public Builder clearGiftLabelIcon() {
        bitField0_ = (bitField0_ & ~0x00002000);
        giftLabelIcon_ = null;
        if (giftLabelIconBuilder_ != null) {
          giftLabelIconBuilder_.dispose();
          giftLabelIconBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.Image gift_label_icon = 15;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getGiftLabelIconBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getGiftLabelIconFieldBuilder().getBuilder();
      }
      /**
       * <code>.Image gift_label_icon = 15;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getGiftLabelIconOrBuilder() {
        if (giftLabelIconBuilder_ != null) {
          return giftLabelIconBuilder_.getMessageOrBuilder();
        } else {
          return giftLabelIcon_ == null ?
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : giftLabelIcon_;
        }
      }
      /**
       * <code>.Image gift_label_icon = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> 
          getGiftLabelIconFieldBuilder() {
        if (giftLabelIconBuilder_ == null) {
          giftLabelIconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>(
                  getGiftLabelIcon(),
                  getParentForChildren(),
                  isClean());
          giftLabelIcon_ = null;
        }
        return giftLabelIconBuilder_;
      }

      private java.lang.Object name_ = "";
      /**
       * <code>string name = 16;</code>
       * @return The name.
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          name_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string name = 16;</code>
       * @return The bytes for name.
       */
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string name = 16;</code>
       * @param value The name to set.
       * @return This builder for chaining.
       */
      public Builder setName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        name_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>string name = 16;</code>
       * @return This builder for chaining.
       */
      public Builder clearName() {
        name_ = getDefaultInstance().getName();
        bitField0_ = (bitField0_ & ~0x00004000);
        onChanged();
        return this;
      }
      /**
       * <code>string name = 16;</code>
       * @param value The bytes for name to set.
       * @return This builder for chaining.
       */
      public Builder setNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        name_ = value;
        bitField0_ |= 0x00004000;
        onChanged();
        return this;
      }

      private java.lang.Object region_ = "";
      /**
       * <code>string region = 17;</code>
       * @return The region.
       */
      public java.lang.String getRegion() {
        java.lang.Object ref = region_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          region_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string region = 17;</code>
       * @return The bytes for region.
       */
      public com.google.protobuf.ByteString
          getRegionBytes() {
        java.lang.Object ref = region_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          region_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string region = 17;</code>
       * @param value The region to set.
       * @return This builder for chaining.
       */
      public Builder setRegion(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        region_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>string region = 17;</code>
       * @return This builder for chaining.
       */
      public Builder clearRegion() {
        region_ = getDefaultInstance().getRegion();
        bitField0_ = (bitField0_ & ~0x00008000);
        onChanged();
        return this;
      }
      /**
       * <code>string region = 17;</code>
       * @param value The bytes for region to set.
       * @return This builder for chaining.
       */
      public Builder setRegionBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        region_ = value;
        bitField0_ |= 0x00008000;
        onChanged();
        return this;
      }

      private java.lang.Object manual_ = "";
      /**
       * <code>string manual = 18;</code>
       * @return The manual.
       */
      public java.lang.String getManual() {
        java.lang.Object ref = manual_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          manual_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string manual = 18;</code>
       * @return The bytes for manual.
       */
      public com.google.protobuf.ByteString
          getManualBytes() {
        java.lang.Object ref = manual_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          manual_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string manual = 18;</code>
       * @param value The manual to set.
       * @return This builder for chaining.
       */
      public Builder setManual(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        manual_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>string manual = 18;</code>
       * @return This builder for chaining.
       */
      public Builder clearManual() {
        manual_ = getDefaultInstance().getManual();
        bitField0_ = (bitField0_ & ~0x00010000);
        onChanged();
        return this;
      }
      /**
       * <code>string manual = 18;</code>
       * @param value The bytes for manual to set.
       * @return This builder for chaining.
       */
      public Builder setManualBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        manual_ = value;
        bitField0_ |= 0x00010000;
        onChanged();
        return this;
      }

      private boolean forCustom_ ;
      /**
       * <code>bool for_custom = 19;</code>
       * @return The forCustom.
       */
      @java.lang.Override
      public boolean getForCustom() {
        return forCustom_;
      }
      /**
       * <code>bool for_custom = 19;</code>
       * @param value The forCustom to set.
       * @return This builder for chaining.
       */
      public Builder setForCustom(boolean value) {

        forCustom_ = value;
        bitField0_ |= 0x00020000;
        onChanged();
        return this;
      }
      /**
       * <code>bool for_custom = 19;</code>
       * @return This builder for chaining.
       */
      public Builder clearForCustom() {
        bitField0_ = (bitField0_ & ~0x00020000);
        forCustom_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
          java.lang.String, java.lang.Long> specialEffectsMap_;
      private com.google.protobuf.MapField<java.lang.String, java.lang.Long>
          internalGetSpecialEffectsMap() {
        if (specialEffectsMap_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              SpecialEffectsMapDefaultEntryHolder.defaultEntry);
        }
        return specialEffectsMap_;
      }
      private com.google.protobuf.MapField<java.lang.String, java.lang.Long>
          internalGetMutableSpecialEffectsMap() {
        if (specialEffectsMap_ == null) {
          specialEffectsMap_ = com.google.protobuf.MapField.newMapField(
              SpecialEffectsMapDefaultEntryHolder.defaultEntry);
        }
        if (!specialEffectsMap_.isMutable()) {
          specialEffectsMap_ = specialEffectsMap_.copy();
        }
        bitField0_ |= 0x00040000;
        onChanged();
        return specialEffectsMap_;
      }
      public int getSpecialEffectsMapCount() {
        return internalGetSpecialEffectsMap().getMap().size();
      }
      /**
       * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
       */
      @java.lang.Override
      public boolean containsSpecialEffectsMap(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        return internalGetSpecialEffectsMap().getMap().containsKey(key);
      }
      /**
       * Use {@link #getSpecialEffectsMapMap()} instead.
       */
      @java.lang.Override
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.Long> getSpecialEffectsMap() {
        return getSpecialEffectsMapMap();
      }
      /**
       * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
       */
      @java.lang.Override
      public java.util.Map<java.lang.String, java.lang.Long> getSpecialEffectsMapMap() {
        return internalGetSpecialEffectsMap().getMap();
      }
      /**
       * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
       */
      @java.lang.Override
      public long getSpecialEffectsMapOrDefault(
          java.lang.String key,
          long defaultValue) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.Long> map =
            internalGetSpecialEffectsMap().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
       */
      @java.lang.Override
      public long getSpecialEffectsMapOrThrow(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        java.util.Map<java.lang.String, java.lang.Long> map =
            internalGetSpecialEffectsMap().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }
      public Builder clearSpecialEffectsMap() {
        bitField0_ = (bitField0_ & ~0x00040000);
        internalGetMutableSpecialEffectsMap().getMutableMap()
            .clear();
        return this;
      }
      /**
       * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
       */
      public Builder removeSpecialEffectsMap(
          java.lang.String key) {
        if (key == null) { throw new NullPointerException("map key"); }
        internalGetMutableSpecialEffectsMap().getMutableMap()
            .remove(key);
        return this;
      }
      /**
       * Use alternate mutation accessors instead.
       */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.Long>
          getMutableSpecialEffectsMap() {
        bitField0_ |= 0x00040000;
        return internalGetMutableSpecialEffectsMap().getMutableMap();
      }
      /**
       * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
       */
      public Builder putSpecialEffectsMap(
          java.lang.String key,
          long value) {
        if (key == null) { throw new NullPointerException("map key"); }

        internalGetMutableSpecialEffectsMap().getMutableMap()
            .put(key, value);
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       * <code>map&lt;string, int64&gt; specialEffectsMap = 20;</code>
       */
      public Builder putAllSpecialEffectsMap(
          java.util.Map<java.lang.String, java.lang.Long> values) {
        internalGetMutableSpecialEffectsMap().getMutableMap()
            .putAll(values);
        bitField0_ |= 0x00040000;
        return this;
      }

      private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image icon_;
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> iconBuilder_;
      /**
       * <code>.Image icon = 21;</code>
       * @return Whether the icon field is set.
       */
      public boolean hasIcon() {
        return ((bitField0_ & 0x00080000) != 0);
      }
      /**
       * <code>.Image icon = 21;</code>
       * @return The icon.
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getIcon() {
        if (iconBuilder_ == null) {
          return icon_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_;
        } else {
          return iconBuilder_.getMessage();
        }
      }
      /**
       * <code>.Image icon = 21;</code>
       */
      public Builder setIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (iconBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          icon_ = value;
        } else {
          iconBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>.Image icon = 21;</code>
       */
      public Builder setIcon(
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) {
        if (iconBuilder_ == null) {
          icon_ = builderForValue.build();
        } else {
          iconBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>.Image icon = 21;</code>
       */
      public Builder mergeIcon(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (iconBuilder_ == null) {
          if (((bitField0_ & 0x00080000) != 0) &&
            icon_ != null &&
            icon_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) {
            getIconBuilder().mergeFrom(value);
          } else {
            icon_ = value;
          }
        } else {
          iconBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00080000;
        onChanged();
        return this;
      }
      /**
       * <code>.Image icon = 21;</code>
       */
      public Builder clearIcon() {
        bitField0_ = (bitField0_ & ~0x00080000);
        icon_ = null;
        if (iconBuilder_ != null) {
          iconBuilder_.dispose();
          iconBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.Image icon = 21;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getIconBuilder() {
        bitField0_ |= 0x00080000;
        onChanged();
        return getIconFieldBuilder().getBuilder();
      }
      /**
       * <code>.Image icon = 21;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getIconOrBuilder() {
        if (iconBuilder_ != null) {
          return iconBuilder_.getMessageOrBuilder();
        } else {
          return icon_ == null ?
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : icon_;
        }
      }
      /**
       * <code>.Image icon = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> 
          getIconFieldBuilder() {
        if (iconBuilder_ == null) {
          iconBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>(
                  getIcon(),
                  getParentForChildren(),
                  isClean());
          icon_ = null;
        }
        return iconBuilder_;
      }

      private int actionType_ ;
      /**
       * <code>uint32 action_type = 22;</code>
       * @return The actionType.
       */
      @java.lang.Override
      public int getActionType() {
        return actionType_;
      }
      /**
       * <code>uint32 action_type = 22;</code>
       * @param value The actionType to set.
       * @return This builder for chaining.
       */
      public Builder setActionType(int value) {

        actionType_ = value;
        bitField0_ |= 0x00100000;
        onChanged();
        return this;
      }
      /**
       * <code>uint32 action_type = 22;</code>
       * @return This builder for chaining.
       */
      public Builder clearActionType() {
        bitField0_ = (bitField0_ & ~0x00100000);
        actionType_ = 0;
        onChanged();
        return this;
      }

      private int watermelonSeeds_ ;
      /**
       * <code>int32 watermelonSeeds = 23;</code>
       * @return The watermelonSeeds.
       */
      @java.lang.Override
      public int getWatermelonSeeds() {
        return watermelonSeeds_;
      }
      /**
       * <code>int32 watermelonSeeds = 23;</code>
       * @param value The watermelonSeeds to set.
       * @return This builder for chaining.
       */
      public Builder setWatermelonSeeds(int value) {

        watermelonSeeds_ = value;
        bitField0_ |= 0x00200000;
        onChanged();
        return this;
      }
      /**
       * <code>int32 watermelonSeeds = 23;</code>
       * @return This builder for chaining.
       */
      public Builder clearWatermelonSeeds() {
        bitField0_ = (bitField0_ & ~0x00200000);
        watermelonSeeds_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object goldEffect_ = "";
      /**
       * <code>string goldEffect = 24;</code>
       * @return The goldEffect.
       */
      public java.lang.String getGoldEffect() {
        java.lang.Object ref = goldEffect_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          goldEffect_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string goldEffect = 24;</code>
       * @return The bytes for goldEffect.
       */
      public com.google.protobuf.ByteString
          getGoldEffectBytes() {
        java.lang.Object ref = goldEffect_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          goldEffect_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string goldEffect = 24;</code>
       * @param value The goldEffect to set.
       * @return This builder for chaining.
       */
      public Builder setGoldEffect(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        goldEffect_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }
      /**
       * <code>string goldEffect = 24;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoldEffect() {
        goldEffect_ = getDefaultInstance().getGoldEffect();
        bitField0_ = (bitField0_ & ~0x00400000);
        onChanged();
        return this;
      }
      /**
       * <code>string goldEffect = 24;</code>
       * @param value The bytes for goldEffect to set.
       * @return This builder for chaining.
       */
      public Builder setGoldEffectBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        goldEffect_ = value;
        bitField0_ |= 0x00400000;
        onChanged();
        return this;
      }

      private long goldenBeans_ ;
      /**
       * <pre>
       * repeated LuckyMoneyGiftMeta subs = 25;
       * </pre>
       *
       * <code>int64 goldenBeans = 26;</code>
       * @return The goldenBeans.
       */
      @java.lang.Override
      public long getGoldenBeans() {
        return goldenBeans_;
      }
      /**
       * <pre>
       * repeated LuckyMoneyGiftMeta subs = 25;
       * </pre>
       *
       * <code>int64 goldenBeans = 26;</code>
       * @param value The goldenBeans to set.
       * @return This builder for chaining.
       */
      public Builder setGoldenBeans(long value) {

        goldenBeans_ = value;
        bitField0_ |= 0x00800000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * repeated LuckyMoneyGiftMeta subs = 25;
       * </pre>
       *
       * <code>int64 goldenBeans = 26;</code>
       * @return This builder for chaining.
       */
      public Builder clearGoldenBeans() {
        bitField0_ = (bitField0_ & ~0x00800000);
        goldenBeans_ = 0L;
        onChanged();
        return this;
      }

      private long honorLevel_ ;
      /**
       * <code>int64 honorLevel = 27;</code>
       * @return The honorLevel.
       */
      @java.lang.Override
      public long getHonorLevel() {
        return honorLevel_;
      }
      /**
       * <code>int64 honorLevel = 27;</code>
       * @param value The honorLevel to set.
       * @return This builder for chaining.
       */
      public Builder setHonorLevel(long value) {

        honorLevel_ = value;
        bitField0_ |= 0x01000000;
        onChanged();
        return this;
      }
      /**
       * <code>int64 honorLevel = 27;</code>
       * @return This builder for chaining.
       */
      public Builder clearHonorLevel() {
        bitField0_ = (bitField0_ & ~0x01000000);
        honorLevel_ = 0L;
        onChanged();
        return this;
      }

      private int itemType_ ;
      /**
       * <code>int32 itemType = 28;</code>
       * @return The itemType.
       */
      @java.lang.Override
      public int getItemType() {
        return itemType_;
      }
      /**
       * <code>int32 itemType = 28;</code>
       * @param value The itemType to set.
       * @return This builder for chaining.
       */
      public Builder setItemType(int value) {

        itemType_ = value;
        bitField0_ |= 0x02000000;
        onChanged();
        return this;
      }
      /**
       * <code>int32 itemType = 28;</code>
       * @return This builder for chaining.
       */
      public Builder clearItemType() {
        bitField0_ = (bitField0_ & ~0x02000000);
        itemType_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object schemeUrl_ = "";
      /**
       * <code>string schemeUrl = 29;</code>
       * @return The schemeUrl.
       */
      public java.lang.String getSchemeUrl() {
        java.lang.Object ref = schemeUrl_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          schemeUrl_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string schemeUrl = 29;</code>
       * @return The bytes for schemeUrl.
       */
      public com.google.protobuf.ByteString
          getSchemeUrlBytes() {
        java.lang.Object ref = schemeUrl_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          schemeUrl_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string schemeUrl = 29;</code>
       * @param value The schemeUrl to set.
       * @return This builder for chaining.
       */
      public Builder setSchemeUrl(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        schemeUrl_ = value;
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }
      /**
       * <code>string schemeUrl = 29;</code>
       * @return This builder for chaining.
       */
      public Builder clearSchemeUrl() {
        schemeUrl_ = getDefaultInstance().getSchemeUrl();
        bitField0_ = (bitField0_ & ~0x04000000);
        onChanged();
        return this;
      }
      /**
       * <code>string schemeUrl = 29;</code>
       * @param value The bytes for schemeUrl to set.
       * @return This builder for chaining.
       */
      public Builder setSchemeUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        schemeUrl_ = value;
        bitField0_ |= 0x04000000;
        onChanged();
        return this;
      }

      private java.lang.Object eventName_ = "";
      /**
       * <pre>
       * GiftPanelOperation giftOperation = 30;
       * </pre>
       *
       * <code>string eventName = 31;</code>
       * @return The eventName.
       */
      public java.lang.String getEventName() {
        java.lang.Object ref = eventName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          eventName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <pre>
       * GiftPanelOperation giftOperation = 30;
       * </pre>
       *
       * <code>string eventName = 31;</code>
       * @return The bytes for eventName.
       */
      public com.google.protobuf.ByteString
          getEventNameBytes() {
        java.lang.Object ref = eventName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          eventName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <pre>
       * GiftPanelOperation giftOperation = 30;
       * </pre>
       *
       * <code>string eventName = 31;</code>
       * @param value The eventName to set.
       * @return This builder for chaining.
       */
      public Builder setEventName(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        eventName_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GiftPanelOperation giftOperation = 30;
       * </pre>
       *
       * <code>string eventName = 31;</code>
       * @return This builder for chaining.
       */
      public Builder clearEventName() {
        eventName_ = getDefaultInstance().getEventName();
        bitField0_ = (bitField0_ & ~0x08000000);
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GiftPanelOperation giftOperation = 30;
       * </pre>
       *
       * <code>string eventName = 31;</code>
       * @param value The bytes for eventName to set.
       * @return This builder for chaining.
       */
      public Builder setEventNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        eventName_ = value;
        bitField0_ |= 0x08000000;
        onChanged();
        return this;
      }

      private long nobleLevel_ ;
      /**
       * <code>int64 nobleLevel = 32;</code>
       * @return The nobleLevel.
       */
      @java.lang.Override
      public long getNobleLevel() {
        return nobleLevel_;
      }
      /**
       * <code>int64 nobleLevel = 32;</code>
       * @param value The nobleLevel to set.
       * @return This builder for chaining.
       */
      public Builder setNobleLevel(long value) {

        nobleLevel_ = value;
        bitField0_ |= 0x10000000;
        onChanged();
        return this;
      }
      /**
       * <code>int64 nobleLevel = 32;</code>
       * @return This builder for chaining.
       */
      public Builder clearNobleLevel() {
        bitField0_ = (bitField0_ & ~0x10000000);
        nobleLevel_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object guideUrl_ = "";
      /**
       * <code>string guideUrl = 33;</code>
       * @return The guideUrl.
       */
      public java.lang.String getGuideUrl() {
        java.lang.Object ref = guideUrl_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          guideUrl_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string guideUrl = 33;</code>
       * @return The bytes for guideUrl.
       */
      public com.google.protobuf.ByteString
          getGuideUrlBytes() {
        java.lang.Object ref = guideUrl_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          guideUrl_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string guideUrl = 33;</code>
       * @param value The guideUrl to set.
       * @return This builder for chaining.
       */
      public Builder setGuideUrl(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        guideUrl_ = value;
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }
      /**
       * <code>string guideUrl = 33;</code>
       * @return This builder for chaining.
       */
      public Builder clearGuideUrl() {
        guideUrl_ = getDefaultInstance().getGuideUrl();
        bitField0_ = (bitField0_ & ~0x20000000);
        onChanged();
        return this;
      }
      /**
       * <code>string guideUrl = 33;</code>
       * @param value The bytes for guideUrl to set.
       * @return This builder for chaining.
       */
      public Builder setGuideUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        guideUrl_ = value;
        bitField0_ |= 0x20000000;
        onChanged();
        return this;
      }

      private boolean punishMedicine_ ;
      /**
       * <code>bool punishMedicine = 34;</code>
       * @return The punishMedicine.
       */
      @java.lang.Override
      public boolean getPunishMedicine() {
        return punishMedicine_;
      }
      /**
       * <code>bool punishMedicine = 34;</code>
       * @param value The punishMedicine to set.
       * @return This builder for chaining.
       */
      public Builder setPunishMedicine(boolean value) {

        punishMedicine_ = value;
        bitField0_ |= 0x40000000;
        onChanged();
        return this;
      }
      /**
       * <code>bool punishMedicine = 34;</code>
       * @return This builder for chaining.
       */
      public Builder clearPunishMedicine() {
        bitField0_ = (bitField0_ & ~0x40000000);
        punishMedicine_ = false;
        onChanged();
        return this;
      }

      private boolean forPortal_ ;
      /**
       * <code>bool forPortal = 35;</code>
       * @return The forPortal.
       */
      @java.lang.Override
      public boolean getForPortal() {
        return forPortal_;
      }
      /**
       * <code>bool forPortal = 35;</code>
       * @param value The forPortal to set.
       * @return This builder for chaining.
       */
      public Builder setForPortal(boolean value) {

        forPortal_ = value;
        bitField0_ |= 0x80000000;
        onChanged();
        return this;
      }
      /**
       * <code>bool forPortal = 35;</code>
       * @return This builder for chaining.
       */
      public Builder clearForPortal() {
        bitField0_ = (bitField0_ & ~0x80000000);
        forPortal_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object businessText_ = "";
      /**
       * <code>string businessText = 36;</code>
       * @return The businessText.
       */
      public java.lang.String getBusinessText() {
        java.lang.Object ref = businessText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          businessText_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string businessText = 36;</code>
       * @return The bytes for businessText.
       */
      public com.google.protobuf.ByteString
          getBusinessTextBytes() {
        java.lang.Object ref = businessText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          businessText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string businessText = 36;</code>
       * @param value The businessText to set.
       * @return This builder for chaining.
       */
      public Builder setBusinessText(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        businessText_ = value;
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * <code>string businessText = 36;</code>
       * @return This builder for chaining.
       */
      public Builder clearBusinessText() {
        businessText_ = getDefaultInstance().getBusinessText();
        bitField1_ = (bitField1_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>string businessText = 36;</code>
       * @param value The bytes for businessText to set.
       * @return This builder for chaining.
       */
      public Builder setBusinessTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        businessText_ = value;
        bitField1_ |= 0x00000001;
        onChanged();
        return this;
      }

      private boolean cnyGift_ ;
      /**
       * <code>bool cnyGift = 37;</code>
       * @return The cnyGift.
       */
      @java.lang.Override
      public boolean getCnyGift() {
        return cnyGift_;
      }
      /**
       * <code>bool cnyGift = 37;</code>
       * @param value The cnyGift to set.
       * @return This builder for chaining.
       */
      public Builder setCnyGift(boolean value) {

        cnyGift_ = value;
        bitField1_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * <code>bool cnyGift = 37;</code>
       * @return This builder for chaining.
       */
      public Builder clearCnyGift() {
        bitField1_ = (bitField1_ & ~0x00000002);
        cnyGift_ = false;
        onChanged();
        return this;
      }

      private long appId_ ;
      /**
       * <code>int64 appId = 38;</code>
       * @return The appId.
       */
      @java.lang.Override
      public long getAppId() {
        return appId_;
      }
      /**
       * <code>int64 appId = 38;</code>
       * @param value The appId to set.
       * @return This builder for chaining.
       */
      public Builder setAppId(long value) {

        appId_ = value;
        bitField1_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * <code>int64 appId = 38;</code>
       * @return This builder for chaining.
       */
      public Builder clearAppId() {
        bitField1_ = (bitField1_ & ~0x00000004);
        appId_ = 0L;
        onChanged();
        return this;
      }

      private long vipLevel_ ;
      /**
       * <code>int64 vipLevel = 39;</code>
       * @return The vipLevel.
       */
      @java.lang.Override
      public long getVipLevel() {
        return vipLevel_;
      }
      /**
       * <code>int64 vipLevel = 39;</code>
       * @param value The vipLevel to set.
       * @return This builder for chaining.
       */
      public Builder setVipLevel(long value) {

        vipLevel_ = value;
        bitField1_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * <code>int64 vipLevel = 39;</code>
       * @return This builder for chaining.
       */
      public Builder clearVipLevel() {
        bitField1_ = (bitField1_ & ~0x00000008);
        vipLevel_ = 0L;
        onChanged();
        return this;
      }

      private boolean isGray_ ;
      /**
       * <code>bool isGray = 40;</code>
       * @return The isGray.
       */
      @java.lang.Override
      public boolean getIsGray() {
        return isGray_;
      }
      /**
       * <code>bool isGray = 40;</code>
       * @param value The isGray to set.
       * @return This builder for chaining.
       */
      public Builder setIsGray(boolean value) {

        isGray_ = value;
        bitField1_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * <code>bool isGray = 40;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsGray() {
        bitField1_ = (bitField1_ & ~0x00000010);
        isGray_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object graySchemeUrl_ = "";
      /**
       * <code>string graySchemeUrl = 41;</code>
       * @return The graySchemeUrl.
       */
      public java.lang.String getGraySchemeUrl() {
        java.lang.Object ref = graySchemeUrl_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          graySchemeUrl_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string graySchemeUrl = 41;</code>
       * @return The bytes for graySchemeUrl.
       */
      public com.google.protobuf.ByteString
          getGraySchemeUrlBytes() {
        java.lang.Object ref = graySchemeUrl_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          graySchemeUrl_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string graySchemeUrl = 41;</code>
       * @param value The graySchemeUrl to set.
       * @return This builder for chaining.
       */
      public Builder setGraySchemeUrl(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        graySchemeUrl_ = value;
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }
      /**
       * <code>string graySchemeUrl = 41;</code>
       * @return This builder for chaining.
       */
      public Builder clearGraySchemeUrl() {
        graySchemeUrl_ = getDefaultInstance().getGraySchemeUrl();
        bitField1_ = (bitField1_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       * <code>string graySchemeUrl = 41;</code>
       * @param value The bytes for graySchemeUrl to set.
       * @return This builder for chaining.
       */
      public Builder setGraySchemeUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        graySchemeUrl_ = value;
        bitField1_ |= 0x00000020;
        onChanged();
        return this;
      }

      private long giftScene_ ;
      /**
       * <code>int64 giftScene = 42;</code>
       * @return The giftScene.
       */
      @java.lang.Override
      public long getGiftScene() {
        return giftScene_;
      }
      /**
       * <code>int64 giftScene = 42;</code>
       * @param value The giftScene to set.
       * @return This builder for chaining.
       */
      public Builder setGiftScene(long value) {

        giftScene_ = value;
        bitField1_ |= 0x00000040;
        onChanged();
        return this;
      }
      /**
       * <code>int64 giftScene = 42;</code>
       * @return This builder for chaining.
       */
      public Builder clearGiftScene() {
        bitField1_ = (bitField1_ & ~0x00000040);
        giftScene_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringArrayList triggerWords_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureTriggerWordsIsMutable() {
        if (!triggerWords_.isModifiable()) {
          triggerWords_ = new com.google.protobuf.LazyStringArrayList(triggerWords_);
        }
        bitField1_ |= 0x00000080;
      }
      /**
       * <pre>
       * GiftBanner giftBanner = 43;
       * </pre>
       *
       * <code>repeated string triggerWords = 44;</code>
       * @return A list containing the triggerWords.
       */
      public com.google.protobuf.ProtocolStringList
          getTriggerWordsList() {
        triggerWords_.makeImmutable();
        return triggerWords_;
      }
      /**
       * <pre>
       * GiftBanner giftBanner = 43;
       * </pre>
       *
       * <code>repeated string triggerWords = 44;</code>
       * @return The count of triggerWords.
       */
      public int getTriggerWordsCount() {
        return triggerWords_.size();
      }
      /**
       * <pre>
       * GiftBanner giftBanner = 43;
       * </pre>
       *
       * <code>repeated string triggerWords = 44;</code>
       * @param index The index of the element to return.
       * @return The triggerWords at the given index.
       */
      public java.lang.String getTriggerWords(int index) {
        return triggerWords_.get(index);
      }
      /**
       * <pre>
       * GiftBanner giftBanner = 43;
       * </pre>
       *
       * <code>repeated string triggerWords = 44;</code>
       * @param index The index of the value to return.
       * @return The bytes of the triggerWords at the given index.
       */
      public com.google.protobuf.ByteString
          getTriggerWordsBytes(int index) {
        return triggerWords_.getByteString(index);
      }
      /**
       * <pre>
       * GiftBanner giftBanner = 43;
       * </pre>
       *
       * <code>repeated string triggerWords = 44;</code>
       * @param index The index to set the value at.
       * @param value The triggerWords to set.
       * @return This builder for chaining.
       */
      public Builder setTriggerWords(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTriggerWordsIsMutable();
        triggerWords_.set(index, value);
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GiftBanner giftBanner = 43;
       * </pre>
       *
       * <code>repeated string triggerWords = 44;</code>
       * @param value The triggerWords to add.
       * @return This builder for chaining.
       */
      public Builder addTriggerWords(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureTriggerWordsIsMutable();
        triggerWords_.add(value);
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GiftBanner giftBanner = 43;
       * </pre>
       *
       * <code>repeated string triggerWords = 44;</code>
       * @param values The triggerWords to add.
       * @return This builder for chaining.
       */
      public Builder addAllTriggerWords(
          java.lang.Iterable<java.lang.String> values) {
        ensureTriggerWordsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, triggerWords_);
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GiftBanner giftBanner = 43;
       * </pre>
       *
       * <code>repeated string triggerWords = 44;</code>
       * @return This builder for chaining.
       */
      public Builder clearTriggerWords() {
        triggerWords_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField1_ = (bitField1_ & ~0x00000080);;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GiftBanner giftBanner = 43;
       * </pre>
       *
       * <code>repeated string triggerWords = 44;</code>
       * @param value The bytes of the triggerWords to add.
       * @return This builder for chaining.
       */
      public Builder addTriggerWordsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        ensureTriggerWordsIsMutable();
        triggerWords_.add(value);
        bitField1_ |= 0x00000080;
        onChanged();
        return this;
      }

      private boolean forFirstRecharge_ ;
      /**
       * <pre>
       * repeated GiftBuffInfo giftBuffInfos = 45;
       * </pre>
       *
       * <code>bool forFirstRecharge = 46;</code>
       * @return The forFirstRecharge.
       */
      @java.lang.Override
      public boolean getForFirstRecharge() {
        return forFirstRecharge_;
      }
      /**
       * <pre>
       * repeated GiftBuffInfo giftBuffInfos = 45;
       * </pre>
       *
       * <code>bool forFirstRecharge = 46;</code>
       * @param value The forFirstRecharge to set.
       * @return This builder for chaining.
       */
      public Builder setForFirstRecharge(boolean value) {

        forFirstRecharge_ = value;
        bitField1_ |= 0x00000100;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * repeated GiftBuffInfo giftBuffInfos = 45;
       * </pre>
       *
       * <code>bool forFirstRecharge = 46;</code>
       * @return This builder for chaining.
       */
      public Builder clearForFirstRecharge() {
        bitField1_ = (bitField1_ & ~0x00000100);
        forFirstRecharge_ = false;
        onChanged();
        return this;
      }

      private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image dynamicImgForSelected_;
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> dynamicImgForSelectedBuilder_;
      /**
       * <code>.Image dynamicImgForSelected = 47;</code>
       * @return Whether the dynamicImgForSelected field is set.
       */
      public boolean hasDynamicImgForSelected() {
        return ((bitField1_ & 0x00000200) != 0);
      }
      /**
       * <code>.Image dynamicImgForSelected = 47;</code>
       * @return The dynamicImgForSelected.
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getDynamicImgForSelected() {
        if (dynamicImgForSelectedBuilder_ == null) {
          return dynamicImgForSelected_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_;
        } else {
          return dynamicImgForSelectedBuilder_.getMessage();
        }
      }
      /**
       * <code>.Image dynamicImgForSelected = 47;</code>
       */
      public Builder setDynamicImgForSelected(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (dynamicImgForSelectedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dynamicImgForSelected_ = value;
        } else {
          dynamicImgForSelectedBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>.Image dynamicImgForSelected = 47;</code>
       */
      public Builder setDynamicImgForSelected(
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) {
        if (dynamicImgForSelectedBuilder_ == null) {
          dynamicImgForSelected_ = builderForValue.build();
        } else {
          dynamicImgForSelectedBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>.Image dynamicImgForSelected = 47;</code>
       */
      public Builder mergeDynamicImgForSelected(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (dynamicImgForSelectedBuilder_ == null) {
          if (((bitField1_ & 0x00000200) != 0) &&
            dynamicImgForSelected_ != null &&
            dynamicImgForSelected_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) {
            getDynamicImgForSelectedBuilder().mergeFrom(value);
          } else {
            dynamicImgForSelected_ = value;
          }
        } else {
          dynamicImgForSelectedBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00000200;
        onChanged();
        return this;
      }
      /**
       * <code>.Image dynamicImgForSelected = 47;</code>
       */
      public Builder clearDynamicImgForSelected() {
        bitField1_ = (bitField1_ & ~0x00000200);
        dynamicImgForSelected_ = null;
        if (dynamicImgForSelectedBuilder_ != null) {
          dynamicImgForSelectedBuilder_.dispose();
          dynamicImgForSelectedBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.Image dynamicImgForSelected = 47;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getDynamicImgForSelectedBuilder() {
        bitField1_ |= 0x00000200;
        onChanged();
        return getDynamicImgForSelectedFieldBuilder().getBuilder();
      }
      /**
       * <code>.Image dynamicImgForSelected = 47;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getDynamicImgForSelectedOrBuilder() {
        if (dynamicImgForSelectedBuilder_ != null) {
          return dynamicImgForSelectedBuilder_.getMessageOrBuilder();
        } else {
          return dynamicImgForSelected_ == null ?
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : dynamicImgForSelected_;
        }
      }
      /**
       * <code>.Image dynamicImgForSelected = 47;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> 
          getDynamicImgForSelectedFieldBuilder() {
        if (dynamicImgForSelectedBuilder_ == null) {
          dynamicImgForSelectedBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>(
                  getDynamicImgForSelected(),
                  getParentForChildren(),
                  isClean());
          dynamicImgForSelected_ = null;
        }
        return dynamicImgForSelectedBuilder_;
      }

      private int afterSendAction_ ;
      /**
       * <code>int32 afterSendAction = 48;</code>
       * @return The afterSendAction.
       */
      @java.lang.Override
      public int getAfterSendAction() {
        return afterSendAction_;
      }
      /**
       * <code>int32 afterSendAction = 48;</code>
       * @param value The afterSendAction to set.
       * @return This builder for chaining.
       */
      public Builder setAfterSendAction(int value) {

        afterSendAction_ = value;
        bitField1_ |= 0x00000400;
        onChanged();
        return this;
      }
      /**
       * <code>int32 afterSendAction = 48;</code>
       * @return This builder for chaining.
       */
      public Builder clearAfterSendAction() {
        bitField1_ = (bitField1_ & ~0x00000400);
        afterSendAction_ = 0;
        onChanged();
        return this;
      }

      private long giftOfflineTime_ ;
      /**
       * <code>int64 giftOfflineTime = 49;</code>
       * @return The giftOfflineTime.
       */
      @java.lang.Override
      public long getGiftOfflineTime() {
        return giftOfflineTime_;
      }
      /**
       * <code>int64 giftOfflineTime = 49;</code>
       * @param value The giftOfflineTime to set.
       * @return This builder for chaining.
       */
      public Builder setGiftOfflineTime(long value) {

        giftOfflineTime_ = value;
        bitField1_ |= 0x00000800;
        onChanged();
        return this;
      }
      /**
       * <code>int64 giftOfflineTime = 49;</code>
       * @return This builder for chaining.
       */
      public Builder clearGiftOfflineTime() {
        bitField1_ = (bitField1_ & ~0x00000800);
        giftOfflineTime_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object topBarText_ = "";
      /**
       * <code>string topBarText = 50;</code>
       * @return The topBarText.
       */
      public java.lang.String getTopBarText() {
        java.lang.Object ref = topBarText_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          topBarText_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string topBarText = 50;</code>
       * @return The bytes for topBarText.
       */
      public com.google.protobuf.ByteString
          getTopBarTextBytes() {
        java.lang.Object ref = topBarText_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          topBarText_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string topBarText = 50;</code>
       * @param value The topBarText to set.
       * @return This builder for chaining.
       */
      public Builder setTopBarText(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        topBarText_ = value;
        bitField1_ |= 0x00001000;
        onChanged();
        return this;
      }
      /**
       * <code>string topBarText = 50;</code>
       * @return This builder for chaining.
       */
      public Builder clearTopBarText() {
        topBarText_ = getDefaultInstance().getTopBarText();
        bitField1_ = (bitField1_ & ~0x00001000);
        onChanged();
        return this;
      }
      /**
       * <code>string topBarText = 50;</code>
       * @param value The bytes for topBarText to set.
       * @return This builder for chaining.
       */
      public Builder setTopBarTextBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        topBarText_ = value;
        bitField1_ |= 0x00001000;
        onChanged();
        return this;
      }

      private tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image topRightAvatar_;
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> topRightAvatarBuilder_;
      /**
       * <code>.Image topRightAvatar = 51;</code>
       * @return Whether the topRightAvatar field is set.
       */
      public boolean hasTopRightAvatar() {
        return ((bitField1_ & 0x00002000) != 0);
      }
      /**
       * <code>.Image topRightAvatar = 51;</code>
       * @return The topRightAvatar.
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image getTopRightAvatar() {
        if (topRightAvatarBuilder_ == null) {
          return topRightAvatar_ == null ? tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_;
        } else {
          return topRightAvatarBuilder_.getMessage();
        }
      }
      /**
       * <code>.Image topRightAvatar = 51;</code>
       */
      public Builder setTopRightAvatar(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (topRightAvatarBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          topRightAvatar_ = value;
        } else {
          topRightAvatarBuilder_.setMessage(value);
        }
        bitField1_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>.Image topRightAvatar = 51;</code>
       */
      public Builder setTopRightAvatar(
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder builderForValue) {
        if (topRightAvatarBuilder_ == null) {
          topRightAvatar_ = builderForValue.build();
        } else {
          topRightAvatarBuilder_.setMessage(builderForValue.build());
        }
        bitField1_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>.Image topRightAvatar = 51;</code>
       */
      public Builder mergeTopRightAvatar(tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image value) {
        if (topRightAvatarBuilder_ == null) {
          if (((bitField1_ & 0x00002000) != 0) &&
            topRightAvatar_ != null &&
            topRightAvatar_ != tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance()) {
            getTopRightAvatarBuilder().mergeFrom(value);
          } else {
            topRightAvatar_ = value;
          }
        } else {
          topRightAvatarBuilder_.mergeFrom(value);
        }
        bitField1_ |= 0x00002000;
        onChanged();
        return this;
      }
      /**
       * <code>.Image topRightAvatar = 51;</code>
       */
      public Builder clearTopRightAvatar() {
        bitField1_ = (bitField1_ & ~0x00002000);
        topRightAvatar_ = null;
        if (topRightAvatarBuilder_ != null) {
          topRightAvatarBuilder_.dispose();
          topRightAvatarBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * <code>.Image topRightAvatar = 51;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder getTopRightAvatarBuilder() {
        bitField1_ |= 0x00002000;
        onChanged();
        return getTopRightAvatarFieldBuilder().getBuilder();
      }
      /**
       * <code>.Image topRightAvatar = 51;</code>
       */
      public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder getTopRightAvatarOrBuilder() {
        if (topRightAvatarBuilder_ != null) {
          return topRightAvatarBuilder_.getMessageOrBuilder();
        } else {
          return topRightAvatar_ == null ?
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.getDefaultInstance() : topRightAvatar_;
        }
      }
      /**
       * <code>.Image topRightAvatar = 51;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder> 
          getTopRightAvatarFieldBuilder() {
        if (topRightAvatarBuilder_ == null) {
          topRightAvatarBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.Image.Builder, tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.ImageOrBuilder>(
                  getTopRightAvatar(),
                  getParentForChildren(),
                  isClean());
          topRightAvatar_ = null;
        }
        return topRightAvatarBuilder_;
      }

      private java.lang.Object bannerSchemeUrl_ = "";
      /**
       * <code>string bannerSchemeUrl = 52;</code>
       * @return The bannerSchemeUrl.
       */
      public java.lang.String getBannerSchemeUrl() {
        java.lang.Object ref = bannerSchemeUrl_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          bannerSchemeUrl_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>string bannerSchemeUrl = 52;</code>
       * @return The bytes for bannerSchemeUrl.
       */
      public com.google.protobuf.ByteString
          getBannerSchemeUrlBytes() {
        java.lang.Object ref = bannerSchemeUrl_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          bannerSchemeUrl_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>string bannerSchemeUrl = 52;</code>
       * @param value The bannerSchemeUrl to set.
       * @return This builder for chaining.
       */
      public Builder setBannerSchemeUrl(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        bannerSchemeUrl_ = value;
        bitField1_ |= 0x00004000;
        onChanged();
        return this;
      }
      /**
       * <code>string bannerSchemeUrl = 52;</code>
       * @return This builder for chaining.
       */
      public Builder clearBannerSchemeUrl() {
        bannerSchemeUrl_ = getDefaultInstance().getBannerSchemeUrl();
        bitField1_ = (bitField1_ & ~0x00004000);
        onChanged();
        return this;
      }
      /**
       * <code>string bannerSchemeUrl = 52;</code>
       * @param value The bytes for bannerSchemeUrl to set.
       * @return This builder for chaining.
       */
      public Builder setBannerSchemeUrlBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        checkByteStringIsUtf8(value);
        bannerSchemeUrl_ = value;
        bitField1_ |= 0x00004000;
        onChanged();
        return this;
      }

      private boolean isLocked_ ;
      /**
       * <code>bool isLocked = 53;</code>
       * @return The isLocked.
       */
      @java.lang.Override
      public boolean getIsLocked() {
        return isLocked_;
      }
      /**
       * <code>bool isLocked = 53;</code>
       * @param value The isLocked to set.
       * @return This builder for chaining.
       */
      public Builder setIsLocked(boolean value) {

        isLocked_ = value;
        bitField1_ |= 0x00008000;
        onChanged();
        return this;
      }
      /**
       * <code>bool isLocked = 53;</code>
       * @return This builder for chaining.
       */
      public Builder clearIsLocked() {
        bitField1_ = (bitField1_ & ~0x00008000);
        isLocked_ = false;
        onChanged();
        return this;
      }

      private long reqExtraType_ ;
      /**
       * <code>int64 reqExtraType = 54;</code>
       * @return The reqExtraType.
       */
      @java.lang.Override
      public long getReqExtraType() {
        return reqExtraType_;
      }
      /**
       * <code>int64 reqExtraType = 54;</code>
       * @param value The reqExtraType to set.
       * @return This builder for chaining.
       */
      public Builder setReqExtraType(long value) {

        reqExtraType_ = value;
        bitField1_ |= 0x00010000;
        onChanged();
        return this;
      }
      /**
       * <code>int64 reqExtraType = 54;</code>
       * @return This builder for chaining.
       */
      public Builder clearReqExtraType() {
        bitField1_ = (bitField1_ & ~0x00010000);
        reqExtraType_ = 0L;
        onChanged();
        return this;
      }

      private com.google.protobuf.Internal.LongList assetIds_ = emptyLongList();
      private void ensureAssetIdsIsMutable() {
        if (!((bitField1_ & 0x00020000) != 0)) {
          assetIds_ = mutableCopy(assetIds_);
          bitField1_ |= 0x00020000;
        }
      }
      /**
       * <code>repeated int64 assetIds = 55;</code>
       * @return A list containing the assetIds.
       */
      public java.util.List<java.lang.Long>
          getAssetIdsList() {
        return ((bitField1_ & 0x00020000) != 0) ?
                 java.util.Collections.unmodifiableList(assetIds_) : assetIds_;
      }
      /**
       * <code>repeated int64 assetIds = 55;</code>
       * @return The count of assetIds.
       */
      public int getAssetIdsCount() {
        return assetIds_.size();
      }
      /**
       * <code>repeated int64 assetIds = 55;</code>
       * @param index The index of the element to return.
       * @return The assetIds at the given index.
       */
      public long getAssetIds(int index) {
        return assetIds_.getLong(index);
      }
      /**
       * <code>repeated int64 assetIds = 55;</code>
       * @param index The index to set the value at.
       * @param value The assetIds to set.
       * @return This builder for chaining.
       */
      public Builder setAssetIds(
          int index, long value) {

        ensureAssetIdsIsMutable();
        assetIds_.setLong(index, value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 assetIds = 55;</code>
       * @param value The assetIds to add.
       * @return This builder for chaining.
       */
      public Builder addAssetIds(long value) {

        ensureAssetIdsIsMutable();
        assetIds_.addLong(value);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 assetIds = 55;</code>
       * @param values The assetIds to add.
       * @return This builder for chaining.
       */
      public Builder addAllAssetIds(
          java.lang.Iterable<? extends java.lang.Long> values) {
        ensureAssetIdsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, assetIds_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated int64 assetIds = 55;</code>
       * @return This builder for chaining.
       */
      public Builder clearAssetIds() {
        assetIds_ = emptyLongList();
        bitField1_ = (bitField1_ & ~0x00020000);
        onChanged();
        return this;
      }

      private int needSweepLightCount_ ;
      /**
       * <pre>
       * GiftPreviewInfo giftPreviewInfo = 56;
       * GiftTip giftTip = 57;
       * </pre>
       *
       * <code>int32 needSweepLightCount = 58;</code>
       * @return The needSweepLightCount.
       */
      @java.lang.Override
      public int getNeedSweepLightCount() {
        return needSweepLightCount_;
      }
      /**
       * <pre>
       * GiftPreviewInfo giftPreviewInfo = 56;
       * GiftTip giftTip = 57;
       * </pre>
       *
       * <code>int32 needSweepLightCount = 58;</code>
       * @param value The needSweepLightCount to set.
       * @return This builder for chaining.
       */
      public Builder setNeedSweepLightCount(int value) {

        needSweepLightCount_ = value;
        bitField1_ |= 0x00040000;
        onChanged();
        return this;
      }
      /**
       * <pre>
       * GiftPreviewInfo giftPreviewInfo = 56;
       * GiftTip giftTip = 57;
       * </pre>
       *
       * <code>int32 needSweepLightCount = 58;</code>
       * @return This builder for chaining.
       */
      public Builder clearNeedSweepLightCount() {
        bitField1_ = (bitField1_ & ~0x00040000);
        needSweepLightCount_ = 0;
        onChanged();
        return this;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:GiftStruct)
    }

    // @@protoc_insertion_point(class_scope:GiftStruct)
    private static final tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct();
    }

    public static tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GiftStruct>
        PARSER = new com.google.protobuf.AbstractParser<GiftStruct>() {
      @java.lang.Override
      public GiftStruct parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        Builder builder = newBuilder();
        try {
          builder.mergeFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(builder.buildPartial());
        } catch (com.google.protobuf.UninitializedMessageException e) {
          throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(e)
              .setUnfinishedMessage(builder.buildPartial());
        }
        return builder.buildPartial();
      }
    };

    public static com.google.protobuf.Parser<GiftStruct> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GiftStruct> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.GiftStructOuterClass.GiftStruct getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GiftStruct_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GiftStruct_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_GiftStruct_SpecialEffectsMapEntry_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\020GiftStruct.proto\032\013Image.proto\"\241\t\n\nGift" +
      "Struct\022\025\n\005image\030\001 \001(\0132\006.Image\022\020\n\010describ" +
      "e\030\002 \001(\t\022\016\n\006notify\030\003 \001(\010\022\020\n\010duration\030\004 \001(" +
      "\004\022\n\n\002id\030\005 \001(\004\022\023\n\013for_linkmic\030\007 \001(\010\022\016\n\006do" +
      "odle\030\010 \001(\010\022\024\n\014for_fansclub\030\t \001(\010\022\r\n\005comb" +
      "o\030\n \001(\010\022\014\n\004type\030\013 \001(\r\022\025\n\rdiamond_count\030\014" +
      " \001(\r\022\035\n\025is_displayed_on_panel\030\r \001(\010\022\031\n\021p" +
      "rimary_effect_id\030\016 \001(\004\022\037\n\017gift_label_ico" +
      "n\030\017 \001(\0132\006.Image\022\014\n\004name\030\020 \001(\t\022\016\n\006region\030" +
      "\021 \001(\t\022\016\n\006manual\030\022 \001(\t\022\022\n\nfor_custom\030\023 \001(" +
      "\010\022=\n\021specialEffectsMap\030\024 \003(\0132\".GiftStruc" +
      "t.SpecialEffectsMapEntry\022\024\n\004icon\030\025 \001(\0132\006" +
      ".Image\022\023\n\013action_type\030\026 \001(\r\022\027\n\017watermelo" +
      "nSeeds\030\027 \001(\005\022\022\n\ngoldEffect\030\030 \001(\t\022\023\n\013gold" +
      "enBeans\030\032 \001(\003\022\022\n\nhonorLevel\030\033 \001(\003\022\020\n\010ite" +
      "mType\030\034 \001(\005\022\021\n\tschemeUrl\030\035 \001(\t\022\021\n\teventN" +
      "ame\030\037 \001(\t\022\022\n\nnobleLevel\030  \001(\003\022\020\n\010guideUr" +
      "l\030! \001(\t\022\026\n\016punishMedicine\030\" \001(\010\022\021\n\tforPo" +
      "rtal\030# \001(\010\022\024\n\014businessText\030$ \001(\t\022\017\n\007cnyG" +
      "ift\030% \001(\010\022\r\n\005appId\030& \001(\003\022\020\n\010vipLevel\030\' \001" +
      "(\003\022\016\n\006isGray\030( \001(\010\022\025\n\rgraySchemeUrl\030) \001(" +
      "\t\022\021\n\tgiftScene\030* \001(\003\022\024\n\014triggerWords\030, \003" +
      "(\t\022\030\n\020forFirstRecharge\030. \001(\010\022%\n\025dynamicI" +
      "mgForSelected\030/ \001(\0132\006.Image\022\027\n\017afterSend" +
      "Action\0300 \001(\005\022\027\n\017giftOfflineTime\0301 \001(\003\022\022\n" +
      "\ntopBarText\0302 \001(\t\022\036\n\016topRightAvatar\0303 \001(" +
      "\0132\006.Image\022\027\n\017bannerSchemeUrl\0304 \001(\t\022\020\n\010is" +
      "Locked\0305 \001(\010\022\024\n\014reqExtraType\0306 \001(\003\022\020\n\010as" +
      "setIds\0307 \003(\003\022\033\n\023needSweepLightCount\030: \001(" +
      "\005\0328\n\026SpecialEffectsMapEntry\022\013\n\003key\030\001 \001(\t" +
      "\022\r\n\005value\030\002 \001(\003:\0028\001B8\n6tech.ordinaryroad" +
      ".live.chat.client.douyin.protobuf.dtob\006p" +
      "roto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor(),
        });
    internal_static_GiftStruct_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_GiftStruct_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GiftStruct_descriptor,
        new java.lang.String[] { "Image", "Describe", "Notify", "Duration", "Id", "ForLinkmic", "Doodle", "ForFansclub", "Combo", "Type", "DiamondCount", "IsDisplayedOnPanel", "PrimaryEffectId", "GiftLabelIcon", "Name", "Region", "Manual", "ForCustom", "SpecialEffectsMap", "Icon", "ActionType", "WatermelonSeeds", "GoldEffect", "GoldenBeans", "HonorLevel", "ItemType", "SchemeUrl", "EventName", "NobleLevel", "GuideUrl", "PunishMedicine", "ForPortal", "BusinessText", "CnyGift", "AppId", "VipLevel", "IsGray", "GraySchemeUrl", "GiftScene", "TriggerWords", "ForFirstRecharge", "DynamicImgForSelected", "AfterSendAction", "GiftOfflineTime", "TopBarText", "TopRightAvatar", "BannerSchemeUrl", "IsLocked", "ReqExtraType", "AssetIds", "NeedSweepLightCount", });
    internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor =
      internal_static_GiftStruct_descriptor.getNestedTypes().get(0);
    internal_static_GiftStruct_SpecialEffectsMapEntry_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_GiftStruct_SpecialEffectsMapEntry_descriptor,
        new java.lang.String[] { "Key", "Value", });
    tech.ordinaryroad.live.chat.client.douyin.protobuf.dto.ImageOuterClass.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
