<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: WAProto.proto

namespace PhpWA\Protocol\Proto;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBUtil;
use Google\Protobuf\RepeatedField;

/**
 * Generated from protobuf message <code>proto.ContextInfo</code>
 */
class ContextInfo extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>optional string stanzaId = 1;</code>
     */
    protected $stanzaId = null;
    /**
     * Generated from protobuf field <code>optional string participant = 2;</code>
     */
    protected $participant = null;
    /**
     * Generated from protobuf field <code>optional .proto.Message quotedMessage = 3;</code>
     */
    protected $quotedMessage = null;
    /**
     * Generated from protobuf field <code>optional string remoteJid = 4;</code>
     */
    protected $remoteJid = null;
    /**
     * Generated from protobuf field <code>repeated string mentionedJid = 15;</code>
     */
    private $mentionedJid;
    /**
     * Generated from protobuf field <code>optional string conversionSource = 18;</code>
     */
    protected $conversionSource = null;
    /**
     * Generated from protobuf field <code>optional bytes conversionData = 19;</code>
     */
    protected $conversionData = null;
    /**
     * Generated from protobuf field <code>optional uint32 conversionDelaySeconds = 20;</code>
     */
    protected $conversionDelaySeconds = null;
    /**
     * Generated from protobuf field <code>optional uint32 forwardingScore = 21;</code>
     */
    protected $forwardingScore = null;
    /**
     * Generated from protobuf field <code>optional bool isForwarded = 22;</code>
     */
    protected $isForwarded = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.AdReplyInfo quotedAd = 23;</code>
     */
    protected $quotedAd = null;
    /**
     * Generated from protobuf field <code>optional .proto.MessageKey placeholderKey = 24;</code>
     */
    protected $placeholderKey = null;
    /**
     * Generated from protobuf field <code>optional uint32 expiration = 25;</code>
     */
    protected $expiration = null;
    /**
     * Generated from protobuf field <code>optional int64 ephemeralSettingTimestamp = 26;</code>
     */
    protected $ephemeralSettingTimestamp = null;
    /**
     * Generated from protobuf field <code>optional bytes ephemeralSharedSecret = 27;</code>
     */
    protected $ephemeralSharedSecret = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ExternalAdReplyInfo externalAdReply = 28;</code>
     */
    protected $externalAdReply = null;
    /**
     * Generated from protobuf field <code>optional string entryPointConversionSource = 29;</code>
     */
    protected $entryPointConversionSource = null;
    /**
     * Generated from protobuf field <code>optional string entryPointConversionApp = 30;</code>
     */
    protected $entryPointConversionApp = null;
    /**
     * Generated from protobuf field <code>optional uint32 entryPointConversionDelaySeconds = 31;</code>
     */
    protected $entryPointConversionDelaySeconds = null;
    /**
     * Generated from protobuf field <code>optional .proto.DisappearingMode disappearingMode = 32;</code>
     */
    protected $disappearingMode = null;
    /**
     * Generated from protobuf field <code>optional .proto.ActionLink actionLink = 33;</code>
     */
    protected $actionLink = null;
    /**
     * Generated from protobuf field <code>optional string groupSubject = 34;</code>
     */
    protected $groupSubject = null;
    /**
     * Generated from protobuf field <code>optional string parentGroupJid = 35;</code>
     */
    protected $parentGroupJid = null;
    /**
     * Generated from protobuf field <code>optional string trustBannerType = 37;</code>
     */
    protected $trustBannerType = null;
    /**
     * Generated from protobuf field <code>optional uint32 trustBannerAction = 38;</code>
     */
    protected $trustBannerAction = null;
    /**
     * Generated from protobuf field <code>optional bool isSampled = 39;</code>
     */
    protected $isSampled = null;
    /**
     * Generated from protobuf field <code>repeated .proto.GroupMention groupMentions = 40;</code>
     */
    private $groupMentions;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.UTMInfo utm = 41;</code>
     */
    protected $utm = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ForwardedNewsletterMessageInfo forwardedNewsletterMessageInfo = 43;</code>
     */
    protected $forwardedNewsletterMessageInfo = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.BusinessMessageForwardInfo businessMessageForwardInfo = 44;</code>
     */
    protected $businessMessageForwardInfo = null;
    /**
     * Generated from protobuf field <code>optional string smbClientCampaignId = 45;</code>
     */
    protected $smbClientCampaignId = null;
    /**
     * Generated from protobuf field <code>optional string smbServerCampaignId = 46;</code>
     */
    protected $smbServerCampaignId = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.DataSharingContext dataSharingContext = 47;</code>
     */
    protected $dataSharingContext = null;
    /**
     * Generated from protobuf field <code>optional bool alwaysShowAdAttribution = 48;</code>
     */
    protected $alwaysShowAdAttribution = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.FeatureEligibilities featureEligibilities = 49;</code>
     */
    protected $featureEligibilities = null;
    /**
     * Generated from protobuf field <code>optional string entryPointConversionExternalSource = 50;</code>
     */
    protected $entryPointConversionExternalSource = null;
    /**
     * Generated from protobuf field <code>optional string entryPointConversionExternalMedium = 51;</code>
     */
    protected $entryPointConversionExternalMedium = null;
    /**
     * Generated from protobuf field <code>optional string ctwaSignals = 54;</code>
     */
    protected $ctwaSignals = null;
    /**
     * Generated from protobuf field <code>optional bytes ctwaPayload = 55;</code>
     */
    protected $ctwaPayload = null;
    /**
     * Generated from protobuf field <code>optional .proto.ForwardedAIBotMessageInfo forwardedAiBotMessageInfo = 56;</code>
     */
    protected $forwardedAiBotMessageInfo = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.StatusAttributionType statusAttributionType = 57;</code>
     */
    protected $statusAttributionType = null;
    /**
     * Generated from protobuf field <code>optional .proto.UrlTrackingMap urlTrackingMap = 58;</code>
     */
    protected $urlTrackingMap = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.PairedMediaType pairedMediaType = 59;</code>
     */
    protected $pairedMediaType = null;
    /**
     * Generated from protobuf field <code>optional uint32 rankingVersion = 60;</code>
     */
    protected $rankingVersion = null;
    /**
     * Generated from protobuf field <code>optional .proto.MemberLabel memberLabel = 62;</code>
     */
    protected $memberLabel = null;
    /**
     * Generated from protobuf field <code>optional bool isQuestion = 63;</code>
     */
    protected $isQuestion = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.StatusSourceType statusSourceType = 64;</code>
     */
    protected $statusSourceType = null;
    /**
     * Generated from protobuf field <code>repeated .proto.StatusAttribution statusAttributions = 65;</code>
     */
    private $statusAttributions;
    /**
     * Generated from protobuf field <code>optional bool isGroupStatus = 66;</code>
     */
    protected $isGroupStatus = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ForwardOrigin forwardOrigin = 67;</code>
     */
    protected $forwardOrigin = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.QuestionReplyQuotedMessage questionReplyQuotedMessage = 68;</code>
     */
    protected $questionReplyQuotedMessage = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.StatusAudienceMetadata statusAudienceMetadata = 69;</code>
     */
    protected $statusAudienceMetadata = null;
    /**
     * Generated from protobuf field <code>optional uint32 nonJidMentions = 70;</code>
     */
    protected $nonJidMentions = null;
    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.QuotedType quotedType = 71;</code>
     */
    protected $quotedType = null;
    /**
     * Generated from protobuf field <code>optional .proto.BotMessageSharingInfo botMessageSharingInfo = 72;</code>
     */
    protected $botMessageSharingInfo = null;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $stanzaId
     *     @type string $participant
     *     @type \PhpWA\Protocol\Proto\Message $quotedMessage
     *     @type string $remoteJid
     *     @type string[] $mentionedJid
     *     @type string $conversionSource
     *     @type string $conversionData
     *     @type int $conversionDelaySeconds
     *     @type int $forwardingScore
     *     @type bool $isForwarded
     *     @type \PhpWA\Protocol\Proto\ContextInfo\AdReplyInfo $quotedAd
     *     @type \PhpWA\Protocol\Proto\MessageKey $placeholderKey
     *     @type int $expiration
     *     @type int|string $ephemeralSettingTimestamp
     *     @type string $ephemeralSharedSecret
     *     @type \PhpWA\Protocol\Proto\ContextInfo\ExternalAdReplyInfo $externalAdReply
     *     @type string $entryPointConversionSource
     *     @type string $entryPointConversionApp
     *     @type int $entryPointConversionDelaySeconds
     *     @type \PhpWA\Protocol\Proto\DisappearingMode $disappearingMode
     *     @type \PhpWA\Protocol\Proto\ActionLink $actionLink
     *     @type string $groupSubject
     *     @type string $parentGroupJid
     *     @type string $trustBannerType
     *     @type int $trustBannerAction
     *     @type bool $isSampled
     *     @type \PhpWA\Protocol\Proto\GroupMention[] $groupMentions
     *     @type \PhpWA\Protocol\Proto\ContextInfo\UTMInfo $utm
     *     @type \PhpWA\Protocol\Proto\ContextInfo\ForwardedNewsletterMessageInfo $forwardedNewsletterMessageInfo
     *     @type \PhpWA\Protocol\Proto\ContextInfo\BusinessMessageForwardInfo $businessMessageForwardInfo
     *     @type string $smbClientCampaignId
     *     @type string $smbServerCampaignId
     *     @type \PhpWA\Protocol\Proto\ContextInfo\DataSharingContext $dataSharingContext
     *     @type bool $alwaysShowAdAttribution
     *     @type \PhpWA\Protocol\Proto\ContextInfo\FeatureEligibilities $featureEligibilities
     *     @type string $entryPointConversionExternalSource
     *     @type string $entryPointConversionExternalMedium
     *     @type string $ctwaSignals
     *     @type string $ctwaPayload
     *     @type \PhpWA\Protocol\Proto\ForwardedAIBotMessageInfo $forwardedAiBotMessageInfo
     *     @type int $statusAttributionType
     *     @type \PhpWA\Protocol\Proto\UrlTrackingMap $urlTrackingMap
     *     @type int $pairedMediaType
     *     @type int $rankingVersion
     *     @type \PhpWA\Protocol\Proto\MemberLabel $memberLabel
     *     @type bool $isQuestion
     *     @type int $statusSourceType
     *     @type \PhpWA\Protocol\Proto\StatusAttribution[] $statusAttributions
     *     @type bool $isGroupStatus
     *     @type int $forwardOrigin
     *     @type \PhpWA\Protocol\Proto\ContextInfo\QuestionReplyQuotedMessage $questionReplyQuotedMessage
     *     @type \PhpWA\Protocol\Proto\ContextInfo\StatusAudienceMetadata $statusAudienceMetadata
     *     @type int $nonJidMentions
     *     @type int $quotedType
     *     @type \PhpWA\Protocol\Proto\BotMessageSharingInfo $botMessageSharingInfo
     * }
     */
    public function __construct($data = NULL) {
        \PhpWA\Protocol\Proto\Metadata\WAProto::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>optional string stanzaId = 1;</code>
     * @return string
     */
    public function getStanzaId()
    {
        return isset($this->stanzaId) ? $this->stanzaId : '';
    }

    public function hasStanzaId()
    {
        return isset($this->stanzaId);
    }

    public function clearStanzaId()
    {
        unset($this->stanzaId);
    }

    /**
     * Generated from protobuf field <code>optional string stanzaId = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setStanzaId($var)
    {
        GPBUtil::checkString($var, True);
        $this->stanzaId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string participant = 2;</code>
     * @return string
     */
    public function getParticipant()
    {
        return isset($this->participant) ? $this->participant : '';
    }

    public function hasParticipant()
    {
        return isset($this->participant);
    }

    public function clearParticipant()
    {
        unset($this->participant);
    }

    /**
     * Generated from protobuf field <code>optional string participant = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setParticipant($var)
    {
        GPBUtil::checkString($var, True);
        $this->participant = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message quotedMessage = 3;</code>
     * @return \PhpWA\Protocol\Proto\Message|null
     */
    public function getQuotedMessage()
    {
        return $this->quotedMessage;
    }

    public function hasQuotedMessage()
    {
        return isset($this->quotedMessage);
    }

    public function clearQuotedMessage()
    {
        unset($this->quotedMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.Message quotedMessage = 3;</code>
     * @param \PhpWA\Protocol\Proto\Message $var
     * @return $this
     */
    public function setQuotedMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\Message::class);
        $this->quotedMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string remoteJid = 4;</code>
     * @return string
     */
    public function getRemoteJid()
    {
        return isset($this->remoteJid) ? $this->remoteJid : '';
    }

    public function hasRemoteJid()
    {
        return isset($this->remoteJid);
    }

    public function clearRemoteJid()
    {
        unset($this->remoteJid);
    }

    /**
     * Generated from protobuf field <code>optional string remoteJid = 4;</code>
     * @param string $var
     * @return $this
     */
    public function setRemoteJid($var)
    {
        GPBUtil::checkString($var, True);
        $this->remoteJid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated string mentionedJid = 15;</code>
     * @return RepeatedField<string>
     */
    public function getMentionedJid()
    {
        return $this->mentionedJid;
    }

    /**
     * Generated from protobuf field <code>repeated string mentionedJid = 15;</code>
     * @param string[] $var
     * @return $this
     */
    public function setMentionedJid($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::STRING);
        $this->mentionedJid = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string conversionSource = 18;</code>
     * @return string
     */
    public function getConversionSource()
    {
        return isset($this->conversionSource) ? $this->conversionSource : '';
    }

    public function hasConversionSource()
    {
        return isset($this->conversionSource);
    }

    public function clearConversionSource()
    {
        unset($this->conversionSource);
    }

    /**
     * Generated from protobuf field <code>optional string conversionSource = 18;</code>
     * @param string $var
     * @return $this
     */
    public function setConversionSource($var)
    {
        GPBUtil::checkString($var, True);
        $this->conversionSource = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bytes conversionData = 19;</code>
     * @return string
     */
    public function getConversionData()
    {
        return isset($this->conversionData) ? $this->conversionData : '';
    }

    public function hasConversionData()
    {
        return isset($this->conversionData);
    }

    public function clearConversionData()
    {
        unset($this->conversionData);
    }

    /**
     * Generated from protobuf field <code>optional bytes conversionData = 19;</code>
     * @param string $var
     * @return $this
     */
    public function setConversionData($var)
    {
        GPBUtil::checkString($var, False);
        $this->conversionData = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 conversionDelaySeconds = 20;</code>
     * @return int
     */
    public function getConversionDelaySeconds()
    {
        return isset($this->conversionDelaySeconds) ? $this->conversionDelaySeconds : 0;
    }

    public function hasConversionDelaySeconds()
    {
        return isset($this->conversionDelaySeconds);
    }

    public function clearConversionDelaySeconds()
    {
        unset($this->conversionDelaySeconds);
    }

    /**
     * Generated from protobuf field <code>optional uint32 conversionDelaySeconds = 20;</code>
     * @param int $var
     * @return $this
     */
    public function setConversionDelaySeconds($var)
    {
        GPBUtil::checkUint32($var);
        $this->conversionDelaySeconds = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 forwardingScore = 21;</code>
     * @return int
     */
    public function getForwardingScore()
    {
        return isset($this->forwardingScore) ? $this->forwardingScore : 0;
    }

    public function hasForwardingScore()
    {
        return isset($this->forwardingScore);
    }

    public function clearForwardingScore()
    {
        unset($this->forwardingScore);
    }

    /**
     * Generated from protobuf field <code>optional uint32 forwardingScore = 21;</code>
     * @param int $var
     * @return $this
     */
    public function setForwardingScore($var)
    {
        GPBUtil::checkUint32($var);
        $this->forwardingScore = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isForwarded = 22;</code>
     * @return bool
     */
    public function getIsForwarded()
    {
        return isset($this->isForwarded) ? $this->isForwarded : false;
    }

    public function hasIsForwarded()
    {
        return isset($this->isForwarded);
    }

    public function clearIsForwarded()
    {
        unset($this->isForwarded);
    }

    /**
     * Generated from protobuf field <code>optional bool isForwarded = 22;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsForwarded($var)
    {
        GPBUtil::checkBool($var);
        $this->isForwarded = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.AdReplyInfo quotedAd = 23;</code>
     * @return \PhpWA\Protocol\Proto\ContextInfo\AdReplyInfo|null
     */
    public function getQuotedAd()
    {
        return $this->quotedAd;
    }

    public function hasQuotedAd()
    {
        return isset($this->quotedAd);
    }

    public function clearQuotedAd()
    {
        unset($this->quotedAd);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.AdReplyInfo quotedAd = 23;</code>
     * @param \PhpWA\Protocol\Proto\ContextInfo\AdReplyInfo $var
     * @return $this
     */
    public function setQuotedAd($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ContextInfo\AdReplyInfo::class);
        $this->quotedAd = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MessageKey placeholderKey = 24;</code>
     * @return \PhpWA\Protocol\Proto\MessageKey|null
     */
    public function getPlaceholderKey()
    {
        return $this->placeholderKey;
    }

    public function hasPlaceholderKey()
    {
        return isset($this->placeholderKey);
    }

    public function clearPlaceholderKey()
    {
        unset($this->placeholderKey);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MessageKey placeholderKey = 24;</code>
     * @param \PhpWA\Protocol\Proto\MessageKey $var
     * @return $this
     */
    public function setPlaceholderKey($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MessageKey::class);
        $this->placeholderKey = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 expiration = 25;</code>
     * @return int
     */
    public function getExpiration()
    {
        return isset($this->expiration) ? $this->expiration : 0;
    }

    public function hasExpiration()
    {
        return isset($this->expiration);
    }

    public function clearExpiration()
    {
        unset($this->expiration);
    }

    /**
     * Generated from protobuf field <code>optional uint32 expiration = 25;</code>
     * @param int $var
     * @return $this
     */
    public function setExpiration($var)
    {
        GPBUtil::checkUint32($var);
        $this->expiration = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional int64 ephemeralSettingTimestamp = 26;</code>
     * @return int|string
     */
    public function getEphemeralSettingTimestamp()
    {
        return isset($this->ephemeralSettingTimestamp) ? $this->ephemeralSettingTimestamp : 0;
    }

    public function hasEphemeralSettingTimestamp()
    {
        return isset($this->ephemeralSettingTimestamp);
    }

    public function clearEphemeralSettingTimestamp()
    {
        unset($this->ephemeralSettingTimestamp);
    }

    /**
     * Generated from protobuf field <code>optional int64 ephemeralSettingTimestamp = 26;</code>
     * @param int|string $var
     * @return $this
     */
    public function setEphemeralSettingTimestamp($var)
    {
        GPBUtil::checkInt64($var);
        $this->ephemeralSettingTimestamp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bytes ephemeralSharedSecret = 27;</code>
     * @return string
     */
    public function getEphemeralSharedSecret()
    {
        return isset($this->ephemeralSharedSecret) ? $this->ephemeralSharedSecret : '';
    }

    public function hasEphemeralSharedSecret()
    {
        return isset($this->ephemeralSharedSecret);
    }

    public function clearEphemeralSharedSecret()
    {
        unset($this->ephemeralSharedSecret);
    }

    /**
     * Generated from protobuf field <code>optional bytes ephemeralSharedSecret = 27;</code>
     * @param string $var
     * @return $this
     */
    public function setEphemeralSharedSecret($var)
    {
        GPBUtil::checkString($var, False);
        $this->ephemeralSharedSecret = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ExternalAdReplyInfo externalAdReply = 28;</code>
     * @return \PhpWA\Protocol\Proto\ContextInfo\ExternalAdReplyInfo|null
     */
    public function getExternalAdReply()
    {
        return $this->externalAdReply;
    }

    public function hasExternalAdReply()
    {
        return isset($this->externalAdReply);
    }

    public function clearExternalAdReply()
    {
        unset($this->externalAdReply);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ExternalAdReplyInfo externalAdReply = 28;</code>
     * @param \PhpWA\Protocol\Proto\ContextInfo\ExternalAdReplyInfo $var
     * @return $this
     */
    public function setExternalAdReply($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ContextInfo\ExternalAdReplyInfo::class);
        $this->externalAdReply = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string entryPointConversionSource = 29;</code>
     * @return string
     */
    public function getEntryPointConversionSource()
    {
        return isset($this->entryPointConversionSource) ? $this->entryPointConversionSource : '';
    }

    public function hasEntryPointConversionSource()
    {
        return isset($this->entryPointConversionSource);
    }

    public function clearEntryPointConversionSource()
    {
        unset($this->entryPointConversionSource);
    }

    /**
     * Generated from protobuf field <code>optional string entryPointConversionSource = 29;</code>
     * @param string $var
     * @return $this
     */
    public function setEntryPointConversionSource($var)
    {
        GPBUtil::checkString($var, True);
        $this->entryPointConversionSource = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string entryPointConversionApp = 30;</code>
     * @return string
     */
    public function getEntryPointConversionApp()
    {
        return isset($this->entryPointConversionApp) ? $this->entryPointConversionApp : '';
    }

    public function hasEntryPointConversionApp()
    {
        return isset($this->entryPointConversionApp);
    }

    public function clearEntryPointConversionApp()
    {
        unset($this->entryPointConversionApp);
    }

    /**
     * Generated from protobuf field <code>optional string entryPointConversionApp = 30;</code>
     * @param string $var
     * @return $this
     */
    public function setEntryPointConversionApp($var)
    {
        GPBUtil::checkString($var, True);
        $this->entryPointConversionApp = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 entryPointConversionDelaySeconds = 31;</code>
     * @return int
     */
    public function getEntryPointConversionDelaySeconds()
    {
        return isset($this->entryPointConversionDelaySeconds) ? $this->entryPointConversionDelaySeconds : 0;
    }

    public function hasEntryPointConversionDelaySeconds()
    {
        return isset($this->entryPointConversionDelaySeconds);
    }

    public function clearEntryPointConversionDelaySeconds()
    {
        unset($this->entryPointConversionDelaySeconds);
    }

    /**
     * Generated from protobuf field <code>optional uint32 entryPointConversionDelaySeconds = 31;</code>
     * @param int $var
     * @return $this
     */
    public function setEntryPointConversionDelaySeconds($var)
    {
        GPBUtil::checkUint32($var);
        $this->entryPointConversionDelaySeconds = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.DisappearingMode disappearingMode = 32;</code>
     * @return \PhpWA\Protocol\Proto\DisappearingMode|null
     */
    public function getDisappearingMode()
    {
        return $this->disappearingMode;
    }

    public function hasDisappearingMode()
    {
        return isset($this->disappearingMode);
    }

    public function clearDisappearingMode()
    {
        unset($this->disappearingMode);
    }

    /**
     * Generated from protobuf field <code>optional .proto.DisappearingMode disappearingMode = 32;</code>
     * @param \PhpWA\Protocol\Proto\DisappearingMode $var
     * @return $this
     */
    public function setDisappearingMode($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\DisappearingMode::class);
        $this->disappearingMode = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ActionLink actionLink = 33;</code>
     * @return \PhpWA\Protocol\Proto\ActionLink|null
     */
    public function getActionLink()
    {
        return $this->actionLink;
    }

    public function hasActionLink()
    {
        return isset($this->actionLink);
    }

    public function clearActionLink()
    {
        unset($this->actionLink);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ActionLink actionLink = 33;</code>
     * @param \PhpWA\Protocol\Proto\ActionLink $var
     * @return $this
     */
    public function setActionLink($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ActionLink::class);
        $this->actionLink = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string groupSubject = 34;</code>
     * @return string
     */
    public function getGroupSubject()
    {
        return isset($this->groupSubject) ? $this->groupSubject : '';
    }

    public function hasGroupSubject()
    {
        return isset($this->groupSubject);
    }

    public function clearGroupSubject()
    {
        unset($this->groupSubject);
    }

    /**
     * Generated from protobuf field <code>optional string groupSubject = 34;</code>
     * @param string $var
     * @return $this
     */
    public function setGroupSubject($var)
    {
        GPBUtil::checkString($var, True);
        $this->groupSubject = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string parentGroupJid = 35;</code>
     * @return string
     */
    public function getParentGroupJid()
    {
        return isset($this->parentGroupJid) ? $this->parentGroupJid : '';
    }

    public function hasParentGroupJid()
    {
        return isset($this->parentGroupJid);
    }

    public function clearParentGroupJid()
    {
        unset($this->parentGroupJid);
    }

    /**
     * Generated from protobuf field <code>optional string parentGroupJid = 35;</code>
     * @param string $var
     * @return $this
     */
    public function setParentGroupJid($var)
    {
        GPBUtil::checkString($var, True);
        $this->parentGroupJid = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string trustBannerType = 37;</code>
     * @return string
     */
    public function getTrustBannerType()
    {
        return isset($this->trustBannerType) ? $this->trustBannerType : '';
    }

    public function hasTrustBannerType()
    {
        return isset($this->trustBannerType);
    }

    public function clearTrustBannerType()
    {
        unset($this->trustBannerType);
    }

    /**
     * Generated from protobuf field <code>optional string trustBannerType = 37;</code>
     * @param string $var
     * @return $this
     */
    public function setTrustBannerType($var)
    {
        GPBUtil::checkString($var, True);
        $this->trustBannerType = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 trustBannerAction = 38;</code>
     * @return int
     */
    public function getTrustBannerAction()
    {
        return isset($this->trustBannerAction) ? $this->trustBannerAction : 0;
    }

    public function hasTrustBannerAction()
    {
        return isset($this->trustBannerAction);
    }

    public function clearTrustBannerAction()
    {
        unset($this->trustBannerAction);
    }

    /**
     * Generated from protobuf field <code>optional uint32 trustBannerAction = 38;</code>
     * @param int $var
     * @return $this
     */
    public function setTrustBannerAction($var)
    {
        GPBUtil::checkUint32($var);
        $this->trustBannerAction = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isSampled = 39;</code>
     * @return bool
     */
    public function getIsSampled()
    {
        return isset($this->isSampled) ? $this->isSampled : false;
    }

    public function hasIsSampled()
    {
        return isset($this->isSampled);
    }

    public function clearIsSampled()
    {
        unset($this->isSampled);
    }

    /**
     * Generated from protobuf field <code>optional bool isSampled = 39;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsSampled($var)
    {
        GPBUtil::checkBool($var);
        $this->isSampled = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.GroupMention groupMentions = 40;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\GroupMention>
     */
    public function getGroupMentions()
    {
        return $this->groupMentions;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.GroupMention groupMentions = 40;</code>
     * @param \PhpWA\Protocol\Proto\GroupMention[] $var
     * @return $this
     */
    public function setGroupMentions($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\GroupMention::class);
        $this->groupMentions = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.UTMInfo utm = 41;</code>
     * @return \PhpWA\Protocol\Proto\ContextInfo\UTMInfo|null
     */
    public function getUtm()
    {
        return $this->utm;
    }

    public function hasUtm()
    {
        return isset($this->utm);
    }

    public function clearUtm()
    {
        unset($this->utm);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.UTMInfo utm = 41;</code>
     * @param \PhpWA\Protocol\Proto\ContextInfo\UTMInfo $var
     * @return $this
     */
    public function setUtm($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ContextInfo\UTMInfo::class);
        $this->utm = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ForwardedNewsletterMessageInfo forwardedNewsletterMessageInfo = 43;</code>
     * @return \PhpWA\Protocol\Proto\ContextInfo\ForwardedNewsletterMessageInfo|null
     */
    public function getForwardedNewsletterMessageInfo()
    {
        return $this->forwardedNewsletterMessageInfo;
    }

    public function hasForwardedNewsletterMessageInfo()
    {
        return isset($this->forwardedNewsletterMessageInfo);
    }

    public function clearForwardedNewsletterMessageInfo()
    {
        unset($this->forwardedNewsletterMessageInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ForwardedNewsletterMessageInfo forwardedNewsletterMessageInfo = 43;</code>
     * @param \PhpWA\Protocol\Proto\ContextInfo\ForwardedNewsletterMessageInfo $var
     * @return $this
     */
    public function setForwardedNewsletterMessageInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ContextInfo\ForwardedNewsletterMessageInfo::class);
        $this->forwardedNewsletterMessageInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.BusinessMessageForwardInfo businessMessageForwardInfo = 44;</code>
     * @return \PhpWA\Protocol\Proto\ContextInfo\BusinessMessageForwardInfo|null
     */
    public function getBusinessMessageForwardInfo()
    {
        return $this->businessMessageForwardInfo;
    }

    public function hasBusinessMessageForwardInfo()
    {
        return isset($this->businessMessageForwardInfo);
    }

    public function clearBusinessMessageForwardInfo()
    {
        unset($this->businessMessageForwardInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.BusinessMessageForwardInfo businessMessageForwardInfo = 44;</code>
     * @param \PhpWA\Protocol\Proto\ContextInfo\BusinessMessageForwardInfo $var
     * @return $this
     */
    public function setBusinessMessageForwardInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ContextInfo\BusinessMessageForwardInfo::class);
        $this->businessMessageForwardInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string smbClientCampaignId = 45;</code>
     * @return string
     */
    public function getSmbClientCampaignId()
    {
        return isset($this->smbClientCampaignId) ? $this->smbClientCampaignId : '';
    }

    public function hasSmbClientCampaignId()
    {
        return isset($this->smbClientCampaignId);
    }

    public function clearSmbClientCampaignId()
    {
        unset($this->smbClientCampaignId);
    }

    /**
     * Generated from protobuf field <code>optional string smbClientCampaignId = 45;</code>
     * @param string $var
     * @return $this
     */
    public function setSmbClientCampaignId($var)
    {
        GPBUtil::checkString($var, True);
        $this->smbClientCampaignId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string smbServerCampaignId = 46;</code>
     * @return string
     */
    public function getSmbServerCampaignId()
    {
        return isset($this->smbServerCampaignId) ? $this->smbServerCampaignId : '';
    }

    public function hasSmbServerCampaignId()
    {
        return isset($this->smbServerCampaignId);
    }

    public function clearSmbServerCampaignId()
    {
        unset($this->smbServerCampaignId);
    }

    /**
     * Generated from protobuf field <code>optional string smbServerCampaignId = 46;</code>
     * @param string $var
     * @return $this
     */
    public function setSmbServerCampaignId($var)
    {
        GPBUtil::checkString($var, True);
        $this->smbServerCampaignId = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.DataSharingContext dataSharingContext = 47;</code>
     * @return \PhpWA\Protocol\Proto\ContextInfo\DataSharingContext|null
     */
    public function getDataSharingContext()
    {
        return $this->dataSharingContext;
    }

    public function hasDataSharingContext()
    {
        return isset($this->dataSharingContext);
    }

    public function clearDataSharingContext()
    {
        unset($this->dataSharingContext);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.DataSharingContext dataSharingContext = 47;</code>
     * @param \PhpWA\Protocol\Proto\ContextInfo\DataSharingContext $var
     * @return $this
     */
    public function setDataSharingContext($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ContextInfo\DataSharingContext::class);
        $this->dataSharingContext = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool alwaysShowAdAttribution = 48;</code>
     * @return bool
     */
    public function getAlwaysShowAdAttribution()
    {
        return isset($this->alwaysShowAdAttribution) ? $this->alwaysShowAdAttribution : false;
    }

    public function hasAlwaysShowAdAttribution()
    {
        return isset($this->alwaysShowAdAttribution);
    }

    public function clearAlwaysShowAdAttribution()
    {
        unset($this->alwaysShowAdAttribution);
    }

    /**
     * Generated from protobuf field <code>optional bool alwaysShowAdAttribution = 48;</code>
     * @param bool $var
     * @return $this
     */
    public function setAlwaysShowAdAttribution($var)
    {
        GPBUtil::checkBool($var);
        $this->alwaysShowAdAttribution = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.FeatureEligibilities featureEligibilities = 49;</code>
     * @return \PhpWA\Protocol\Proto\ContextInfo\FeatureEligibilities|null
     */
    public function getFeatureEligibilities()
    {
        return $this->featureEligibilities;
    }

    public function hasFeatureEligibilities()
    {
        return isset($this->featureEligibilities);
    }

    public function clearFeatureEligibilities()
    {
        unset($this->featureEligibilities);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.FeatureEligibilities featureEligibilities = 49;</code>
     * @param \PhpWA\Protocol\Proto\ContextInfo\FeatureEligibilities $var
     * @return $this
     */
    public function setFeatureEligibilities($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ContextInfo\FeatureEligibilities::class);
        $this->featureEligibilities = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string entryPointConversionExternalSource = 50;</code>
     * @return string
     */
    public function getEntryPointConversionExternalSource()
    {
        return isset($this->entryPointConversionExternalSource) ? $this->entryPointConversionExternalSource : '';
    }

    public function hasEntryPointConversionExternalSource()
    {
        return isset($this->entryPointConversionExternalSource);
    }

    public function clearEntryPointConversionExternalSource()
    {
        unset($this->entryPointConversionExternalSource);
    }

    /**
     * Generated from protobuf field <code>optional string entryPointConversionExternalSource = 50;</code>
     * @param string $var
     * @return $this
     */
    public function setEntryPointConversionExternalSource($var)
    {
        GPBUtil::checkString($var, True);
        $this->entryPointConversionExternalSource = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string entryPointConversionExternalMedium = 51;</code>
     * @return string
     */
    public function getEntryPointConversionExternalMedium()
    {
        return isset($this->entryPointConversionExternalMedium) ? $this->entryPointConversionExternalMedium : '';
    }

    public function hasEntryPointConversionExternalMedium()
    {
        return isset($this->entryPointConversionExternalMedium);
    }

    public function clearEntryPointConversionExternalMedium()
    {
        unset($this->entryPointConversionExternalMedium);
    }

    /**
     * Generated from protobuf field <code>optional string entryPointConversionExternalMedium = 51;</code>
     * @param string $var
     * @return $this
     */
    public function setEntryPointConversionExternalMedium($var)
    {
        GPBUtil::checkString($var, True);
        $this->entryPointConversionExternalMedium = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional string ctwaSignals = 54;</code>
     * @return string
     */
    public function getCtwaSignals()
    {
        return isset($this->ctwaSignals) ? $this->ctwaSignals : '';
    }

    public function hasCtwaSignals()
    {
        return isset($this->ctwaSignals);
    }

    public function clearCtwaSignals()
    {
        unset($this->ctwaSignals);
    }

    /**
     * Generated from protobuf field <code>optional string ctwaSignals = 54;</code>
     * @param string $var
     * @return $this
     */
    public function setCtwaSignals($var)
    {
        GPBUtil::checkString($var, True);
        $this->ctwaSignals = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bytes ctwaPayload = 55;</code>
     * @return string
     */
    public function getCtwaPayload()
    {
        return isset($this->ctwaPayload) ? $this->ctwaPayload : '';
    }

    public function hasCtwaPayload()
    {
        return isset($this->ctwaPayload);
    }

    public function clearCtwaPayload()
    {
        unset($this->ctwaPayload);
    }

    /**
     * Generated from protobuf field <code>optional bytes ctwaPayload = 55;</code>
     * @param string $var
     * @return $this
     */
    public function setCtwaPayload($var)
    {
        GPBUtil::checkString($var, False);
        $this->ctwaPayload = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ForwardedAIBotMessageInfo forwardedAiBotMessageInfo = 56;</code>
     * @return \PhpWA\Protocol\Proto\ForwardedAIBotMessageInfo|null
     */
    public function getForwardedAiBotMessageInfo()
    {
        return $this->forwardedAiBotMessageInfo;
    }

    public function hasForwardedAiBotMessageInfo()
    {
        return isset($this->forwardedAiBotMessageInfo);
    }

    public function clearForwardedAiBotMessageInfo()
    {
        unset($this->forwardedAiBotMessageInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ForwardedAIBotMessageInfo forwardedAiBotMessageInfo = 56;</code>
     * @param \PhpWA\Protocol\Proto\ForwardedAIBotMessageInfo $var
     * @return $this
     */
    public function setForwardedAiBotMessageInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ForwardedAIBotMessageInfo::class);
        $this->forwardedAiBotMessageInfo = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.StatusAttributionType statusAttributionType = 57;</code>
     * @return int
     */
    public function getStatusAttributionType()
    {
        return isset($this->statusAttributionType) ? $this->statusAttributionType : 0;
    }

    public function hasStatusAttributionType()
    {
        return isset($this->statusAttributionType);
    }

    public function clearStatusAttributionType()
    {
        unset($this->statusAttributionType);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.StatusAttributionType statusAttributionType = 57;</code>
     * @param int $var
     * @return $this
     */
    public function setStatusAttributionType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ContextInfo\StatusAttributionType::class);
        $this->statusAttributionType = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.UrlTrackingMap urlTrackingMap = 58;</code>
     * @return \PhpWA\Protocol\Proto\UrlTrackingMap|null
     */
    public function getUrlTrackingMap()
    {
        return $this->urlTrackingMap;
    }

    public function hasUrlTrackingMap()
    {
        return isset($this->urlTrackingMap);
    }

    public function clearUrlTrackingMap()
    {
        unset($this->urlTrackingMap);
    }

    /**
     * Generated from protobuf field <code>optional .proto.UrlTrackingMap urlTrackingMap = 58;</code>
     * @param \PhpWA\Protocol\Proto\UrlTrackingMap $var
     * @return $this
     */
    public function setUrlTrackingMap($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\UrlTrackingMap::class);
        $this->urlTrackingMap = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.PairedMediaType pairedMediaType = 59;</code>
     * @return int
     */
    public function getPairedMediaType()
    {
        return isset($this->pairedMediaType) ? $this->pairedMediaType : 0;
    }

    public function hasPairedMediaType()
    {
        return isset($this->pairedMediaType);
    }

    public function clearPairedMediaType()
    {
        unset($this->pairedMediaType);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.PairedMediaType pairedMediaType = 59;</code>
     * @param int $var
     * @return $this
     */
    public function setPairedMediaType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ContextInfo\PairedMediaType::class);
        $this->pairedMediaType = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 rankingVersion = 60;</code>
     * @return int
     */
    public function getRankingVersion()
    {
        return isset($this->rankingVersion) ? $this->rankingVersion : 0;
    }

    public function hasRankingVersion()
    {
        return isset($this->rankingVersion);
    }

    public function clearRankingVersion()
    {
        unset($this->rankingVersion);
    }

    /**
     * Generated from protobuf field <code>optional uint32 rankingVersion = 60;</code>
     * @param int $var
     * @return $this
     */
    public function setRankingVersion($var)
    {
        GPBUtil::checkUint32($var);
        $this->rankingVersion = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.MemberLabel memberLabel = 62;</code>
     * @return \PhpWA\Protocol\Proto\MemberLabel|null
     */
    public function getMemberLabel()
    {
        return $this->memberLabel;
    }

    public function hasMemberLabel()
    {
        return isset($this->memberLabel);
    }

    public function clearMemberLabel()
    {
        unset($this->memberLabel);
    }

    /**
     * Generated from protobuf field <code>optional .proto.MemberLabel memberLabel = 62;</code>
     * @param \PhpWA\Protocol\Proto\MemberLabel $var
     * @return $this
     */
    public function setMemberLabel($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\MemberLabel::class);
        $this->memberLabel = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isQuestion = 63;</code>
     * @return bool
     */
    public function getIsQuestion()
    {
        return isset($this->isQuestion) ? $this->isQuestion : false;
    }

    public function hasIsQuestion()
    {
        return isset($this->isQuestion);
    }

    public function clearIsQuestion()
    {
        unset($this->isQuestion);
    }

    /**
     * Generated from protobuf field <code>optional bool isQuestion = 63;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsQuestion($var)
    {
        GPBUtil::checkBool($var);
        $this->isQuestion = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.StatusSourceType statusSourceType = 64;</code>
     * @return int
     */
    public function getStatusSourceType()
    {
        return isset($this->statusSourceType) ? $this->statusSourceType : 0;
    }

    public function hasStatusSourceType()
    {
        return isset($this->statusSourceType);
    }

    public function clearStatusSourceType()
    {
        unset($this->statusSourceType);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.StatusSourceType statusSourceType = 64;</code>
     * @param int $var
     * @return $this
     */
    public function setStatusSourceType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ContextInfo\StatusSourceType::class);
        $this->statusSourceType = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.StatusAttribution statusAttributions = 65;</code>
     * @return RepeatedField<\PhpWA\Protocol\Proto\StatusAttribution>
     */
    public function getStatusAttributions()
    {
        return $this->statusAttributions;
    }

    /**
     * Generated from protobuf field <code>repeated .proto.StatusAttribution statusAttributions = 65;</code>
     * @param \PhpWA\Protocol\Proto\StatusAttribution[] $var
     * @return $this
     */
    public function setStatusAttributions($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \PhpWA\Protocol\Proto\StatusAttribution::class);
        $this->statusAttributions = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional bool isGroupStatus = 66;</code>
     * @return bool
     */
    public function getIsGroupStatus()
    {
        return isset($this->isGroupStatus) ? $this->isGroupStatus : false;
    }

    public function hasIsGroupStatus()
    {
        return isset($this->isGroupStatus);
    }

    public function clearIsGroupStatus()
    {
        unset($this->isGroupStatus);
    }

    /**
     * Generated from protobuf field <code>optional bool isGroupStatus = 66;</code>
     * @param bool $var
     * @return $this
     */
    public function setIsGroupStatus($var)
    {
        GPBUtil::checkBool($var);
        $this->isGroupStatus = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ForwardOrigin forwardOrigin = 67;</code>
     * @return int
     */
    public function getForwardOrigin()
    {
        return isset($this->forwardOrigin) ? $this->forwardOrigin : 0;
    }

    public function hasForwardOrigin()
    {
        return isset($this->forwardOrigin);
    }

    public function clearForwardOrigin()
    {
        unset($this->forwardOrigin);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.ForwardOrigin forwardOrigin = 67;</code>
     * @param int $var
     * @return $this
     */
    public function setForwardOrigin($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ContextInfo\ForwardOrigin::class);
        $this->forwardOrigin = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.QuestionReplyQuotedMessage questionReplyQuotedMessage = 68;</code>
     * @return \PhpWA\Protocol\Proto\ContextInfo\QuestionReplyQuotedMessage|null
     */
    public function getQuestionReplyQuotedMessage()
    {
        return $this->questionReplyQuotedMessage;
    }

    public function hasQuestionReplyQuotedMessage()
    {
        return isset($this->questionReplyQuotedMessage);
    }

    public function clearQuestionReplyQuotedMessage()
    {
        unset($this->questionReplyQuotedMessage);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.QuestionReplyQuotedMessage questionReplyQuotedMessage = 68;</code>
     * @param \PhpWA\Protocol\Proto\ContextInfo\QuestionReplyQuotedMessage $var
     * @return $this
     */
    public function setQuestionReplyQuotedMessage($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ContextInfo\QuestionReplyQuotedMessage::class);
        $this->questionReplyQuotedMessage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.StatusAudienceMetadata statusAudienceMetadata = 69;</code>
     * @return \PhpWA\Protocol\Proto\ContextInfo\StatusAudienceMetadata|null
     */
    public function getStatusAudienceMetadata()
    {
        return $this->statusAudienceMetadata;
    }

    public function hasStatusAudienceMetadata()
    {
        return isset($this->statusAudienceMetadata);
    }

    public function clearStatusAudienceMetadata()
    {
        unset($this->statusAudienceMetadata);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.StatusAudienceMetadata statusAudienceMetadata = 69;</code>
     * @param \PhpWA\Protocol\Proto\ContextInfo\StatusAudienceMetadata $var
     * @return $this
     */
    public function setStatusAudienceMetadata($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\ContextInfo\StatusAudienceMetadata::class);
        $this->statusAudienceMetadata = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional uint32 nonJidMentions = 70;</code>
     * @return int
     */
    public function getNonJidMentions()
    {
        return isset($this->nonJidMentions) ? $this->nonJidMentions : 0;
    }

    public function hasNonJidMentions()
    {
        return isset($this->nonJidMentions);
    }

    public function clearNonJidMentions()
    {
        unset($this->nonJidMentions);
    }

    /**
     * Generated from protobuf field <code>optional uint32 nonJidMentions = 70;</code>
     * @param int $var
     * @return $this
     */
    public function setNonJidMentions($var)
    {
        GPBUtil::checkUint32($var);
        $this->nonJidMentions = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.QuotedType quotedType = 71;</code>
     * @return int
     */
    public function getQuotedType()
    {
        return isset($this->quotedType) ? $this->quotedType : 0;
    }

    public function hasQuotedType()
    {
        return isset($this->quotedType);
    }

    public function clearQuotedType()
    {
        unset($this->quotedType);
    }

    /**
     * Generated from protobuf field <code>optional .proto.ContextInfo.QuotedType quotedType = 71;</code>
     * @param int $var
     * @return $this
     */
    public function setQuotedType($var)
    {
        GPBUtil::checkEnum($var, \PhpWA\Protocol\Proto\ContextInfo\QuotedType::class);
        $this->quotedType = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotMessageSharingInfo botMessageSharingInfo = 72;</code>
     * @return \PhpWA\Protocol\Proto\BotMessageSharingInfo|null
     */
    public function getBotMessageSharingInfo()
    {
        return $this->botMessageSharingInfo;
    }

    public function hasBotMessageSharingInfo()
    {
        return isset($this->botMessageSharingInfo);
    }

    public function clearBotMessageSharingInfo()
    {
        unset($this->botMessageSharingInfo);
    }

    /**
     * Generated from protobuf field <code>optional .proto.BotMessageSharingInfo botMessageSharingInfo = 72;</code>
     * @param \PhpWA\Protocol\Proto\BotMessageSharingInfo $var
     * @return $this
     */
    public function setBotMessageSharingInfo($var)
    {
        GPBUtil::checkMessage($var, \PhpWA\Protocol\Proto\BotMessageSharingInfo::class);
        $this->botMessageSharingInfo = $var;

        return $this;
    }

}

