import * as $protobuf from "protobufjs";
import Long = require("long");
/** Namespace tutorial. */
export namespace tutorial {

    /** HANDLE_TYPE enum. */
    enum HANDLE_TYPE {
        ADD = 0,
        COMPOSE = 1,
        BUY = 2,
        SELL = 3,
        REMOVE = 4
    }

    /** RES_CODE enum. */
    enum RES_CODE {
        FAIL = 0,
        SUCCESS = 1
    }

    /** ITEM_TYPE enum. */
    enum ITEM_TYPE {
        ENERGY = 0,
        STAR = 1,
        DIAMOND = 2
    }

    /** Properties of a ClientReq. */
    interface IClientReq {

        /** ClientReq func */
        func?: (string|null);

        /** ClientReq cid */
        cid?: (string|null);

        /** ClientReq info */
        info?: (Uint8Array|null);

        /** ClientReq sessionId */
        sessionId?: (string|null);

        /** ClientReq gatewayId */
        gatewayId?: (string|null);

        /** ClientReq userId */
        userId?: (string|null);

        /** ClientReq userBase */
        userBase?: (string|null);
    }

    /** Represents a ClientReq. */
    class ClientReq implements IClientReq {

        /**
         * Constructs a new ClientReq.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IClientReq);

        /** ClientReq func. */
        public func: string;

        /** ClientReq cid. */
        public cid: string;

        /** ClientReq info. */
        public info: Uint8Array;

        /** ClientReq sessionId. */
        public sessionId: string;

        /** ClientReq gatewayId. */
        public gatewayId: string;

        /** ClientReq userId. */
        public userId: string;

        /** ClientReq userBase. */
        public userBase: string;

        /**
         * Creates a new ClientReq instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ClientReq instance
         */
        public static create(properties?: tutorial.IClientReq): tutorial.ClientReq;

        /**
         * Encodes the specified ClientReq message. Does not implicitly {@link tutorial.ClientReq.verify|verify} messages.
         * @param message ClientReq message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IClientReq, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ClientReq message, length delimited. Does not implicitly {@link tutorial.ClientReq.verify|verify} messages.
         * @param message ClientReq message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IClientReq, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ClientReq message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ClientReq
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ClientReq;

        /**
         * Decodes a ClientReq message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ClientReq
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ClientReq;

        /**
         * Verifies a ClientReq message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ClientReq message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ClientReq
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ClientReq;

        /**
         * Creates a plain object from a ClientReq message. Also converts values to other types if specified.
         * @param message ClientReq
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ClientReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ClientReq to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ClientReq
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqOfflineReconnect. */
    interface IReqOfflineReconnect {

        /** ReqOfflineReconnect dwUin */
        dwUin?: (number|null);
    }

    /** Represents a ReqOfflineReconnect. */
    class ReqOfflineReconnect implements IReqOfflineReconnect {

        /**
         * Constructs a new ReqOfflineReconnect.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqOfflineReconnect);

        /** ReqOfflineReconnect dwUin. */
        public dwUin: number;

        /**
         * Creates a new ReqOfflineReconnect instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqOfflineReconnect instance
         */
        public static create(properties?: tutorial.IReqOfflineReconnect): tutorial.ReqOfflineReconnect;

        /**
         * Encodes the specified ReqOfflineReconnect message. Does not implicitly {@link tutorial.ReqOfflineReconnect.verify|verify} messages.
         * @param message ReqOfflineReconnect message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqOfflineReconnect, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqOfflineReconnect message, length delimited. Does not implicitly {@link tutorial.ReqOfflineReconnect.verify|verify} messages.
         * @param message ReqOfflineReconnect message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqOfflineReconnect, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqOfflineReconnect message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqOfflineReconnect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqOfflineReconnect;

        /**
         * Decodes a ReqOfflineReconnect message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqOfflineReconnect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqOfflineReconnect;

        /**
         * Verifies a ReqOfflineReconnect message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqOfflineReconnect message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqOfflineReconnect
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqOfflineReconnect;

        /**
         * Creates a plain object from a ReqOfflineReconnect message. Also converts values to other types if specified.
         * @param message ReqOfflineReconnect
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqOfflineReconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqOfflineReconnect to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqOfflineReconnect
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResOfflineReconnect. */
    interface IResOfflineReconnect {

        /** ResOfflineReconnect dwUin */
        dwUin?: (number|null);

        /** ResOfflineReconnect Result */
        Result?: (number|null);
    }

    /** Represents a ResOfflineReconnect. */
    class ResOfflineReconnect implements IResOfflineReconnect {

        /**
         * Constructs a new ResOfflineReconnect.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResOfflineReconnect);

        /** ResOfflineReconnect dwUin. */
        public dwUin: number;

        /** ResOfflineReconnect Result. */
        public Result: number;

        /**
         * Creates a new ResOfflineReconnect instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResOfflineReconnect instance
         */
        public static create(properties?: tutorial.IResOfflineReconnect): tutorial.ResOfflineReconnect;

        /**
         * Encodes the specified ResOfflineReconnect message. Does not implicitly {@link tutorial.ResOfflineReconnect.verify|verify} messages.
         * @param message ResOfflineReconnect message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResOfflineReconnect, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResOfflineReconnect message, length delimited. Does not implicitly {@link tutorial.ResOfflineReconnect.verify|verify} messages.
         * @param message ResOfflineReconnect message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResOfflineReconnect, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResOfflineReconnect message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResOfflineReconnect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResOfflineReconnect;

        /**
         * Decodes a ResOfflineReconnect message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResOfflineReconnect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResOfflineReconnect;

        /**
         * Verifies a ResOfflineReconnect message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResOfflineReconnect message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResOfflineReconnect
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResOfflineReconnect;

        /**
         * Creates a plain object from a ResOfflineReconnect message. Also converts values to other types if specified.
         * @param message ResOfflineReconnect
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResOfflineReconnect, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResOfflineReconnect to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResOfflineReconnect
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqBindFacebookAccount. */
    interface IReqBindFacebookAccount {

        /** ReqBindFacebookAccount dwUin */
        dwUin?: (number|null);

        /** ReqBindFacebookAccount BindAccountId */
        BindAccountId?: (string|null);
    }

    /** Represents a ReqBindFacebookAccount. */
    class ReqBindFacebookAccount implements IReqBindFacebookAccount {

        /**
         * Constructs a new ReqBindFacebookAccount.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqBindFacebookAccount);

        /** ReqBindFacebookAccount dwUin. */
        public dwUin: number;

        /** ReqBindFacebookAccount BindAccountId. */
        public BindAccountId: string;

        /**
         * Creates a new ReqBindFacebookAccount instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqBindFacebookAccount instance
         */
        public static create(properties?: tutorial.IReqBindFacebookAccount): tutorial.ReqBindFacebookAccount;

        /**
         * Encodes the specified ReqBindFacebookAccount message. Does not implicitly {@link tutorial.ReqBindFacebookAccount.verify|verify} messages.
         * @param message ReqBindFacebookAccount message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqBindFacebookAccount, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqBindFacebookAccount message, length delimited. Does not implicitly {@link tutorial.ReqBindFacebookAccount.verify|verify} messages.
         * @param message ReqBindFacebookAccount message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqBindFacebookAccount, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqBindFacebookAccount message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqBindFacebookAccount
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqBindFacebookAccount;

        /**
         * Decodes a ReqBindFacebookAccount message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqBindFacebookAccount
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqBindFacebookAccount;

        /**
         * Verifies a ReqBindFacebookAccount message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqBindFacebookAccount message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqBindFacebookAccount
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqBindFacebookAccount;

        /**
         * Creates a plain object from a ReqBindFacebookAccount message. Also converts values to other types if specified.
         * @param message ReqBindFacebookAccount
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqBindFacebookAccount, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqBindFacebookAccount to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqBindFacebookAccount
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResBindFacebookAccount. */
    interface IResBindFacebookAccount {

        /** ResBindFacebookAccount dwUin */
        dwUin?: (number|null);

        /** ResBindFacebookAccount BindAccountId */
        BindAccountId?: (string|null);

        /** ResBindFacebookAccount ResultCode */
        ResultCode?: (number|null);
    }

    /** Represents a ResBindFacebookAccount. */
    class ResBindFacebookAccount implements IResBindFacebookAccount {

        /**
         * Constructs a new ResBindFacebookAccount.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResBindFacebookAccount);

        /** ResBindFacebookAccount dwUin. */
        public dwUin: number;

        /** ResBindFacebookAccount BindAccountId. */
        public BindAccountId: string;

        /** ResBindFacebookAccount ResultCode. */
        public ResultCode: number;

        /**
         * Creates a new ResBindFacebookAccount instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResBindFacebookAccount instance
         */
        public static create(properties?: tutorial.IResBindFacebookAccount): tutorial.ResBindFacebookAccount;

        /**
         * Encodes the specified ResBindFacebookAccount message. Does not implicitly {@link tutorial.ResBindFacebookAccount.verify|verify} messages.
         * @param message ResBindFacebookAccount message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResBindFacebookAccount, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResBindFacebookAccount message, length delimited. Does not implicitly {@link tutorial.ResBindFacebookAccount.verify|verify} messages.
         * @param message ResBindFacebookAccount message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResBindFacebookAccount, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResBindFacebookAccount message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResBindFacebookAccount
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResBindFacebookAccount;

        /**
         * Decodes a ResBindFacebookAccount message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResBindFacebookAccount
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResBindFacebookAccount;

        /**
         * Verifies a ResBindFacebookAccount message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResBindFacebookAccount message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResBindFacebookAccount
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResBindFacebookAccount;

        /**
         * Creates a plain object from a ResBindFacebookAccount message. Also converts values to other types if specified.
         * @param message ResBindFacebookAccount
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResBindFacebookAccount, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResBindFacebookAccount to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResBindFacebookAccount
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqOnlyBindFacebook. */
    interface IReqOnlyBindFacebook {

        /** ReqOnlyBindFacebook dwUin */
        dwUin?: (number|null);

        /** ReqOnlyBindFacebook BindAccountId */
        BindAccountId?: (string|null);
    }

    /** 请求强制绑定已绑过其他设备的fb并且不同步数据 */
    class ReqOnlyBindFacebook implements IReqOnlyBindFacebook {

        /**
         * Constructs a new ReqOnlyBindFacebook.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqOnlyBindFacebook);

        /** ReqOnlyBindFacebook dwUin. */
        public dwUin: number;

        /** ReqOnlyBindFacebook BindAccountId. */
        public BindAccountId: string;

        /**
         * Creates a new ReqOnlyBindFacebook instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqOnlyBindFacebook instance
         */
        public static create(properties?: tutorial.IReqOnlyBindFacebook): tutorial.ReqOnlyBindFacebook;

        /**
         * Encodes the specified ReqOnlyBindFacebook message. Does not implicitly {@link tutorial.ReqOnlyBindFacebook.verify|verify} messages.
         * @param message ReqOnlyBindFacebook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqOnlyBindFacebook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqOnlyBindFacebook message, length delimited. Does not implicitly {@link tutorial.ReqOnlyBindFacebook.verify|verify} messages.
         * @param message ReqOnlyBindFacebook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqOnlyBindFacebook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqOnlyBindFacebook message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqOnlyBindFacebook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqOnlyBindFacebook;

        /**
         * Decodes a ReqOnlyBindFacebook message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqOnlyBindFacebook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqOnlyBindFacebook;

        /**
         * Verifies a ReqOnlyBindFacebook message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqOnlyBindFacebook message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqOnlyBindFacebook
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqOnlyBindFacebook;

        /**
         * Creates a plain object from a ReqOnlyBindFacebook message. Also converts values to other types if specified.
         * @param message ReqOnlyBindFacebook
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqOnlyBindFacebook, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqOnlyBindFacebook to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqOnlyBindFacebook
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResOnlyBindFacebook. */
    interface IResOnlyBindFacebook {

        /** ResOnlyBindFacebook dwUin */
        dwUin?: (number|null);

        /** ResOnlyBindFacebook BindAccountId */
        BindAccountId?: (string|null);

        /** ResOnlyBindFacebook ResultCode */
        ResultCode?: (number|null);
    }

    /** Represents a ResOnlyBindFacebook. */
    class ResOnlyBindFacebook implements IResOnlyBindFacebook {

        /**
         * Constructs a new ResOnlyBindFacebook.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResOnlyBindFacebook);

        /** ResOnlyBindFacebook dwUin. */
        public dwUin: number;

        /** ResOnlyBindFacebook BindAccountId. */
        public BindAccountId: string;

        /** ResOnlyBindFacebook ResultCode. */
        public ResultCode: number;

        /**
         * Creates a new ResOnlyBindFacebook instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResOnlyBindFacebook instance
         */
        public static create(properties?: tutorial.IResOnlyBindFacebook): tutorial.ResOnlyBindFacebook;

        /**
         * Encodes the specified ResOnlyBindFacebook message. Does not implicitly {@link tutorial.ResOnlyBindFacebook.verify|verify} messages.
         * @param message ResOnlyBindFacebook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResOnlyBindFacebook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResOnlyBindFacebook message, length delimited. Does not implicitly {@link tutorial.ResOnlyBindFacebook.verify|verify} messages.
         * @param message ResOnlyBindFacebook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResOnlyBindFacebook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResOnlyBindFacebook message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResOnlyBindFacebook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResOnlyBindFacebook;

        /**
         * Decodes a ResOnlyBindFacebook message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResOnlyBindFacebook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResOnlyBindFacebook;

        /**
         * Verifies a ResOnlyBindFacebook message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResOnlyBindFacebook message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResOnlyBindFacebook
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResOnlyBindFacebook;

        /**
         * Creates a plain object from a ResOnlyBindFacebook message. Also converts values to other types if specified.
         * @param message ResOnlyBindFacebook
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResOnlyBindFacebook, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResOnlyBindFacebook to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResOnlyBindFacebook
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqUnBindFacebook. */
    interface IReqUnBindFacebook {

        /** ReqUnBindFacebook dwUin */
        dwUin?: (number|null);

        /** ReqUnBindFacebook BindAccountId */
        BindAccountId?: (string|null);
    }

    /** 请求接触绑定 */
    class ReqUnBindFacebook implements IReqUnBindFacebook {

        /**
         * Constructs a new ReqUnBindFacebook.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqUnBindFacebook);

        /** ReqUnBindFacebook dwUin. */
        public dwUin: number;

        /** ReqUnBindFacebook BindAccountId. */
        public BindAccountId: string;

        /**
         * Creates a new ReqUnBindFacebook instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqUnBindFacebook instance
         */
        public static create(properties?: tutorial.IReqUnBindFacebook): tutorial.ReqUnBindFacebook;

        /**
         * Encodes the specified ReqUnBindFacebook message. Does not implicitly {@link tutorial.ReqUnBindFacebook.verify|verify} messages.
         * @param message ReqUnBindFacebook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqUnBindFacebook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqUnBindFacebook message, length delimited. Does not implicitly {@link tutorial.ReqUnBindFacebook.verify|verify} messages.
         * @param message ReqUnBindFacebook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqUnBindFacebook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqUnBindFacebook message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqUnBindFacebook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqUnBindFacebook;

        /**
         * Decodes a ReqUnBindFacebook message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqUnBindFacebook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqUnBindFacebook;

        /**
         * Verifies a ReqUnBindFacebook message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqUnBindFacebook message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqUnBindFacebook
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqUnBindFacebook;

        /**
         * Creates a plain object from a ReqUnBindFacebook message. Also converts values to other types if specified.
         * @param message ReqUnBindFacebook
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqUnBindFacebook, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqUnBindFacebook to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqUnBindFacebook
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResUnBindFacebook. */
    interface IResUnBindFacebook {

        /** ResUnBindFacebook ResultCode */
        ResultCode?: (number|null);

        /** ResUnBindFacebook BindAccountId */
        BindAccountId?: (string|null);
    }

    /** Represents a ResUnBindFacebook. */
    class ResUnBindFacebook implements IResUnBindFacebook {

        /**
         * Constructs a new ResUnBindFacebook.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResUnBindFacebook);

        /** ResUnBindFacebook ResultCode. */
        public ResultCode: number;

        /** ResUnBindFacebook BindAccountId. */
        public BindAccountId: string;

        /**
         * Creates a new ResUnBindFacebook instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResUnBindFacebook instance
         */
        public static create(properties?: tutorial.IResUnBindFacebook): tutorial.ResUnBindFacebook;

        /**
         * Encodes the specified ResUnBindFacebook message. Does not implicitly {@link tutorial.ResUnBindFacebook.verify|verify} messages.
         * @param message ResUnBindFacebook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResUnBindFacebook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResUnBindFacebook message, length delimited. Does not implicitly {@link tutorial.ResUnBindFacebook.verify|verify} messages.
         * @param message ResUnBindFacebook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResUnBindFacebook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResUnBindFacebook message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResUnBindFacebook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResUnBindFacebook;

        /**
         * Decodes a ResUnBindFacebook message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResUnBindFacebook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResUnBindFacebook;

        /**
         * Verifies a ResUnBindFacebook message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResUnBindFacebook message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResUnBindFacebook
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResUnBindFacebook;

        /**
         * Creates a plain object from a ResUnBindFacebook message. Also converts values to other types if specified.
         * @param message ResUnBindFacebook
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResUnBindFacebook, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResUnBindFacebook to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResUnBindFacebook
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSynGameData. */
    interface IReqSynGameData {

        /** ReqSynGameData dwUin */
        dwUin?: (number|null);

        /** ReqSynGameData NewFBId */
        NewFBId?: (string|null);
    }

    /** 请求强制绑定已绑过其他设备的fb并且同步数据 */
    class ReqSynGameData implements IReqSynGameData {

        /**
         * Constructs a new ReqSynGameData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSynGameData);

        /** ReqSynGameData dwUin. */
        public dwUin: number;

        /** ReqSynGameData NewFBId. */
        public NewFBId: string;

        /**
         * Creates a new ReqSynGameData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSynGameData instance
         */
        public static create(properties?: tutorial.IReqSynGameData): tutorial.ReqSynGameData;

        /**
         * Encodes the specified ReqSynGameData message. Does not implicitly {@link tutorial.ReqSynGameData.verify|verify} messages.
         * @param message ReqSynGameData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSynGameData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSynGameData message, length delimited. Does not implicitly {@link tutorial.ReqSynGameData.verify|verify} messages.
         * @param message ReqSynGameData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSynGameData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSynGameData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSynGameData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSynGameData;

        /**
         * Decodes a ReqSynGameData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSynGameData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSynGameData;

        /**
         * Verifies a ReqSynGameData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSynGameData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSynGameData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSynGameData;

        /**
         * Creates a plain object from a ReqSynGameData message. Also converts values to other types if specified.
         * @param message ReqSynGameData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSynGameData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSynGameData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSynGameData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSynGameData. */
    interface IResSynGameData {

        /** ResSynGameData dwUin */
        dwUin?: (number|null);

        /** ResSynGameData ResultCode */
        ResultCode?: (number|null);
    }

    /** Represents a ResSynGameData. */
    class ResSynGameData implements IResSynGameData {

        /**
         * Constructs a new ResSynGameData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSynGameData);

        /** ResSynGameData dwUin. */
        public dwUin: number;

        /** ResSynGameData ResultCode. */
        public ResultCode: number;

        /**
         * Creates a new ResSynGameData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSynGameData instance
         */
        public static create(properties?: tutorial.IResSynGameData): tutorial.ResSynGameData;

        /**
         * Encodes the specified ResSynGameData message. Does not implicitly {@link tutorial.ResSynGameData.verify|verify} messages.
         * @param message ResSynGameData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSynGameData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSynGameData message, length delimited. Does not implicitly {@link tutorial.ResSynGameData.verify|verify} messages.
         * @param message ResSynGameData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSynGameData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSynGameData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSynGameData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSynGameData;

        /**
         * Decodes a ResSynGameData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSynGameData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSynGameData;

        /**
         * Verifies a ResSynGameData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSynGameData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSynGameData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSynGameData;

        /**
         * Creates a plain object from a ResSynGameData message. Also converts values to other types if specified.
         * @param message ResSynGameData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSynGameData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSynGameData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSynGameData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ForceKickOut. */
    interface IForceKickOut {
    }

    /** Represents a ForceKickOut. */
    class ForceKickOut implements IForceKickOut {

        /**
         * Constructs a new ForceKickOut.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IForceKickOut);

        /**
         * Creates a new ForceKickOut instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ForceKickOut instance
         */
        public static create(properties?: tutorial.IForceKickOut): tutorial.ForceKickOut;

        /**
         * Encodes the specified ForceKickOut message. Does not implicitly {@link tutorial.ForceKickOut.verify|verify} messages.
         * @param message ForceKickOut message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IForceKickOut, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ForceKickOut message, length delimited. Does not implicitly {@link tutorial.ForceKickOut.verify|verify} messages.
         * @param message ForceKickOut message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IForceKickOut, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ForceKickOut message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ForceKickOut
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ForceKickOut;

        /**
         * Decodes a ForceKickOut message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ForceKickOut
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ForceKickOut;

        /**
         * Verifies a ForceKickOut message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ForceKickOut message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ForceKickOut
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ForceKickOut;

        /**
         * Creates a plain object from a ForceKickOut message. Also converts values to other types if specified.
         * @param message ForceKickOut
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ForceKickOut, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ForceKickOut to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ForceKickOut
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResServerVersion. */
    interface IResServerVersion {

        /** ResServerVersion Version */
        Version?: (number|null);
    }

    /** Represents a ResServerVersion. */
    class ResServerVersion implements IResServerVersion {

        /**
         * Constructs a new ResServerVersion.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResServerVersion);

        /** ResServerVersion Version. */
        public Version: number;

        /**
         * Creates a new ResServerVersion instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResServerVersion instance
         */
        public static create(properties?: tutorial.IResServerVersion): tutorial.ResServerVersion;

        /**
         * Encodes the specified ResServerVersion message. Does not implicitly {@link tutorial.ResServerVersion.verify|verify} messages.
         * @param message ResServerVersion message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResServerVersion, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResServerVersion message, length delimited. Does not implicitly {@link tutorial.ResServerVersion.verify|verify} messages.
         * @param message ResServerVersion message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResServerVersion, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResServerVersion message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResServerVersion
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResServerVersion;

        /**
         * Decodes a ResServerVersion message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResServerVersion
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResServerVersion;

        /**
         * Verifies a ResServerVersion message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResServerVersion message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResServerVersion
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResServerVersion;

        /**
         * Creates a plain object from a ResServerVersion message. Also converts values to other types if specified.
         * @param message ResServerVersion
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResServerVersion, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResServerVersion to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResServerVersion
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResChessColorData. */
    interface IResChessColorData {

        /** ResChessColorData mChessColorData */
        mChessColorData?: ({ [k: string]: number }|null);
    }

    /** Represents a ResChessColorData. */
    class ResChessColorData implements IResChessColorData {

        /**
         * Constructs a new ResChessColorData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResChessColorData);

        /** ResChessColorData mChessColorData. */
        public mChessColorData: { [k: string]: number };

        /**
         * Creates a new ResChessColorData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResChessColorData instance
         */
        public static create(properties?: tutorial.IResChessColorData): tutorial.ResChessColorData;

        /**
         * Encodes the specified ResChessColorData message. Does not implicitly {@link tutorial.ResChessColorData.verify|verify} messages.
         * @param message ResChessColorData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResChessColorData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResChessColorData message, length delimited. Does not implicitly {@link tutorial.ResChessColorData.verify|verify} messages.
         * @param message ResChessColorData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResChessColorData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResChessColorData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResChessColorData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResChessColorData;

        /**
         * Decodes a ResChessColorData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResChessColorData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResChessColorData;

        /**
         * Verifies a ResChessColorData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResChessColorData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResChessColorData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResChessColorData;

        /**
         * Creates a plain object from a ResChessColorData message. Also converts values to other types if specified.
         * @param message ResChessColorData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResChessColorData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResChessColorData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResChessColorData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ClientRes. */
    interface IClientRes {

        /** ClientRes func */
        func?: (string|null);

        /** ClientRes cid */
        cid?: (string|null);

        /** ClientRes info */
        info?: (Uint8Array|null);
    }

    /** Represents a ClientRes. */
    class ClientRes implements IClientRes {

        /**
         * Constructs a new ClientRes.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IClientRes);

        /** ClientRes func. */
        public func: string;

        /** ClientRes cid. */
        public cid: string;

        /** ClientRes info. */
        public info: Uint8Array;

        /**
         * Creates a new ClientRes instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ClientRes instance
         */
        public static create(properties?: tutorial.IClientRes): tutorial.ClientRes;

        /**
         * Encodes the specified ClientRes message. Does not implicitly {@link tutorial.ClientRes.verify|verify} messages.
         * @param message ClientRes message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IClientRes, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ClientRes message, length delimited. Does not implicitly {@link tutorial.ClientRes.verify|verify} messages.
         * @param message ClientRes message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IClientRes, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ClientRes message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ClientRes
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ClientRes;

        /**
         * Decodes a ClientRes message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ClientRes
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ClientRes;

        /**
         * Verifies a ClientRes message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ClientRes message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ClientRes
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ClientRes;

        /**
         * Creates a plain object from a ClientRes message. Also converts values to other types if specified.
         * @param message ClientRes
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ClientRes, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ClientRes to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ClientRes
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRegisterAccount. */
    interface IReqRegisterAccount {

        /** ReqRegisterAccount UserName */
        UserName?: (string|null);

        /** ReqRegisterAccount UserPwd */
        UserPwd?: (string|null);

        /** ReqRegisterAccount dwUin */
        dwUin?: (number|null);
    }

    /** 请求注册账号 */
    class ReqRegisterAccount implements IReqRegisterAccount {

        /**
         * Constructs a new ReqRegisterAccount.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRegisterAccount);

        /** ReqRegisterAccount UserName. */
        public UserName: string;

        /** ReqRegisterAccount UserPwd. */
        public UserPwd: string;

        /** ReqRegisterAccount dwUin. */
        public dwUin: number;

        /**
         * Creates a new ReqRegisterAccount instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRegisterAccount instance
         */
        public static create(properties?: tutorial.IReqRegisterAccount): tutorial.ReqRegisterAccount;

        /**
         * Encodes the specified ReqRegisterAccount message. Does not implicitly {@link tutorial.ReqRegisterAccount.verify|verify} messages.
         * @param message ReqRegisterAccount message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRegisterAccount, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRegisterAccount message, length delimited. Does not implicitly {@link tutorial.ReqRegisterAccount.verify|verify} messages.
         * @param message ReqRegisterAccount message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRegisterAccount, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRegisterAccount message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRegisterAccount
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRegisterAccount;

        /**
         * Decodes a ReqRegisterAccount message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRegisterAccount
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRegisterAccount;

        /**
         * Verifies a ReqRegisterAccount message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRegisterAccount message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRegisterAccount
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRegisterAccount;

        /**
         * Creates a plain object from a ReqRegisterAccount message. Also converts values to other types if specified.
         * @param message ReqRegisterAccount
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRegisterAccount, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRegisterAccount to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRegisterAccount
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRegisterAccount. */
    interface IResRegisterAccount {

        /** ResRegisterAccount ResultCode */
        ResultCode?: (number|null);
    }

    /** 响应注册账号 */
    class ResRegisterAccount implements IResRegisterAccount {

        /**
         * Constructs a new ResRegisterAccount.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRegisterAccount);

        /** ResRegisterAccount ResultCode. */
        public ResultCode: number;

        /**
         * Creates a new ResRegisterAccount instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRegisterAccount instance
         */
        public static create(properties?: tutorial.IResRegisterAccount): tutorial.ResRegisterAccount;

        /**
         * Encodes the specified ResRegisterAccount message. Does not implicitly {@link tutorial.ResRegisterAccount.verify|verify} messages.
         * @param message ResRegisterAccount message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRegisterAccount, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRegisterAccount message, length delimited. Does not implicitly {@link tutorial.ResRegisterAccount.verify|verify} messages.
         * @param message ResRegisterAccount message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRegisterAccount, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRegisterAccount message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRegisterAccount
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRegisterAccount;

        /**
         * Decodes a ResRegisterAccount message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRegisterAccount
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRegisterAccount;

        /**
         * Verifies a ResRegisterAccount message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRegisterAccount message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRegisterAccount
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRegisterAccount;

        /**
         * Creates a plain object from a ResRegisterAccount message. Also converts values to other types if specified.
         * @param message ResRegisterAccount
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRegisterAccount, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRegisterAccount to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRegisterAccount
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqLogin. */
    interface IReqLogin {

        /** ReqLogin UserName */
        UserName?: (string|null);

        /** ReqLogin UserPwd */
        UserPwd?: (string|null);
    }

    /** 请求登录 */
    class ReqLogin implements IReqLogin {

        /**
         * Constructs a new ReqLogin.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqLogin);

        /** ReqLogin UserName. */
        public UserName: string;

        /** ReqLogin UserPwd. */
        public UserPwd: string;

        /**
         * Creates a new ReqLogin instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqLogin instance
         */
        public static create(properties?: tutorial.IReqLogin): tutorial.ReqLogin;

        /**
         * Encodes the specified ReqLogin message. Does not implicitly {@link tutorial.ReqLogin.verify|verify} messages.
         * @param message ReqLogin message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqLogin, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqLogin message, length delimited. Does not implicitly {@link tutorial.ReqLogin.verify|verify} messages.
         * @param message ReqLogin message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqLogin, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqLogin message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqLogin;

        /**
         * Decodes a ReqLogin message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqLogin;

        /**
         * Verifies a ReqLogin message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqLogin message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqLogin
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqLogin;

        /**
         * Creates a plain object from a ReqLogin message. Also converts values to other types if specified.
         * @param message ReqLogin
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqLogin, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqLogin to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqLogin
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResLogin. */
    interface IResLogin {

        /** ResLogin ResultCode */
        ResultCode?: (number|null);

        /** ResLogin dwUin */
        dwUin?: (number|null);

        /** ResLogin UserName */
        UserName?: (string|null);

        /** ResLogin FaceBookId */
        FaceBookId?: (string|null);
    }

    /** 响应登录 */
    class ResLogin implements IResLogin {

        /**
         * Constructs a new ResLogin.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResLogin);

        /** ResLogin ResultCode. */
        public ResultCode: number;

        /** ResLogin dwUin. */
        public dwUin: number;

        /** ResLogin UserName. */
        public UserName: string;

        /** ResLogin FaceBookId. */
        public FaceBookId: string;

        /**
         * Creates a new ResLogin instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResLogin instance
         */
        public static create(properties?: tutorial.IResLogin): tutorial.ResLogin;

        /**
         * Encodes the specified ResLogin message. Does not implicitly {@link tutorial.ResLogin.verify|verify} messages.
         * @param message ResLogin message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResLogin, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResLogin message, length delimited. Does not implicitly {@link tutorial.ResLogin.verify|verify} messages.
         * @param message ResLogin message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResLogin, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResLogin message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResLogin;

        /**
         * Decodes a ResLogin message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResLogin;

        /**
         * Verifies a ResLogin message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResLogin message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResLogin
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResLogin;

        /**
         * Creates a plain object from a ResLogin message. Also converts values to other types if specified.
         * @param message ResLogin
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResLogin, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResLogin to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResLogin
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayerBaseInfo. */
    interface IReqPlayerBaseInfo {

        /** ReqPlayerBaseInfo dwUin */
        dwUin?: (number|null);
    }

    /** 请求玩家基本信息（玩家登入成功后，第一条请求信息） */
    class ReqPlayerBaseInfo implements IReqPlayerBaseInfo {

        /**
         * Constructs a new ReqPlayerBaseInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayerBaseInfo);

        /** ReqPlayerBaseInfo dwUin. */
        public dwUin: number;

        /**
         * Creates a new ReqPlayerBaseInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayerBaseInfo instance
         */
        public static create(properties?: tutorial.IReqPlayerBaseInfo): tutorial.ReqPlayerBaseInfo;

        /**
         * Encodes the specified ReqPlayerBaseInfo message. Does not implicitly {@link tutorial.ReqPlayerBaseInfo.verify|verify} messages.
         * @param message ReqPlayerBaseInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayerBaseInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayerBaseInfo message, length delimited. Does not implicitly {@link tutorial.ReqPlayerBaseInfo.verify|verify} messages.
         * @param message ReqPlayerBaseInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayerBaseInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayerBaseInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayerBaseInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayerBaseInfo;

        /**
         * Decodes a ReqPlayerBaseInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayerBaseInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayerBaseInfo;

        /**
         * Verifies a ReqPlayerBaseInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayerBaseInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayerBaseInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayerBaseInfo;

        /**
         * Creates a plain object from a ReqPlayerBaseInfo message. Also converts values to other types if specified.
         * @param message ReqPlayerBaseInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayerBaseInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayerBaseInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayerBaseInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayerBaseInfo. */
    interface IResPlayerBaseInfo {

        /** ResPlayerBaseInfo dwUin */
        dwUin?: (number|null);

        /** ResPlayerBaseInfo energy */
        energy?: (number|null);

        /** ResPlayerBaseInfo star */
        star?: (number|null);

        /** ResPlayerBaseInfo recoverTime */
        recoverTime?: (number|null);

        /** ResPlayerBaseInfo diamond */
        diamond?: (number|null);

        /** ResPlayerBaseInfo level */
        level?: (number|null);

        /** ResPlayerBaseInfo exp */
        exp?: (number|null);

        /** ResPlayerBaseInfo startOrderId */
        startOrderId?: (string|null);

        /** ResPlayerBaseInfo musicCode */
        musicCode?: (number|null);

        /** ResPlayerBaseInfo guild */
        guild?: (number|null);

        /** ResPlayerBaseInfo packUnlockCount */
        packUnlockCount?: (number|null);

        /** ResPlayerBaseInfo lastPlayTime */
        lastPlayTime?: (number|null);

        /** ResPlayerBaseInfo EnergyBuyCount */
        EnergyBuyCount?: (number|null);

        /** ResPlayerBaseInfo userName */
        userName?: (string|null);

        /** ResPlayerBaseInfo loginTime */
        loginTime?: (number|null);

        /** ResPlayerBaseInfo logoutTime */
        logoutTime?: (number|null);

        /** ResPlayerBaseInfo todayolinetime */
        todayolinetime?: (number|null);

        /** ResPlayerBaseInfo rolecreatetime */
        rolecreatetime?: (number|null);

        /** ResPlayerBaseInfo EmitOrderCnt */
        EmitOrderCnt?: (number|null);

        /** ResPlayerBaseInfo NoAd */
        NoAd?: (number|null);

        /** ResPlayerBaseInfo ChampshipsGroupID */
        ChampshipsGroupID?: (number|null);

        /** ResPlayerBaseInfo LastChampGroupID */
        LastChampGroupID?: (number|null);

        /** ResPlayerBaseInfo FaceBookId */
        FaceBookId?: (string|null);
    }

    /** Represents a ResPlayerBaseInfo. */
    class ResPlayerBaseInfo implements IResPlayerBaseInfo {

        /**
         * Constructs a new ResPlayerBaseInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayerBaseInfo);

        /** ResPlayerBaseInfo dwUin. */
        public dwUin: number;

        /** ResPlayerBaseInfo energy. */
        public energy: number;

        /** ResPlayerBaseInfo star. */
        public star: number;

        /** ResPlayerBaseInfo recoverTime. */
        public recoverTime: number;

        /** ResPlayerBaseInfo diamond. */
        public diamond: number;

        /** ResPlayerBaseInfo level. */
        public level: number;

        /** ResPlayerBaseInfo exp. */
        public exp: number;

        /** ResPlayerBaseInfo startOrderId. */
        public startOrderId: string;

        /** ResPlayerBaseInfo musicCode. */
        public musicCode: number;

        /** ResPlayerBaseInfo guild. */
        public guild: number;

        /** ResPlayerBaseInfo packUnlockCount. */
        public packUnlockCount: number;

        /** ResPlayerBaseInfo lastPlayTime. */
        public lastPlayTime: number;

        /** ResPlayerBaseInfo EnergyBuyCount. */
        public EnergyBuyCount: number;

        /** ResPlayerBaseInfo userName. */
        public userName: string;

        /** ResPlayerBaseInfo loginTime. */
        public loginTime: number;

        /** ResPlayerBaseInfo logoutTime. */
        public logoutTime: number;

        /** ResPlayerBaseInfo todayolinetime. */
        public todayolinetime: number;

        /** ResPlayerBaseInfo rolecreatetime. */
        public rolecreatetime: number;

        /** ResPlayerBaseInfo EmitOrderCnt. */
        public EmitOrderCnt: number;

        /** ResPlayerBaseInfo NoAd. */
        public NoAd: number;

        /** ResPlayerBaseInfo ChampshipsGroupID. */
        public ChampshipsGroupID: number;

        /** ResPlayerBaseInfo LastChampGroupID. */
        public LastChampGroupID: number;

        /** ResPlayerBaseInfo FaceBookId. */
        public FaceBookId: string;

        /**
         * Creates a new ResPlayerBaseInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayerBaseInfo instance
         */
        public static create(properties?: tutorial.IResPlayerBaseInfo): tutorial.ResPlayerBaseInfo;

        /**
         * Encodes the specified ResPlayerBaseInfo message. Does not implicitly {@link tutorial.ResPlayerBaseInfo.verify|verify} messages.
         * @param message ResPlayerBaseInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayerBaseInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayerBaseInfo message, length delimited. Does not implicitly {@link tutorial.ResPlayerBaseInfo.verify|verify} messages.
         * @param message ResPlayerBaseInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayerBaseInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayerBaseInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayerBaseInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayerBaseInfo;

        /**
         * Decodes a ResPlayerBaseInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayerBaseInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayerBaseInfo;

        /**
         * Verifies a ResPlayerBaseInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayerBaseInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayerBaseInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayerBaseInfo;

        /**
         * Creates a plain object from a ResPlayerBaseInfo message. Also converts values to other types if specified.
         * @param message ResPlayerBaseInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayerBaseInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayerBaseInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayerBaseInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayerAsset. */
    interface IResPlayerAsset {

        /** ResPlayerAsset dwUin */
        dwUin?: (number|null);

        /** ResPlayerAsset energy */
        energy?: (number|null);

        /** ResPlayerAsset star */
        star?: (number|null);

        /** ResPlayerAsset recoverTime */
        recoverTime?: (number|null);

        /** ResPlayerAsset diamond */
        diamond?: (number|null);

        /** ResPlayerAsset level */
        level?: (number|null);

        /** ResPlayerAsset exp */
        exp?: (number|null);

        /** ResPlayerAsset Login */
        Login?: (number|null);

        /** ResPlayerAsset Logout */
        Logout?: (number|null);
    }

    /** Represents a ResPlayerAsset. */
    class ResPlayerAsset implements IResPlayerAsset {

        /**
         * Constructs a new ResPlayerAsset.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayerAsset);

        /** ResPlayerAsset dwUin. */
        public dwUin: number;

        /** ResPlayerAsset energy. */
        public energy: number;

        /** ResPlayerAsset star. */
        public star: number;

        /** ResPlayerAsset recoverTime. */
        public recoverTime: number;

        /** ResPlayerAsset diamond. */
        public diamond: number;

        /** ResPlayerAsset level. */
        public level: number;

        /** ResPlayerAsset exp. */
        public exp: number;

        /** ResPlayerAsset Login. */
        public Login: number;

        /** ResPlayerAsset Logout. */
        public Logout: number;

        /**
         * Creates a new ResPlayerAsset instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayerAsset instance
         */
        public static create(properties?: tutorial.IResPlayerAsset): tutorial.ResPlayerAsset;

        /**
         * Encodes the specified ResPlayerAsset message. Does not implicitly {@link tutorial.ResPlayerAsset.verify|verify} messages.
         * @param message ResPlayerAsset message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayerAsset, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayerAsset message, length delimited. Does not implicitly {@link tutorial.ResPlayerAsset.verify|verify} messages.
         * @param message ResPlayerAsset message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayerAsset, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayerAsset message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayerAsset
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayerAsset;

        /**
         * Decodes a ResPlayerAsset message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayerAsset
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayerAsset;

        /**
         * Verifies a ResPlayerAsset message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayerAsset message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayerAsset
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayerAsset;

        /**
         * Creates a plain object from a ResPlayerAsset message. Also converts values to other types if specified.
         * @param message ResPlayerAsset
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayerAsset, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayerAsset to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayerAsset
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an UpdateBaseItemInfo. */
    interface IUpdateBaseItemInfo {

        /** UpdateBaseItemInfo dwUin */
        dwUin?: (number|null);

        /** UpdateBaseItemInfo mUpdateItem */
        mUpdateItem?: ({ [k: string]: number }|null);
    }

    /** Represents an UpdateBaseItemInfo. */
    class UpdateBaseItemInfo implements IUpdateBaseItemInfo {

        /**
         * Constructs a new UpdateBaseItemInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IUpdateBaseItemInfo);

        /** UpdateBaseItemInfo dwUin. */
        public dwUin: number;

        /** UpdateBaseItemInfo mUpdateItem. */
        public mUpdateItem: { [k: string]: number };

        /**
         * Creates a new UpdateBaseItemInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns UpdateBaseItemInfo instance
         */
        public static create(properties?: tutorial.IUpdateBaseItemInfo): tutorial.UpdateBaseItemInfo;

        /**
         * Encodes the specified UpdateBaseItemInfo message. Does not implicitly {@link tutorial.UpdateBaseItemInfo.verify|verify} messages.
         * @param message UpdateBaseItemInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IUpdateBaseItemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified UpdateBaseItemInfo message, length delimited. Does not implicitly {@link tutorial.UpdateBaseItemInfo.verify|verify} messages.
         * @param message UpdateBaseItemInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IUpdateBaseItemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an UpdateBaseItemInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns UpdateBaseItemInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.UpdateBaseItemInfo;

        /**
         * Decodes an UpdateBaseItemInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns UpdateBaseItemInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.UpdateBaseItemInfo;

        /**
         * Verifies an UpdateBaseItemInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an UpdateBaseItemInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns UpdateBaseItemInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.UpdateBaseItemInfo;

        /**
         * Creates a plain object from an UpdateBaseItemInfo message. Also converts values to other types if specified.
         * @param message UpdateBaseItemInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.UpdateBaseItemInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this UpdateBaseItemInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for UpdateBaseItemInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NotifyRenewBuyEnergyCnt. */
    interface INotifyRenewBuyEnergyCnt {

        /** NotifyRenewBuyEnergyCnt dwUin */
        dwUin?: (number|null);

        /** NotifyRenewBuyEnergyCnt CurCnt */
        CurCnt?: (number|null);
    }

    /** Represents a NotifyRenewBuyEnergyCnt. */
    class NotifyRenewBuyEnergyCnt implements INotifyRenewBuyEnergyCnt {

        /**
         * Constructs a new NotifyRenewBuyEnergyCnt.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INotifyRenewBuyEnergyCnt);

        /** NotifyRenewBuyEnergyCnt dwUin. */
        public dwUin: number;

        /** NotifyRenewBuyEnergyCnt CurCnt. */
        public CurCnt: number;

        /**
         * Creates a new NotifyRenewBuyEnergyCnt instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NotifyRenewBuyEnergyCnt instance
         */
        public static create(properties?: tutorial.INotifyRenewBuyEnergyCnt): tutorial.NotifyRenewBuyEnergyCnt;

        /**
         * Encodes the specified NotifyRenewBuyEnergyCnt message. Does not implicitly {@link tutorial.NotifyRenewBuyEnergyCnt.verify|verify} messages.
         * @param message NotifyRenewBuyEnergyCnt message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INotifyRenewBuyEnergyCnt, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NotifyRenewBuyEnergyCnt message, length delimited. Does not implicitly {@link tutorial.NotifyRenewBuyEnergyCnt.verify|verify} messages.
         * @param message NotifyRenewBuyEnergyCnt message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INotifyRenewBuyEnergyCnt, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NotifyRenewBuyEnergyCnt message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NotifyRenewBuyEnergyCnt
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NotifyRenewBuyEnergyCnt;

        /**
         * Decodes a NotifyRenewBuyEnergyCnt message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NotifyRenewBuyEnergyCnt
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NotifyRenewBuyEnergyCnt;

        /**
         * Verifies a NotifyRenewBuyEnergyCnt message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NotifyRenewBuyEnergyCnt message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NotifyRenewBuyEnergyCnt
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NotifyRenewBuyEnergyCnt;

        /**
         * Creates a plain object from a NotifyRenewBuyEnergyCnt message. Also converts values to other types if specified.
         * @param message NotifyRenewBuyEnergyCnt
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NotifyRenewBuyEnergyCnt, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NotifyRenewBuyEnergyCnt to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NotifyRenewBuyEnergyCnt
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRemoveAd. */
    interface IReqRemoveAd {

        /** ReqRemoveAd dwUin */
        dwUin?: (number|null);
    }

    /** 请求移除广告 */
    class ReqRemoveAd implements IReqRemoveAd {

        /**
         * Constructs a new ReqRemoveAd.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRemoveAd);

        /** ReqRemoveAd dwUin. */
        public dwUin: number;

        /**
         * Creates a new ReqRemoveAd instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRemoveAd instance
         */
        public static create(properties?: tutorial.IReqRemoveAd): tutorial.ReqRemoveAd;

        /**
         * Encodes the specified ReqRemoveAd message. Does not implicitly {@link tutorial.ReqRemoveAd.verify|verify} messages.
         * @param message ReqRemoveAd message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRemoveAd, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRemoveAd message, length delimited. Does not implicitly {@link tutorial.ReqRemoveAd.verify|verify} messages.
         * @param message ReqRemoveAd message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRemoveAd, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRemoveAd message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRemoveAd
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRemoveAd;

        /**
         * Decodes a ReqRemoveAd message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRemoveAd
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRemoveAd;

        /**
         * Verifies a ReqRemoveAd message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRemoveAd message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRemoveAd
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRemoveAd;

        /**
         * Creates a plain object from a ReqRemoveAd message. Also converts values to other types if specified.
         * @param message ReqRemoveAd
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRemoveAd, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRemoveAd to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRemoveAd
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRemoveAd. */
    interface IResRemoveAd {

        /** ResRemoveAd ResultCode */
        ResultCode?: (number|null);
    }

    /** 响应移除广告 */
    class ResRemoveAd implements IResRemoveAd {

        /**
         * Constructs a new ResRemoveAd.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRemoveAd);

        /** ResRemoveAd ResultCode. */
        public ResultCode: number;

        /**
         * Creates a new ResRemoveAd instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRemoveAd instance
         */
        public static create(properties?: tutorial.IResRemoveAd): tutorial.ResRemoveAd;

        /**
         * Encodes the specified ResRemoveAd message. Does not implicitly {@link tutorial.ResRemoveAd.verify|verify} messages.
         * @param message ResRemoveAd message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRemoveAd, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRemoveAd message, length delimited. Does not implicitly {@link tutorial.ResRemoveAd.verify|verify} messages.
         * @param message ResRemoveAd message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRemoveAd, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRemoveAd message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRemoveAd
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRemoveAd;

        /**
         * Decodes a ResRemoveAd message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRemoveAd
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRemoveAd;

        /**
         * Verifies a ResRemoveAd message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRemoveAd message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRemoveAd
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRemoveAd;

        /**
         * Creates a plain object from a ResRemoveAd message. Also converts values to other types if specified.
         * @param message ResRemoveAd
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRemoveAd, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRemoveAd to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRemoveAd
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NotifyAddEnergy. */
    interface INotifyAddEnergy {

        /** NotifyAddEnergy dwUin */
        dwUin?: (number|null);

        /** NotifyAddEnergy addCnt */
        addCnt?: (number|null);
    }

    /** Represents a NotifyAddEnergy. */
    class NotifyAddEnergy implements INotifyAddEnergy {

        /**
         * Constructs a new NotifyAddEnergy.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INotifyAddEnergy);

        /** NotifyAddEnergy dwUin. */
        public dwUin: number;

        /** NotifyAddEnergy addCnt. */
        public addCnt: number;

        /**
         * Creates a new NotifyAddEnergy instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NotifyAddEnergy instance
         */
        public static create(properties?: tutorial.INotifyAddEnergy): tutorial.NotifyAddEnergy;

        /**
         * Encodes the specified NotifyAddEnergy message. Does not implicitly {@link tutorial.NotifyAddEnergy.verify|verify} messages.
         * @param message NotifyAddEnergy message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INotifyAddEnergy, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NotifyAddEnergy message, length delimited. Does not implicitly {@link tutorial.NotifyAddEnergy.verify|verify} messages.
         * @param message NotifyAddEnergy message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INotifyAddEnergy, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NotifyAddEnergy message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NotifyAddEnergy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NotifyAddEnergy;

        /**
         * Decodes a NotifyAddEnergy message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NotifyAddEnergy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NotifyAddEnergy;

        /**
         * Verifies a NotifyAddEnergy message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NotifyAddEnergy message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NotifyAddEnergy
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NotifyAddEnergy;

        /**
         * Creates a plain object from a NotifyAddEnergy message. Also converts values to other types if specified.
         * @param message NotifyAddEnergy
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NotifyAddEnergy, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NotifyAddEnergy to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NotifyAddEnergy
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqServerTime. */
    interface IReqServerTime {

        /** ReqServerTime dwUin */
        dwUin?: (number|null);
    }

    /** 请求服务器时间 */
    class ReqServerTime implements IReqServerTime {

        /**
         * Constructs a new ReqServerTime.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqServerTime);

        /** ReqServerTime dwUin. */
        public dwUin: number;

        /**
         * Creates a new ReqServerTime instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqServerTime instance
         */
        public static create(properties?: tutorial.IReqServerTime): tutorial.ReqServerTime;

        /**
         * Encodes the specified ReqServerTime message. Does not implicitly {@link tutorial.ReqServerTime.verify|verify} messages.
         * @param message ReqServerTime message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqServerTime, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqServerTime message, length delimited. Does not implicitly {@link tutorial.ReqServerTime.verify|verify} messages.
         * @param message ReqServerTime message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqServerTime, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqServerTime message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqServerTime
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqServerTime;

        /**
         * Decodes a ReqServerTime message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqServerTime
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqServerTime;

        /**
         * Verifies a ReqServerTime message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqServerTime message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqServerTime
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqServerTime;

        /**
         * Creates a plain object from a ReqServerTime message. Also converts values to other types if specified.
         * @param message ReqServerTime
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqServerTime, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqServerTime to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqServerTime
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResServerTime. */
    interface IResServerTime {

        /** ResServerTime ServerTime */
        ServerTime?: (number|null);
    }

    /** 响应服务器时间 */
    class ResServerTime implements IResServerTime {

        /**
         * Constructs a new ResServerTime.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResServerTime);

        /** ResServerTime ServerTime. */
        public ServerTime: number;

        /**
         * Creates a new ResServerTime instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResServerTime instance
         */
        public static create(properties?: tutorial.IResServerTime): tutorial.ResServerTime;

        /**
         * Encodes the specified ResServerTime message. Does not implicitly {@link tutorial.ResServerTime.verify|verify} messages.
         * @param message ResServerTime message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResServerTime, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResServerTime message, length delimited. Does not implicitly {@link tutorial.ResServerTime.verify|verify} messages.
         * @param message ResServerTime message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResServerTime, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResServerTime message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResServerTime
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResServerTime;

        /**
         * Decodes a ResServerTime message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResServerTime
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResServerTime;

        /**
         * Verifies a ResServerTime message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResServerTime message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResServerTime
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResServerTime;

        /**
         * Creates a plain object from a ResServerTime message. Also converts values to other types if specified.
         * @param message ResServerTime
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResServerTime, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResServerTime to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResServerTime
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayerChessData. */
    interface IReqPlayerChessData {

        /** ReqPlayerChessData dwUin */
        dwUin?: (number|null);
    }

    /** Represents a ReqPlayerChessData. */
    class ReqPlayerChessData implements IReqPlayerChessData {

        /**
         * Constructs a new ReqPlayerChessData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayerChessData);

        /** ReqPlayerChessData dwUin. */
        public dwUin: number;

        /**
         * Creates a new ReqPlayerChessData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayerChessData instance
         */
        public static create(properties?: tutorial.IReqPlayerChessData): tutorial.ReqPlayerChessData;

        /**
         * Encodes the specified ReqPlayerChessData message. Does not implicitly {@link tutorial.ReqPlayerChessData.verify|verify} messages.
         * @param message ReqPlayerChessData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayerChessData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayerChessData message, length delimited. Does not implicitly {@link tutorial.ReqPlayerChessData.verify|verify} messages.
         * @param message ReqPlayerChessData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayerChessData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayerChessData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayerChessData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayerChessData;

        /**
         * Decodes a ReqPlayerChessData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayerChessData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayerChessData;

        /**
         * Verifies a ReqPlayerChessData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayerChessData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayerChessData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayerChessData;

        /**
         * Creates a plain object from a ReqPlayerChessData message. Also converts values to other types if specified.
         * @param message ReqPlayerChessData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayerChessData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayerChessData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayerChessData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayerChessData. */
    interface IResPlayerChessData {

        /** ResPlayerChessData dwUin */
        dwUin?: (number|null);

        /** ResPlayerChessData mChessData */
        mChessData?: ({ [k: string]: number }|null);

        /** ResPlayerChessData ChessList */
        ChessList?: (number[]|null);

        /** ResPlayerChessData ChessBuff */
        ChessBuff?: (number[]|null);
    }

    /** 响应棋盘数据 */
    class ResPlayerChessData implements IResPlayerChessData {

        /**
         * Constructs a new ResPlayerChessData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayerChessData);

        /** ResPlayerChessData dwUin. */
        public dwUin: number;

        /** ResPlayerChessData mChessData. */
        public mChessData: { [k: string]: number };

        /** ResPlayerChessData ChessList. */
        public ChessList: number[];

        /** ResPlayerChessData ChessBuff. */
        public ChessBuff: number[];

        /**
         * Creates a new ResPlayerChessData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayerChessData instance
         */
        public static create(properties?: tutorial.IResPlayerChessData): tutorial.ResPlayerChessData;

        /**
         * Encodes the specified ResPlayerChessData message. Does not implicitly {@link tutorial.ResPlayerChessData.verify|verify} messages.
         * @param message ResPlayerChessData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayerChessData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayerChessData message, length delimited. Does not implicitly {@link tutorial.ResPlayerChessData.verify|verify} messages.
         * @param message ResPlayerChessData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayerChessData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayerChessData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayerChessData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayerChessData;

        /**
         * Decodes a ResPlayerChessData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayerChessData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayerChessData;

        /**
         * Verifies a ResPlayerChessData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayerChessData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayerChessData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayerChessData;

        /**
         * Creates a plain object from a ResPlayerChessData message. Also converts values to other types if specified.
         * @param message ResPlayerChessData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayerChessData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayerChessData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayerChessData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayerChessInfo. */
    interface IResPlayerChessInfo {

        /** ResPlayerChessInfo ChessList */
        ChessList?: (number[]|null);

        /** ResPlayerChessInfo ChessBuff */
        ChessBuff?: (number[]|null);

        /** ResPlayerChessInfo ChessBag */
        ChessBag?: (tutorial.IChessBag|null);

        /** ResPlayerChessInfo RetireEmit */
        RetireEmit?: (string[]|null);

        /** ResPlayerChessInfo Honor */
        Honor?: (number[]|null);
    }

    /** Represents a ResPlayerChessInfo. */
    class ResPlayerChessInfo implements IResPlayerChessInfo {

        /**
         * Constructs a new ResPlayerChessInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayerChessInfo);

        /** ResPlayerChessInfo ChessList. */
        public ChessList: number[];

        /** ResPlayerChessInfo ChessBuff. */
        public ChessBuff: number[];

        /** ResPlayerChessInfo ChessBag. */
        public ChessBag?: (tutorial.IChessBag|null);

        /** ResPlayerChessInfo RetireEmit. */
        public RetireEmit: string[];

        /** ResPlayerChessInfo Honor. */
        public Honor: number[];

        /**
         * Creates a new ResPlayerChessInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayerChessInfo instance
         */
        public static create(properties?: tutorial.IResPlayerChessInfo): tutorial.ResPlayerChessInfo;

        /**
         * Encodes the specified ResPlayerChessInfo message. Does not implicitly {@link tutorial.ResPlayerChessInfo.verify|verify} messages.
         * @param message ResPlayerChessInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayerChessInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayerChessInfo message, length delimited. Does not implicitly {@link tutorial.ResPlayerChessInfo.verify|verify} messages.
         * @param message ResPlayerChessInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayerChessInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayerChessInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayerChessInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayerChessInfo;

        /**
         * Decodes a ResPlayerChessInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayerChessInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayerChessInfo;

        /**
         * Verifies a ResPlayerChessInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayerChessInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayerChessInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayerChessInfo;

        /**
         * Creates a plain object from a ResPlayerChessInfo message. Also converts values to other types if specified.
         * @param message ResPlayerChessInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayerChessInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayerChessInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayerChessInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ChessHandle. */
    interface IChessHandle {

        /** ChessHandle type */
        type?: (tutorial.HANDLE_TYPE|null);

        /** ChessHandle Emit */
        Emit?: (number|null);

        /** ChessHandle ChessId */
        ChessId?: (number|null);

        /** ChessHandle Id */
        Id?: (number|null);

        /** ChessHandle ActType */
        ActType?: (number[]|null);
    }

    /** Represents a ChessHandle. */
    class ChessHandle implements IChessHandle {

        /**
         * Constructs a new ChessHandle.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IChessHandle);

        /** ChessHandle type. */
        public type: tutorial.HANDLE_TYPE;

        /** ChessHandle Emit. */
        public Emit: number;

        /** ChessHandle ChessId. */
        public ChessId: number;

        /** ChessHandle Id. */
        public Id: number;

        /** ChessHandle ActType. */
        public ActType: number[];

        /**
         * Creates a new ChessHandle instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ChessHandle instance
         */
        public static create(properties?: tutorial.IChessHandle): tutorial.ChessHandle;

        /**
         * Encodes the specified ChessHandle message. Does not implicitly {@link tutorial.ChessHandle.verify|verify} messages.
         * @param message ChessHandle message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IChessHandle, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ChessHandle message, length delimited. Does not implicitly {@link tutorial.ChessHandle.verify|verify} messages.
         * @param message ChessHandle message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IChessHandle, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ChessHandle message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ChessHandle
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ChessHandle;

        /**
         * Decodes a ChessHandle message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ChessHandle
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ChessHandle;

        /**
         * Verifies a ChessHandle message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ChessHandle message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ChessHandle
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ChessHandle;

        /**
         * Creates a plain object from a ChessHandle message. Also converts values to other types if specified.
         * @param message ChessHandle
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ChessHandle, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ChessHandle to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ChessHandle
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an UpdatePlayerChessData. */
    interface IUpdatePlayerChessData {

        /** UpdatePlayerChessData dwUin */
        dwUin?: (number|null);

        /** UpdatePlayerChessData mChessData */
        mChessData?: ({ [k: string]: number }|null);

        /** UpdatePlayerChessData mChessHandle */
        mChessHandle?: (tutorial.IChessHandle[]|null);
    }

    /** 同步棋盘数据 */
    class UpdatePlayerChessData implements IUpdatePlayerChessData {

        /**
         * Constructs a new UpdatePlayerChessData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IUpdatePlayerChessData);

        /** UpdatePlayerChessData dwUin. */
        public dwUin: number;

        /** UpdatePlayerChessData mChessData. */
        public mChessData: { [k: string]: number };

        /** UpdatePlayerChessData mChessHandle. */
        public mChessHandle: tutorial.IChessHandle[];

        /**
         * Creates a new UpdatePlayerChessData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns UpdatePlayerChessData instance
         */
        public static create(properties?: tutorial.IUpdatePlayerChessData): tutorial.UpdatePlayerChessData;

        /**
         * Encodes the specified UpdatePlayerChessData message. Does not implicitly {@link tutorial.UpdatePlayerChessData.verify|verify} messages.
         * @param message UpdatePlayerChessData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IUpdatePlayerChessData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified UpdatePlayerChessData message, length delimited. Does not implicitly {@link tutorial.UpdatePlayerChessData.verify|verify} messages.
         * @param message UpdatePlayerChessData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IUpdatePlayerChessData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an UpdatePlayerChessData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns UpdatePlayerChessData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.UpdatePlayerChessData;

        /**
         * Decodes an UpdatePlayerChessData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns UpdatePlayerChessData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.UpdatePlayerChessData;

        /**
         * Verifies an UpdatePlayerChessData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an UpdatePlayerChessData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns UpdatePlayerChessData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.UpdatePlayerChessData;

        /**
         * Creates a plain object from an UpdatePlayerChessData message. Also converts values to other types if specified.
         * @param message UpdatePlayerChessData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.UpdatePlayerChessData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this UpdatePlayerChessData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for UpdatePlayerChessData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResUpdatePlayerChessData. */
    interface IResUpdatePlayerChessData {

        /** ResUpdatePlayerChessData code */
        code?: (tutorial.RES_CODE|null);

        /** ResUpdatePlayerChessData msg */
        msg?: (string|null);
    }

    /** Represents a ResUpdatePlayerChessData. */
    class ResUpdatePlayerChessData implements IResUpdatePlayerChessData {

        /**
         * Constructs a new ResUpdatePlayerChessData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResUpdatePlayerChessData);

        /** ResUpdatePlayerChessData code. */
        public code: tutorial.RES_CODE;

        /** ResUpdatePlayerChessData msg. */
        public msg: string;

        /**
         * Creates a new ResUpdatePlayerChessData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResUpdatePlayerChessData instance
         */
        public static create(properties?: tutorial.IResUpdatePlayerChessData): tutorial.ResUpdatePlayerChessData;

        /**
         * Encodes the specified ResUpdatePlayerChessData message. Does not implicitly {@link tutorial.ResUpdatePlayerChessData.verify|verify} messages.
         * @param message ResUpdatePlayerChessData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResUpdatePlayerChessData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResUpdatePlayerChessData message, length delimited. Does not implicitly {@link tutorial.ResUpdatePlayerChessData.verify|verify} messages.
         * @param message ResUpdatePlayerChessData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResUpdatePlayerChessData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResUpdatePlayerChessData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResUpdatePlayerChessData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResUpdatePlayerChessData;

        /**
         * Decodes a ResUpdatePlayerChessData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResUpdatePlayerChessData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResUpdatePlayerChessData;

        /**
         * Verifies a ResUpdatePlayerChessData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResUpdatePlayerChessData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResUpdatePlayerChessData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResUpdatePlayerChessData;

        /**
         * Creates a plain object from a ResUpdatePlayerChessData message. Also converts values to other types if specified.
         * @param message ResUpdatePlayerChessData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResUpdatePlayerChessData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResUpdatePlayerChessData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResUpdatePlayerChessData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetChessFromBuff. */
    interface IReqGetChessFromBuff {

        /** ReqGetChessFromBuff ChessId */
        ChessId?: (number|null);

        /** ReqGetChessFromBuff mChessData */
        mChessData?: ({ [k: string]: number }|null);
    }

    /** Represents a ReqGetChessFromBuff. */
    class ReqGetChessFromBuff implements IReqGetChessFromBuff {

        /**
         * Constructs a new ReqGetChessFromBuff.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetChessFromBuff);

        /** ReqGetChessFromBuff ChessId. */
        public ChessId: number;

        /** ReqGetChessFromBuff mChessData. */
        public mChessData: { [k: string]: number };

        /**
         * Creates a new ReqGetChessFromBuff instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetChessFromBuff instance
         */
        public static create(properties?: tutorial.IReqGetChessFromBuff): tutorial.ReqGetChessFromBuff;

        /**
         * Encodes the specified ReqGetChessFromBuff message. Does not implicitly {@link tutorial.ReqGetChessFromBuff.verify|verify} messages.
         * @param message ReqGetChessFromBuff message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetChessFromBuff, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetChessFromBuff message, length delimited. Does not implicitly {@link tutorial.ReqGetChessFromBuff.verify|verify} messages.
         * @param message ReqGetChessFromBuff message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetChessFromBuff, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetChessFromBuff message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetChessFromBuff
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetChessFromBuff;

        /**
         * Decodes a ReqGetChessFromBuff message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetChessFromBuff
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetChessFromBuff;

        /**
         * Verifies a ReqGetChessFromBuff message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetChessFromBuff message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetChessFromBuff
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetChessFromBuff;

        /**
         * Creates a plain object from a ReqGetChessFromBuff message. Also converts values to other types if specified.
         * @param message ReqGetChessFromBuff
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetChessFromBuff, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetChessFromBuff to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetChessFromBuff
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetChessFromBuff. */
    interface IResGetChessFromBuff {

        /** ResGetChessFromBuff code */
        code?: (tutorial.RES_CODE|null);

        /** ResGetChessFromBuff msg */
        msg?: (string|null);
    }

    /** Represents a ResGetChessFromBuff. */
    class ResGetChessFromBuff implements IResGetChessFromBuff {

        /**
         * Constructs a new ResGetChessFromBuff.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetChessFromBuff);

        /** ResGetChessFromBuff code. */
        public code: tutorial.RES_CODE;

        /** ResGetChessFromBuff msg. */
        public msg: string;

        /**
         * Creates a new ResGetChessFromBuff instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetChessFromBuff instance
         */
        public static create(properties?: tutorial.IResGetChessFromBuff): tutorial.ResGetChessFromBuff;

        /**
         * Encodes the specified ResGetChessFromBuff message. Does not implicitly {@link tutorial.ResGetChessFromBuff.verify|verify} messages.
         * @param message ResGetChessFromBuff message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetChessFromBuff, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetChessFromBuff message, length delimited. Does not implicitly {@link tutorial.ResGetChessFromBuff.verify|verify} messages.
         * @param message ResGetChessFromBuff message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetChessFromBuff, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetChessFromBuff message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetChessFromBuff
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetChessFromBuff;

        /**
         * Decodes a ResGetChessFromBuff message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetChessFromBuff
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetChessFromBuff;

        /**
         * Verifies a ResGetChessFromBuff message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetChessFromBuff message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetChessFromBuff
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetChessFromBuff;

        /**
         * Creates a plain object from a ResGetChessFromBuff message. Also converts values to other types if specified.
         * @param message ResGetChessFromBuff
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetChessFromBuff, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetChessFromBuff to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetChessFromBuff
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqChessEx. */
    interface IReqChessEx {

        /** ReqChessEx OldChessId */
        OldChessId?: (number|null);

        /** ReqChessEx NewChessId */
        NewChessId?: (number|null);

        /** ReqChessEx CostDia */
        CostDia?: (number|null);

        /** ReqChessEx Type */
        Type?: (number|null);

        /** ReqChessEx mChessData */
        mChessData?: ({ [k: string]: number }|null);
    }

    /** Represents a ReqChessEx. */
    class ReqChessEx implements IReqChessEx {

        /**
         * Constructs a new ReqChessEx.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqChessEx);

        /** ReqChessEx OldChessId. */
        public OldChessId: number;

        /** ReqChessEx NewChessId. */
        public NewChessId: number;

        /** ReqChessEx CostDia. */
        public CostDia: number;

        /** ReqChessEx Type. */
        public Type: number;

        /** ReqChessEx mChessData. */
        public mChessData: { [k: string]: number };

        /**
         * Creates a new ReqChessEx instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqChessEx instance
         */
        public static create(properties?: tutorial.IReqChessEx): tutorial.ReqChessEx;

        /**
         * Encodes the specified ReqChessEx message. Does not implicitly {@link tutorial.ReqChessEx.verify|verify} messages.
         * @param message ReqChessEx message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqChessEx, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqChessEx message, length delimited. Does not implicitly {@link tutorial.ReqChessEx.verify|verify} messages.
         * @param message ReqChessEx message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqChessEx, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqChessEx message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqChessEx
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqChessEx;

        /**
         * Decodes a ReqChessEx message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqChessEx
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqChessEx;

        /**
         * Verifies a ReqChessEx message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqChessEx message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqChessEx
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqChessEx;

        /**
         * Creates a plain object from a ReqChessEx message. Also converts values to other types if specified.
         * @param message ReqChessEx
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqChessEx, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqChessEx to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqChessEx
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResChessEx. */
    interface IResChessEx {

        /** ResChessEx code */
        code?: (tutorial.RES_CODE|null);

        /** ResChessEx msg */
        msg?: (string|null);
    }

    /** Represents a ResChessEx. */
    class ResChessEx implements IResChessEx {

        /**
         * Constructs a new ResChessEx.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResChessEx);

        /** ResChessEx code. */
        public code: tutorial.RES_CODE;

        /** ResChessEx msg. */
        public msg: string;

        /**
         * Creates a new ResChessEx instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResChessEx instance
         */
        public static create(properties?: tutorial.IResChessEx): tutorial.ResChessEx;

        /**
         * Encodes the specified ResChessEx message. Does not implicitly {@link tutorial.ResChessEx.verify|verify} messages.
         * @param message ResChessEx message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResChessEx, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResChessEx message, length delimited. Does not implicitly {@link tutorial.ResChessEx.verify|verify} messages.
         * @param message ResChessEx message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResChessEx, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResChessEx message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResChessEx
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResChessEx;

        /**
         * Decodes a ResChessEx message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResChessEx
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResChessEx;

        /**
         * Verifies a ResChessEx message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResChessEx message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResChessEx
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResChessEx;

        /**
         * Creates a plain object from a ResChessEx message. Also converts values to other types if specified.
         * @param message ResChessEx
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResChessEx, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResChessEx to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResChessEx
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomOutline. */
    interface IReqPlayroomOutline {

        /** ReqPlayroomOutline OldChessId */
        OldChessId?: (number|null);

        /** ReqPlayroomOutline NewChessId */
        NewChessId?: (number|null);

        /** ReqPlayroomOutline CostDia */
        CostDia?: (number|null);

        /** ReqPlayroomOutline Type */
        Type?: (number|null);

        /** ReqPlayroomOutline mChessData */
        mChessData?: ({ [k: string]: number }|null);
    }

    /** Represents a ReqPlayroomOutline. */
    class ReqPlayroomOutline implements IReqPlayroomOutline {

        /**
         * Constructs a new ReqPlayroomOutline.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomOutline);

        /** ReqPlayroomOutline OldChessId. */
        public OldChessId: number;

        /** ReqPlayroomOutline NewChessId. */
        public NewChessId: number;

        /** ReqPlayroomOutline CostDia. */
        public CostDia: number;

        /** ReqPlayroomOutline Type. */
        public Type: number;

        /** ReqPlayroomOutline mChessData. */
        public mChessData: { [k: string]: number };

        /**
         * Creates a new ReqPlayroomOutline instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomOutline instance
         */
        public static create(properties?: tutorial.IReqPlayroomOutline): tutorial.ReqPlayroomOutline;

        /**
         * Encodes the specified ReqPlayroomOutline message. Does not implicitly {@link tutorial.ReqPlayroomOutline.verify|verify} messages.
         * @param message ReqPlayroomOutline message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomOutline, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomOutline message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomOutline.verify|verify} messages.
         * @param message ReqPlayroomOutline message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomOutline, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomOutline message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomOutline
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomOutline;

        /**
         * Decodes a ReqPlayroomOutline message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomOutline
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomOutline;

        /**
         * Verifies a ReqPlayroomOutline message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomOutline message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomOutline
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomOutline;

        /**
         * Creates a plain object from a ReqPlayroomOutline message. Also converts values to other types if specified.
         * @param message ReqPlayroomOutline
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomOutline, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomOutline to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomOutline
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomOutline. */
    interface IResPlayroomOutline {

        /** ResPlayroomOutline code */
        code?: (tutorial.RES_CODE|null);

        /** ResPlayroomOutline msg */
        msg?: (string|null);
    }

    /** Represents a ResPlayroomOutline. */
    class ResPlayroomOutline implements IResPlayroomOutline {

        /**
         * Constructs a new ResPlayroomOutline.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomOutline);

        /** ResPlayroomOutline code. */
        public code: tutorial.RES_CODE;

        /** ResPlayroomOutline msg. */
        public msg: string;

        /**
         * Creates a new ResPlayroomOutline instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomOutline instance
         */
        public static create(properties?: tutorial.IResPlayroomOutline): tutorial.ResPlayroomOutline;

        /**
         * Encodes the specified ResPlayroomOutline message. Does not implicitly {@link tutorial.ResPlayroomOutline.verify|verify} messages.
         * @param message ResPlayroomOutline message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomOutline, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomOutline message, length delimited. Does not implicitly {@link tutorial.ResPlayroomOutline.verify|verify} messages.
         * @param message ResPlayroomOutline message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomOutline, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomOutline message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomOutline
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomOutline;

        /**
         * Decodes a ResPlayroomOutline message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomOutline
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomOutline;

        /**
         * Verifies a ResPlayroomOutline message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomOutline message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomOutline
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomOutline;

        /**
         * Creates a plain object from a ResPlayroomOutline message. Also converts values to other types if specified.
         * @param message ResPlayroomOutline
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomOutline, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomOutline to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomOutline
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ChessBag. */
    interface IChessBag {

        /** ChessBag ChessBagGrids */
        ChessBagGrids?: (tutorial.IChessBagGrid[]|null);

        /** ChessBag ChessBuyCnt */
        ChessBuyCnt?: (number|null);

        /** ChessBag ChessFreeCnt */
        ChessFreeCnt?: (number|null);
    }

    /** Represents a ChessBag. */
    class ChessBag implements IChessBag {

        /**
         * Constructs a new ChessBag.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IChessBag);

        /** ChessBag ChessBagGrids. */
        public ChessBagGrids: tutorial.IChessBagGrid[];

        /** ChessBag ChessBuyCnt. */
        public ChessBuyCnt: number;

        /** ChessBag ChessFreeCnt. */
        public ChessFreeCnt: number;

        /**
         * Creates a new ChessBag instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ChessBag instance
         */
        public static create(properties?: tutorial.IChessBag): tutorial.ChessBag;

        /**
         * Encodes the specified ChessBag message. Does not implicitly {@link tutorial.ChessBag.verify|verify} messages.
         * @param message ChessBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IChessBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ChessBag message, length delimited. Does not implicitly {@link tutorial.ChessBag.verify|verify} messages.
         * @param message ChessBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IChessBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ChessBag message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ChessBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ChessBag;

        /**
         * Decodes a ChessBag message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ChessBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ChessBag;

        /**
         * Verifies a ChessBag message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ChessBag message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ChessBag
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ChessBag;

        /**
         * Creates a plain object from a ChessBag message. Also converts values to other types if specified.
         * @param message ChessBag
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ChessBag, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ChessBag to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ChessBag
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ChessBagGrid. */
    interface IChessBagGrid {

        /** ChessBagGrid Id */
        Id?: (number|null);

        /** ChessBagGrid ChessId */
        ChessId?: (number|null);

        /** ChessBagGrid EmitId */
        EmitId?: (number|null);
    }

    /** Represents a ChessBagGrid. */
    class ChessBagGrid implements IChessBagGrid {

        /**
         * Constructs a new ChessBagGrid.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IChessBagGrid);

        /** ChessBagGrid Id. */
        public Id: number;

        /** ChessBagGrid ChessId. */
        public ChessId: number;

        /** ChessBagGrid EmitId. */
        public EmitId: number;

        /**
         * Creates a new ChessBagGrid instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ChessBagGrid instance
         */
        public static create(properties?: tutorial.IChessBagGrid): tutorial.ChessBagGrid;

        /**
         * Encodes the specified ChessBagGrid message. Does not implicitly {@link tutorial.ChessBagGrid.verify|verify} messages.
         * @param message ChessBagGrid message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IChessBagGrid, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ChessBagGrid message, length delimited. Does not implicitly {@link tutorial.ChessBagGrid.verify|verify} messages.
         * @param message ChessBagGrid message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IChessBagGrid, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ChessBagGrid message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ChessBagGrid
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ChessBagGrid;

        /**
         * Decodes a ChessBagGrid message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ChessBagGrid
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ChessBagGrid;

        /**
         * Verifies a ChessBagGrid message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ChessBagGrid message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ChessBagGrid
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ChessBagGrid;

        /**
         * Creates a plain object from a ChessBagGrid message. Also converts values to other types if specified.
         * @param message ChessBagGrid
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ChessBagGrid, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ChessBagGrid to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ChessBagGrid
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPutChessInBag. */
    interface IReqPutChessInBag {

        /** ReqPutChessInBag ChessId */
        ChessId?: (number|null);

        /** ReqPutChessInBag BagId */
        BagId?: (number|null);

        /** ReqPutChessInBag EmitId */
        EmitId?: (number|null);

        /** ReqPutChessInBag mChessData */
        mChessData?: ({ [k: string]: number }|null);
    }

    /** Represents a ReqPutChessInBag. */
    class ReqPutChessInBag implements IReqPutChessInBag {

        /**
         * Constructs a new ReqPutChessInBag.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPutChessInBag);

        /** ReqPutChessInBag ChessId. */
        public ChessId: number;

        /** ReqPutChessInBag BagId. */
        public BagId: number;

        /** ReqPutChessInBag EmitId. */
        public EmitId: number;

        /** ReqPutChessInBag mChessData. */
        public mChessData: { [k: string]: number };

        /**
         * Creates a new ReqPutChessInBag instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPutChessInBag instance
         */
        public static create(properties?: tutorial.IReqPutChessInBag): tutorial.ReqPutChessInBag;

        /**
         * Encodes the specified ReqPutChessInBag message. Does not implicitly {@link tutorial.ReqPutChessInBag.verify|verify} messages.
         * @param message ReqPutChessInBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPutChessInBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPutChessInBag message, length delimited. Does not implicitly {@link tutorial.ReqPutChessInBag.verify|verify} messages.
         * @param message ReqPutChessInBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPutChessInBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPutChessInBag message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPutChessInBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPutChessInBag;

        /**
         * Decodes a ReqPutChessInBag message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPutChessInBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPutChessInBag;

        /**
         * Verifies a ReqPutChessInBag message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPutChessInBag message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPutChessInBag
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPutChessInBag;

        /**
         * Creates a plain object from a ReqPutChessInBag message. Also converts values to other types if specified.
         * @param message ReqPutChessInBag
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPutChessInBag, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPutChessInBag to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPutChessInBag
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPutChessInBag. */
    interface IResPutChessInBag {

        /** ResPutChessInBag code */
        code?: (tutorial.RES_CODE|null);

        /** ResPutChessInBag msg */
        msg?: (string|null);
    }

    /** Represents a ResPutChessInBag. */
    class ResPutChessInBag implements IResPutChessInBag {

        /**
         * Constructs a new ResPutChessInBag.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPutChessInBag);

        /** ResPutChessInBag code. */
        public code: tutorial.RES_CODE;

        /** ResPutChessInBag msg. */
        public msg: string;

        /**
         * Creates a new ResPutChessInBag instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPutChessInBag instance
         */
        public static create(properties?: tutorial.IResPutChessInBag): tutorial.ResPutChessInBag;

        /**
         * Encodes the specified ResPutChessInBag message. Does not implicitly {@link tutorial.ResPutChessInBag.verify|verify} messages.
         * @param message ResPutChessInBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPutChessInBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPutChessInBag message, length delimited. Does not implicitly {@link tutorial.ResPutChessInBag.verify|verify} messages.
         * @param message ResPutChessInBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPutChessInBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPutChessInBag message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPutChessInBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPutChessInBag;

        /**
         * Decodes a ResPutChessInBag message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPutChessInBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPutChessInBag;

        /**
         * Verifies a ResPutChessInBag message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPutChessInBag message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPutChessInBag
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPutChessInBag;

        /**
         * Creates a plain object from a ResPutChessInBag message. Also converts values to other types if specified.
         * @param message ResPutChessInBag
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPutChessInBag, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPutChessInBag to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPutChessInBag
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqTakeChessOutBag. */
    interface IReqTakeChessOutBag {

        /** ReqTakeChessOutBag BagId */
        BagId?: (number|null);

        /** ReqTakeChessOutBag mChessData */
        mChessData?: ({ [k: string]: number }|null);
    }

    /** Represents a ReqTakeChessOutBag. */
    class ReqTakeChessOutBag implements IReqTakeChessOutBag {

        /**
         * Constructs a new ReqTakeChessOutBag.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqTakeChessOutBag);

        /** ReqTakeChessOutBag BagId. */
        public BagId: number;

        /** ReqTakeChessOutBag mChessData. */
        public mChessData: { [k: string]: number };

        /**
         * Creates a new ReqTakeChessOutBag instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqTakeChessOutBag instance
         */
        public static create(properties?: tutorial.IReqTakeChessOutBag): tutorial.ReqTakeChessOutBag;

        /**
         * Encodes the specified ReqTakeChessOutBag message. Does not implicitly {@link tutorial.ReqTakeChessOutBag.verify|verify} messages.
         * @param message ReqTakeChessOutBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqTakeChessOutBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqTakeChessOutBag message, length delimited. Does not implicitly {@link tutorial.ReqTakeChessOutBag.verify|verify} messages.
         * @param message ReqTakeChessOutBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqTakeChessOutBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqTakeChessOutBag message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqTakeChessOutBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqTakeChessOutBag;

        /**
         * Decodes a ReqTakeChessOutBag message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqTakeChessOutBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqTakeChessOutBag;

        /**
         * Verifies a ReqTakeChessOutBag message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqTakeChessOutBag message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqTakeChessOutBag
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqTakeChessOutBag;

        /**
         * Creates a plain object from a ReqTakeChessOutBag message. Also converts values to other types if specified.
         * @param message ReqTakeChessOutBag
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqTakeChessOutBag, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqTakeChessOutBag to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqTakeChessOutBag
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResTakeChessOutBag. */
    interface IResTakeChessOutBag {

        /** ResTakeChessOutBag code */
        code?: (tutorial.RES_CODE|null);

        /** ResTakeChessOutBag msg */
        msg?: (string|null);
    }

    /** Represents a ResTakeChessOutBag. */
    class ResTakeChessOutBag implements IResTakeChessOutBag {

        /**
         * Constructs a new ResTakeChessOutBag.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResTakeChessOutBag);

        /** ResTakeChessOutBag code. */
        public code: tutorial.RES_CODE;

        /** ResTakeChessOutBag msg. */
        public msg: string;

        /**
         * Creates a new ResTakeChessOutBag instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResTakeChessOutBag instance
         */
        public static create(properties?: tutorial.IResTakeChessOutBag): tutorial.ResTakeChessOutBag;

        /**
         * Encodes the specified ResTakeChessOutBag message. Does not implicitly {@link tutorial.ResTakeChessOutBag.verify|verify} messages.
         * @param message ResTakeChessOutBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResTakeChessOutBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResTakeChessOutBag message, length delimited. Does not implicitly {@link tutorial.ResTakeChessOutBag.verify|verify} messages.
         * @param message ResTakeChessOutBag message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResTakeChessOutBag, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResTakeChessOutBag message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResTakeChessOutBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResTakeChessOutBag;

        /**
         * Decodes a ResTakeChessOutBag message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResTakeChessOutBag
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResTakeChessOutBag;

        /**
         * Verifies a ResTakeChessOutBag message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResTakeChessOutBag message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResTakeChessOutBag
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResTakeChessOutBag;

        /**
         * Creates a plain object from a ResTakeChessOutBag message. Also converts values to other types if specified.
         * @param message ResTakeChessOutBag
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResTakeChessOutBag, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResTakeChessOutBag to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResTakeChessOutBag
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqBuyChessBagGrid. */
    interface IReqBuyChessBagGrid {
    }

    /** Represents a ReqBuyChessBagGrid. */
    class ReqBuyChessBagGrid implements IReqBuyChessBagGrid {

        /**
         * Constructs a new ReqBuyChessBagGrid.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqBuyChessBagGrid);

        /**
         * Creates a new ReqBuyChessBagGrid instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqBuyChessBagGrid instance
         */
        public static create(properties?: tutorial.IReqBuyChessBagGrid): tutorial.ReqBuyChessBagGrid;

        /**
         * Encodes the specified ReqBuyChessBagGrid message. Does not implicitly {@link tutorial.ReqBuyChessBagGrid.verify|verify} messages.
         * @param message ReqBuyChessBagGrid message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqBuyChessBagGrid, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqBuyChessBagGrid message, length delimited. Does not implicitly {@link tutorial.ReqBuyChessBagGrid.verify|verify} messages.
         * @param message ReqBuyChessBagGrid message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqBuyChessBagGrid, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqBuyChessBagGrid message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqBuyChessBagGrid
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqBuyChessBagGrid;

        /**
         * Decodes a ReqBuyChessBagGrid message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqBuyChessBagGrid
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqBuyChessBagGrid;

        /**
         * Verifies a ReqBuyChessBagGrid message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqBuyChessBagGrid message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqBuyChessBagGrid
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqBuyChessBagGrid;

        /**
         * Creates a plain object from a ReqBuyChessBagGrid message. Also converts values to other types if specified.
         * @param message ReqBuyChessBagGrid
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqBuyChessBagGrid, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqBuyChessBagGrid to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqBuyChessBagGrid
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResBuyChessBagGrid. */
    interface IResBuyChessBagGrid {

        /** ResBuyChessBagGrid code */
        code?: (tutorial.RES_CODE|null);

        /** ResBuyChessBagGrid msg */
        msg?: (string|null);
    }

    /** Represents a ResBuyChessBagGrid. */
    class ResBuyChessBagGrid implements IResBuyChessBagGrid {

        /**
         * Constructs a new ResBuyChessBagGrid.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResBuyChessBagGrid);

        /** ResBuyChessBagGrid code. */
        public code: tutorial.RES_CODE;

        /** ResBuyChessBagGrid msg. */
        public msg: string;

        /**
         * Creates a new ResBuyChessBagGrid instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResBuyChessBagGrid instance
         */
        public static create(properties?: tutorial.IResBuyChessBagGrid): tutorial.ResBuyChessBagGrid;

        /**
         * Encodes the specified ResBuyChessBagGrid message. Does not implicitly {@link tutorial.ResBuyChessBagGrid.verify|verify} messages.
         * @param message ResBuyChessBagGrid message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResBuyChessBagGrid, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResBuyChessBagGrid message, length delimited. Does not implicitly {@link tutorial.ResBuyChessBagGrid.verify|verify} messages.
         * @param message ResBuyChessBagGrid message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResBuyChessBagGrid, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResBuyChessBagGrid message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResBuyChessBagGrid
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResBuyChessBagGrid;

        /**
         * Decodes a ResBuyChessBagGrid message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResBuyChessBagGrid
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResBuyChessBagGrid;

        /**
         * Verifies a ResBuyChessBagGrid message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResBuyChessBagGrid message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResBuyChessBagGrid
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResBuyChessBagGrid;

        /**
         * Creates a plain object from a ResBuyChessBagGrid message. Also converts values to other types if specified.
         * @param message ResBuyChessBagGrid
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResBuyChessBagGrid, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResBuyChessBagGrid to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResBuyChessBagGrid
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayerProfileData. */
    interface IReqPlayerProfileData {

        /** ReqPlayerProfileData dwUin */
        dwUin?: (number|null);
    }

    /** 请求玩家身份信息 */
    class ReqPlayerProfileData implements IReqPlayerProfileData {

        /**
         * Constructs a new ReqPlayerProfileData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayerProfileData);

        /** ReqPlayerProfileData dwUin. */
        public dwUin: number;

        /**
         * Creates a new ReqPlayerProfileData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayerProfileData instance
         */
        public static create(properties?: tutorial.IReqPlayerProfileData): tutorial.ReqPlayerProfileData;

        /**
         * Encodes the specified ReqPlayerProfileData message. Does not implicitly {@link tutorial.ReqPlayerProfileData.verify|verify} messages.
         * @param message ReqPlayerProfileData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayerProfileData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayerProfileData message, length delimited. Does not implicitly {@link tutorial.ReqPlayerProfileData.verify|verify} messages.
         * @param message ReqPlayerProfileData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayerProfileData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayerProfileData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayerProfileData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayerProfileData;

        /**
         * Decodes a ReqPlayerProfileData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayerProfileData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayerProfileData;

        /**
         * Verifies a ReqPlayerProfileData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayerProfileData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayerProfileData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayerProfileData;

        /**
         * Creates a plain object from a ReqPlayerProfileData message. Also converts values to other types if specified.
         * @param message ReqPlayerProfileData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayerProfileData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayerProfileData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayerProfileData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayerProfileData. */
    interface IResPlayerProfileData {

        /** ResPlayerProfileData dwUin */
        dwUin?: (number|null);

        /** ResPlayerProfileData ImageFrame */
        ImageFrame?: (number|null);

        /** ResPlayerProfileData ImageIcon */
        ImageIcon?: (number|null);

        /** ResPlayerProfileData DecorateCnt */
        DecorateCnt?: (number|null);

        /** ResPlayerProfileData NickName */
        NickName?: (string|null);

        /** ResPlayerProfileData PicURL */
        PicURL?: (string|null);

        /** ResPlayerProfileData UnlockFrame */
        UnlockFrame?: (string|null);

        /** ResPlayerProfileData UnlockIcon */
        UnlockIcon?: (string|null);

        /** ResPlayerProfileData ActiveTime */
        ActiveTime?: (number|null);
    }

    /** Represents a ResPlayerProfileData. */
    class ResPlayerProfileData implements IResPlayerProfileData {

        /**
         * Constructs a new ResPlayerProfileData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayerProfileData);

        /** ResPlayerProfileData dwUin. */
        public dwUin: number;

        /** ResPlayerProfileData ImageFrame. */
        public ImageFrame: number;

        /** ResPlayerProfileData ImageIcon. */
        public ImageIcon: number;

        /** ResPlayerProfileData DecorateCnt. */
        public DecorateCnt: number;

        /** ResPlayerProfileData NickName. */
        public NickName: string;

        /** ResPlayerProfileData PicURL. */
        public PicURL: string;

        /** ResPlayerProfileData UnlockFrame. */
        public UnlockFrame: string;

        /** ResPlayerProfileData UnlockIcon. */
        public UnlockIcon: string;

        /** ResPlayerProfileData ActiveTime. */
        public ActiveTime: number;

        /**
         * Creates a new ResPlayerProfileData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayerProfileData instance
         */
        public static create(properties?: tutorial.IResPlayerProfileData): tutorial.ResPlayerProfileData;

        /**
         * Encodes the specified ResPlayerProfileData message. Does not implicitly {@link tutorial.ResPlayerProfileData.verify|verify} messages.
         * @param message ResPlayerProfileData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayerProfileData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayerProfileData message, length delimited. Does not implicitly {@link tutorial.ResPlayerProfileData.verify|verify} messages.
         * @param message ResPlayerProfileData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayerProfileData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayerProfileData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayerProfileData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayerProfileData;

        /**
         * Decodes a ResPlayerProfileData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayerProfileData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayerProfileData;

        /**
         * Verifies a ResPlayerProfileData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayerProfileData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayerProfileData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayerProfileData;

        /**
         * Creates a plain object from a ResPlayerProfileData message. Also converts values to other types if specified.
         * @param message ResPlayerProfileData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayerProfileData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayerProfileData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayerProfileData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayerBriefProfileData. */
    interface IReqPlayerBriefProfileData {

        /** ReqPlayerBriefProfileData dwUin */
        dwUin?: (number|null);
    }

    /** 请求玩家身份信息 */
    class ReqPlayerBriefProfileData implements IReqPlayerBriefProfileData {

        /**
         * Constructs a new ReqPlayerBriefProfileData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayerBriefProfileData);

        /** ReqPlayerBriefProfileData dwUin. */
        public dwUin: number;

        /**
         * Creates a new ReqPlayerBriefProfileData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayerBriefProfileData instance
         */
        public static create(properties?: tutorial.IReqPlayerBriefProfileData): tutorial.ReqPlayerBriefProfileData;

        /**
         * Encodes the specified ReqPlayerBriefProfileData message. Does not implicitly {@link tutorial.ReqPlayerBriefProfileData.verify|verify} messages.
         * @param message ReqPlayerBriefProfileData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayerBriefProfileData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayerBriefProfileData message, length delimited. Does not implicitly {@link tutorial.ReqPlayerBriefProfileData.verify|verify} messages.
         * @param message ReqPlayerBriefProfileData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayerBriefProfileData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayerBriefProfileData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayerBriefProfileData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayerBriefProfileData;

        /**
         * Decodes a ReqPlayerBriefProfileData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayerBriefProfileData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayerBriefProfileData;

        /**
         * Verifies a ReqPlayerBriefProfileData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayerBriefProfileData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayerBriefProfileData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayerBriefProfileData;

        /**
         * Creates a plain object from a ReqPlayerBriefProfileData message. Also converts values to other types if specified.
         * @param message ReqPlayerBriefProfileData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayerBriefProfileData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayerBriefProfileData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayerBriefProfileData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayerBriefProfileData. */
    interface IResPlayerBriefProfileData {

        /** ResPlayerBriefProfileData dwUin */
        dwUin?: (number|null);

        /** ResPlayerBriefProfileData ImageFrame */
        ImageFrame?: (number|null);

        /** ResPlayerBriefProfileData ImageIcon */
        ImageIcon?: (number|null);

        /** ResPlayerBriefProfileData DecorateCnt */
        DecorateCnt?: (number|null);

        /** ResPlayerBriefProfileData NickName */
        NickName?: (string|null);

        /** ResPlayerBriefProfileData PicURL */
        PicURL?: (string|null);

        /** ResPlayerBriefProfileData ActiveTime */
        ActiveTime?: (number|null);
    }

    /** Represents a ResPlayerBriefProfileData. */
    class ResPlayerBriefProfileData implements IResPlayerBriefProfileData {

        /**
         * Constructs a new ResPlayerBriefProfileData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayerBriefProfileData);

        /** ResPlayerBriefProfileData dwUin. */
        public dwUin: number;

        /** ResPlayerBriefProfileData ImageFrame. */
        public ImageFrame: number;

        /** ResPlayerBriefProfileData ImageIcon. */
        public ImageIcon: number;

        /** ResPlayerBriefProfileData DecorateCnt. */
        public DecorateCnt: number;

        /** ResPlayerBriefProfileData NickName. */
        public NickName: string;

        /** ResPlayerBriefProfileData PicURL. */
        public PicURL: string;

        /** ResPlayerBriefProfileData ActiveTime. */
        public ActiveTime: number;

        /**
         * Creates a new ResPlayerBriefProfileData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayerBriefProfileData instance
         */
        public static create(properties?: tutorial.IResPlayerBriefProfileData): tutorial.ResPlayerBriefProfileData;

        /**
         * Encodes the specified ResPlayerBriefProfileData message. Does not implicitly {@link tutorial.ResPlayerBriefProfileData.verify|verify} messages.
         * @param message ResPlayerBriefProfileData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayerBriefProfileData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayerBriefProfileData message, length delimited. Does not implicitly {@link tutorial.ResPlayerBriefProfileData.verify|verify} messages.
         * @param message ResPlayerBriefProfileData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayerBriefProfileData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayerBriefProfileData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayerBriefProfileData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayerBriefProfileData;

        /**
         * Decodes a ResPlayerBriefProfileData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayerBriefProfileData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayerBriefProfileData;

        /**
         * Verifies a ResPlayerBriefProfileData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayerBriefProfileData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayerBriefProfileData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayerBriefProfileData;

        /**
         * Creates a plain object from a ResPlayerBriefProfileData message. Also converts values to other types if specified.
         * @param message ResPlayerBriefProfileData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayerBriefProfileData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayerBriefProfileData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayerBriefProfileData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSetEnergyMul. */
    interface IReqSetEnergyMul {

        /** ReqSetEnergyMul EnergyMul */
        EnergyMul?: (number|null);
    }

    /** Represents a ReqSetEnergyMul. */
    class ReqSetEnergyMul implements IReqSetEnergyMul {

        /**
         * Constructs a new ReqSetEnergyMul.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSetEnergyMul);

        /** ReqSetEnergyMul EnergyMul. */
        public EnergyMul: number;

        /**
         * Creates a new ReqSetEnergyMul instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSetEnergyMul instance
         */
        public static create(properties?: tutorial.IReqSetEnergyMul): tutorial.ReqSetEnergyMul;

        /**
         * Encodes the specified ReqSetEnergyMul message. Does not implicitly {@link tutorial.ReqSetEnergyMul.verify|verify} messages.
         * @param message ReqSetEnergyMul message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSetEnergyMul, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSetEnergyMul message, length delimited. Does not implicitly {@link tutorial.ReqSetEnergyMul.verify|verify} messages.
         * @param message ReqSetEnergyMul message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSetEnergyMul, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSetEnergyMul message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSetEnergyMul
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSetEnergyMul;

        /**
         * Decodes a ReqSetEnergyMul message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSetEnergyMul
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSetEnergyMul;

        /**
         * Verifies a ReqSetEnergyMul message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSetEnergyMul message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSetEnergyMul
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSetEnergyMul;

        /**
         * Creates a plain object from a ReqSetEnergyMul message. Also converts values to other types if specified.
         * @param message ReqSetEnergyMul
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSetEnergyMul, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSetEnergyMul to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSetEnergyMul
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSetEnergyMul. */
    interface IResSetEnergyMul {

        /** ResSetEnergyMul ResultCode */
        ResultCode?: (tutorial.RES_CODE|null);

        /** ResSetEnergyMul Msg */
        Msg?: (string|null);
    }

    /** Represents a ResSetEnergyMul. */
    class ResSetEnergyMul implements IResSetEnergyMul {

        /**
         * Constructs a new ResSetEnergyMul.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSetEnergyMul);

        /** ResSetEnergyMul ResultCode. */
        public ResultCode: tutorial.RES_CODE;

        /** ResSetEnergyMul Msg. */
        public Msg: string;

        /**
         * Creates a new ResSetEnergyMul instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSetEnergyMul instance
         */
        public static create(properties?: tutorial.IResSetEnergyMul): tutorial.ResSetEnergyMul;

        /**
         * Encodes the specified ResSetEnergyMul message. Does not implicitly {@link tutorial.ResSetEnergyMul.verify|verify} messages.
         * @param message ResSetEnergyMul message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSetEnergyMul, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSetEnergyMul message, length delimited. Does not implicitly {@link tutorial.ResSetEnergyMul.verify|verify} messages.
         * @param message ResSetEnergyMul message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSetEnergyMul, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSetEnergyMul message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSetEnergyMul
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSetEnergyMul;

        /**
         * Decodes a ResSetEnergyMul message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSetEnergyMul
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSetEnergyMul;

        /**
         * Verifies a ResSetEnergyMul message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSetEnergyMul message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSetEnergyMul
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSetEnergyMul;

        /**
         * Creates a plain object from a ResSetEnergyMul message. Also converts values to other types if specified.
         * @param message ResSetEnergyMul
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSetEnergyMul, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSetEnergyMul to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSetEnergyMul
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a BaseInfo. */
    interface IBaseInfo {

        /** BaseInfo EnergyMul */
        EnergyMul?: (number|null);

        /** BaseInfo IsFirstBuy */
        IsFirstBuy?: (boolean|null);

        /** BaseInfo EnergyBuy */
        EnergyBuy?: (number|null);
    }

    /** Represents a BaseInfo. */
    class BaseInfo implements IBaseInfo {

        /**
         * Constructs a new BaseInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IBaseInfo);

        /** BaseInfo EnergyMul. */
        public EnergyMul: number;

        /** BaseInfo IsFirstBuy. */
        public IsFirstBuy: boolean;

        /** BaseInfo EnergyBuy. */
        public EnergyBuy: number;

        /**
         * Creates a new BaseInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns BaseInfo instance
         */
        public static create(properties?: tutorial.IBaseInfo): tutorial.BaseInfo;

        /**
         * Encodes the specified BaseInfo message. Does not implicitly {@link tutorial.BaseInfo.verify|verify} messages.
         * @param message BaseInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IBaseInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified BaseInfo message, length delimited. Does not implicitly {@link tutorial.BaseInfo.verify|verify} messages.
         * @param message BaseInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IBaseInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a BaseInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns BaseInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.BaseInfo;

        /**
         * Decodes a BaseInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns BaseInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.BaseInfo;

        /**
         * Verifies a BaseInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a BaseInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns BaseInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.BaseInfo;

        /**
         * Creates a plain object from a BaseInfo message. Also converts values to other types if specified.
         * @param message BaseInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.BaseInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this BaseInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for BaseInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqUserInfo. */
    interface IReqUserInfo {
    }

    /** Represents a ReqUserInfo. */
    class ReqUserInfo implements IReqUserInfo {

        /**
         * Constructs a new ReqUserInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqUserInfo);

        /**
         * Creates a new ReqUserInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqUserInfo instance
         */
        public static create(properties?: tutorial.IReqUserInfo): tutorial.ReqUserInfo;

        /**
         * Encodes the specified ReqUserInfo message. Does not implicitly {@link tutorial.ReqUserInfo.verify|verify} messages.
         * @param message ReqUserInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqUserInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqUserInfo message, length delimited. Does not implicitly {@link tutorial.ReqUserInfo.verify|verify} messages.
         * @param message ReqUserInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqUserInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqUserInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqUserInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqUserInfo;

        /**
         * Decodes a ReqUserInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqUserInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqUserInfo;

        /**
         * Verifies a ReqUserInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqUserInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqUserInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqUserInfo;

        /**
         * Creates a plain object from a ReqUserInfo message. Also converts values to other types if specified.
         * @param message ReqUserInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqUserInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqUserInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqUserInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a UserInfo. */
    interface IUserInfo {

        /** UserInfo Uid */
        Uid?: (number|null);

        /** UserInfo Nickname */
        Nickname?: (string|null);

        /** UserInfo Avatar */
        Avatar?: (number|null);

        /** UserInfo Face */
        Face?: (number|null);

        /** UserInfo DecorateCnt */
        DecorateCnt?: (number|null);

        /** UserInfo AvatarList */
        AvatarList?: (tutorial.IAvatarInfo[]|null);

        /** UserInfo FaceList */
        FaceList?: (tutorial.IFaceInfo[]|null);

        /** UserInfo Login */
        Login?: (number|null);

        /** UserInfo PetName */
        PetName?: (string|null);
    }

    /** Represents a UserInfo. */
    class UserInfo implements IUserInfo {

        /**
         * Constructs a new UserInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IUserInfo);

        /** UserInfo Uid. */
        public Uid: number;

        /** UserInfo Nickname. */
        public Nickname: string;

        /** UserInfo Avatar. */
        public Avatar: number;

        /** UserInfo Face. */
        public Face: number;

        /** UserInfo DecorateCnt. */
        public DecorateCnt: number;

        /** UserInfo AvatarList. */
        public AvatarList: tutorial.IAvatarInfo[];

        /** UserInfo FaceList. */
        public FaceList: tutorial.IFaceInfo[];

        /** UserInfo Login. */
        public Login: number;

        /** UserInfo PetName. */
        public PetName: string;

        /**
         * Creates a new UserInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns UserInfo instance
         */
        public static create(properties?: tutorial.IUserInfo): tutorial.UserInfo;

        /**
         * Encodes the specified UserInfo message. Does not implicitly {@link tutorial.UserInfo.verify|verify} messages.
         * @param message UserInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IUserInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified UserInfo message, length delimited. Does not implicitly {@link tutorial.UserInfo.verify|verify} messages.
         * @param message UserInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IUserInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a UserInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns UserInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.UserInfo;

        /**
         * Decodes a UserInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns UserInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.UserInfo;

        /**
         * Verifies a UserInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a UserInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns UserInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.UserInfo;

        /**
         * Creates a plain object from a UserInfo message. Also converts values to other types if specified.
         * @param message UserInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.UserInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this UserInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for UserInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSetName. */
    interface IReqSetName {

        /** ReqSetName Name */
        Name?: (string|null);
    }

    /** Represents a ReqSetName. */
    class ReqSetName implements IReqSetName {

        /**
         * Constructs a new ReqSetName.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSetName);

        /** ReqSetName Name. */
        public Name: string;

        /**
         * Creates a new ReqSetName instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSetName instance
         */
        public static create(properties?: tutorial.IReqSetName): tutorial.ReqSetName;

        /**
         * Encodes the specified ReqSetName message. Does not implicitly {@link tutorial.ReqSetName.verify|verify} messages.
         * @param message ReqSetName message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSetName, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSetName message, length delimited. Does not implicitly {@link tutorial.ReqSetName.verify|verify} messages.
         * @param message ReqSetName message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSetName, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSetName message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSetName
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSetName;

        /**
         * Decodes a ReqSetName message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSetName
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSetName;

        /**
         * Verifies a ReqSetName message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSetName message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSetName
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSetName;

        /**
         * Creates a plain object from a ReqSetName message. Also converts values to other types if specified.
         * @param message ReqSetName
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSetName, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSetName to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSetName
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSetName. */
    interface IResSetName {

        /** ResSetName ResultCode */
        ResultCode?: (tutorial.RES_CODE|null);

        /** ResSetName Msg */
        Msg?: (string|null);
    }

    /** Represents a ResSetName. */
    class ResSetName implements IResSetName {

        /**
         * Constructs a new ResSetName.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSetName);

        /** ResSetName ResultCode. */
        public ResultCode: tutorial.RES_CODE;

        /** ResSetName Msg. */
        public Msg: string;

        /**
         * Creates a new ResSetName instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSetName instance
         */
        public static create(properties?: tutorial.IResSetName): tutorial.ResSetName;

        /**
         * Encodes the specified ResSetName message. Does not implicitly {@link tutorial.ResSetName.verify|verify} messages.
         * @param message ResSetName message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSetName, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSetName message, length delimited. Does not implicitly {@link tutorial.ResSetName.verify|verify} messages.
         * @param message ResSetName message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSetName, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSetName message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSetName
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSetName;

        /**
         * Decodes a ResSetName message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSetName
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSetName;

        /**
         * Verifies a ResSetName message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSetName message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSetName
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSetName;

        /**
         * Creates a plain object from a ResSetName message. Also converts values to other types if specified.
         * @param message ResSetName
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSetName, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSetName to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSetName
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSetPetName. */
    interface IReqSetPetName {

        /** ReqSetPetName Name */
        Name?: (string|null);
    }

    /** Represents a ReqSetPetName. */
    class ReqSetPetName implements IReqSetPetName {

        /**
         * Constructs a new ReqSetPetName.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSetPetName);

        /** ReqSetPetName Name. */
        public Name: string;

        /**
         * Creates a new ReqSetPetName instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSetPetName instance
         */
        public static create(properties?: tutorial.IReqSetPetName): tutorial.ReqSetPetName;

        /**
         * Encodes the specified ReqSetPetName message. Does not implicitly {@link tutorial.ReqSetPetName.verify|verify} messages.
         * @param message ReqSetPetName message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSetPetName, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSetPetName message, length delimited. Does not implicitly {@link tutorial.ReqSetPetName.verify|verify} messages.
         * @param message ReqSetPetName message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSetPetName, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSetPetName message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSetPetName
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSetPetName;

        /**
         * Decodes a ReqSetPetName message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSetPetName
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSetPetName;

        /**
         * Verifies a ReqSetPetName message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSetPetName message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSetPetName
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSetPetName;

        /**
         * Creates a plain object from a ReqSetPetName message. Also converts values to other types if specified.
         * @param message ReqSetPetName
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSetPetName, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSetPetName to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSetPetName
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSetPetName. */
    interface IResSetPetName {

        /** ResSetPetName ResultCode */
        ResultCode?: (tutorial.RES_CODE|null);

        /** ResSetPetName Msg */
        Msg?: (string|null);
    }

    /** Represents a ResSetPetName. */
    class ResSetPetName implements IResSetPetName {

        /**
         * Constructs a new ResSetPetName.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSetPetName);

        /** ResSetPetName ResultCode. */
        public ResultCode: tutorial.RES_CODE;

        /** ResSetPetName Msg. */
        public Msg: string;

        /**
         * Creates a new ResSetPetName instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSetPetName instance
         */
        public static create(properties?: tutorial.IResSetPetName): tutorial.ResSetPetName;

        /**
         * Encodes the specified ResSetPetName message. Does not implicitly {@link tutorial.ResSetPetName.verify|verify} messages.
         * @param message ResSetPetName message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSetPetName, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSetPetName message, length delimited. Does not implicitly {@link tutorial.ResSetPetName.verify|verify} messages.
         * @param message ResSetPetName message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSetPetName, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSetPetName message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSetPetName
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSetPetName;

        /**
         * Decodes a ResSetPetName message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSetPetName
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSetPetName;

        /**
         * Verifies a ResSetPetName message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSetPetName message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSetPetName
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSetPetName;

        /**
         * Creates a plain object from a ResSetPetName message. Also converts values to other types if specified.
         * @param message ResSetPetName
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSetPetName, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSetPetName to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSetPetName
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqBuyEnergy. */
    interface IReqBuyEnergy {

        /** ReqBuyEnergy Energy */
        Energy?: (number|null);
    }

    /** Represents a ReqBuyEnergy. */
    class ReqBuyEnergy implements IReqBuyEnergy {

        /**
         * Constructs a new ReqBuyEnergy.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqBuyEnergy);

        /** ReqBuyEnergy Energy. */
        public Energy: number;

        /**
         * Creates a new ReqBuyEnergy instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqBuyEnergy instance
         */
        public static create(properties?: tutorial.IReqBuyEnergy): tutorial.ReqBuyEnergy;

        /**
         * Encodes the specified ReqBuyEnergy message. Does not implicitly {@link tutorial.ReqBuyEnergy.verify|verify} messages.
         * @param message ReqBuyEnergy message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqBuyEnergy, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqBuyEnergy message, length delimited. Does not implicitly {@link tutorial.ReqBuyEnergy.verify|verify} messages.
         * @param message ReqBuyEnergy message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqBuyEnergy, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqBuyEnergy message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqBuyEnergy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqBuyEnergy;

        /**
         * Decodes a ReqBuyEnergy message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqBuyEnergy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqBuyEnergy;

        /**
         * Verifies a ReqBuyEnergy message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqBuyEnergy message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqBuyEnergy
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqBuyEnergy;

        /**
         * Creates a plain object from a ReqBuyEnergy message. Also converts values to other types if specified.
         * @param message ReqBuyEnergy
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqBuyEnergy, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqBuyEnergy to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqBuyEnergy
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResBuyEnergy. */
    interface IResBuyEnergy {

        /** ResBuyEnergy Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResBuyEnergy Msg */
        Msg?: (string|null);
    }

    /** Represents a ResBuyEnergy. */
    class ResBuyEnergy implements IResBuyEnergy {

        /**
         * Constructs a new ResBuyEnergy.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResBuyEnergy);

        /** ResBuyEnergy Code. */
        public Code: tutorial.RES_CODE;

        /** ResBuyEnergy Msg. */
        public Msg: string;

        /**
         * Creates a new ResBuyEnergy instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResBuyEnergy instance
         */
        public static create(properties?: tutorial.IResBuyEnergy): tutorial.ResBuyEnergy;

        /**
         * Encodes the specified ResBuyEnergy message. Does not implicitly {@link tutorial.ResBuyEnergy.verify|verify} messages.
         * @param message ResBuyEnergy message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResBuyEnergy, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResBuyEnergy message, length delimited. Does not implicitly {@link tutorial.ResBuyEnergy.verify|verify} messages.
         * @param message ResBuyEnergy message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResBuyEnergy, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResBuyEnergy message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResBuyEnergy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResBuyEnergy;

        /**
         * Decodes a ResBuyEnergy message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResBuyEnergy
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResBuyEnergy;

        /**
         * Verifies a ResBuyEnergy message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResBuyEnergy message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResBuyEnergy
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResBuyEnergy;

        /**
         * Creates a plain object from a ResBuyEnergy message. Also converts values to other types if specified.
         * @param message ResBuyEnergy
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResBuyEnergy, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResBuyEnergy to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResBuyEnergy
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetHandbookReward. */
    interface IReqGetHandbookReward {

        /** ReqGetHandbookReward ChessId */
        ChessId?: (number|null);
    }

    /** Represents a ReqGetHandbookReward. */
    class ReqGetHandbookReward implements IReqGetHandbookReward {

        /**
         * Constructs a new ReqGetHandbookReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetHandbookReward);

        /** ReqGetHandbookReward ChessId. */
        public ChessId: number;

        /**
         * Creates a new ReqGetHandbookReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetHandbookReward instance
         */
        public static create(properties?: tutorial.IReqGetHandbookReward): tutorial.ReqGetHandbookReward;

        /**
         * Encodes the specified ReqGetHandbookReward message. Does not implicitly {@link tutorial.ReqGetHandbookReward.verify|verify} messages.
         * @param message ReqGetHandbookReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetHandbookReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetHandbookReward message, length delimited. Does not implicitly {@link tutorial.ReqGetHandbookReward.verify|verify} messages.
         * @param message ReqGetHandbookReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetHandbookReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetHandbookReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetHandbookReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetHandbookReward;

        /**
         * Decodes a ReqGetHandbookReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetHandbookReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetHandbookReward;

        /**
         * Verifies a ReqGetHandbookReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetHandbookReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetHandbookReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetHandbookReward;

        /**
         * Creates a plain object from a ReqGetHandbookReward message. Also converts values to other types if specified.
         * @param message ReqGetHandbookReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetHandbookReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetHandbookReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetHandbookReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a HandbookInfo. */
    interface IHandbookInfo {

        /** HandbookInfo ChessId */
        ChessId?: (number|null);

        /** HandbookInfo Status */
        Status?: (number|null);
    }

    /** Represents a HandbookInfo. */
    class HandbookInfo implements IHandbookInfo {

        /**
         * Constructs a new HandbookInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IHandbookInfo);

        /** HandbookInfo ChessId. */
        public ChessId: number;

        /** HandbookInfo Status. */
        public Status: number;

        /**
         * Creates a new HandbookInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns HandbookInfo instance
         */
        public static create(properties?: tutorial.IHandbookInfo): tutorial.HandbookInfo;

        /**
         * Encodes the specified HandbookInfo message. Does not implicitly {@link tutorial.HandbookInfo.verify|verify} messages.
         * @param message HandbookInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IHandbookInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified HandbookInfo message, length delimited. Does not implicitly {@link tutorial.HandbookInfo.verify|verify} messages.
         * @param message HandbookInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IHandbookInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a HandbookInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns HandbookInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.HandbookInfo;

        /**
         * Decodes a HandbookInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns HandbookInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.HandbookInfo;

        /**
         * Verifies a HandbookInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a HandbookInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns HandbookInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.HandbookInfo;

        /**
         * Creates a plain object from a HandbookInfo message. Also converts values to other types if specified.
         * @param message HandbookInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.HandbookInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this HandbookInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for HandbookInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a Handbook. */
    interface IHandbook {

        /** Handbook Handbooks */
        Handbooks?: (tutorial.IHandbookInfo[]|null);
    }

    /** Represents a Handbook. */
    class Handbook implements IHandbook {

        /**
         * Constructs a new Handbook.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IHandbook);

        /** Handbook Handbooks. */
        public Handbooks: tutorial.IHandbookInfo[];

        /**
         * Creates a new Handbook instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Handbook instance
         */
        public static create(properties?: tutorial.IHandbook): tutorial.Handbook;

        /**
         * Encodes the specified Handbook message. Does not implicitly {@link tutorial.Handbook.verify|verify} messages.
         * @param message Handbook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IHandbook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Handbook message, length delimited. Does not implicitly {@link tutorial.Handbook.verify|verify} messages.
         * @param message Handbook message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IHandbook, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a Handbook message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Handbook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.Handbook;

        /**
         * Decodes a Handbook message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Handbook
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.Handbook;

        /**
         * Verifies a Handbook message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a Handbook message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns Handbook
         */
        public static fromObject(object: { [k: string]: any }): tutorial.Handbook;

        /**
         * Creates a plain object from a Handbook message. Also converts values to other types if specified.
         * @param message Handbook
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.Handbook, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this Handbook to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for Handbook
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetHandbookReward. */
    interface IResGetHandbookReward {

        /** ResGetHandbookReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGetHandbookReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResGetHandbookReward. */
    class ResGetHandbookReward implements IResGetHandbookReward {

        /**
         * Constructs a new ResGetHandbookReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetHandbookReward);

        /** ResGetHandbookReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResGetHandbookReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResGetHandbookReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetHandbookReward instance
         */
        public static create(properties?: tutorial.IResGetHandbookReward): tutorial.ResGetHandbookReward;

        /**
         * Encodes the specified ResGetHandbookReward message. Does not implicitly {@link tutorial.ResGetHandbookReward.verify|verify} messages.
         * @param message ResGetHandbookReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetHandbookReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetHandbookReward message, length delimited. Does not implicitly {@link tutorial.ResGetHandbookReward.verify|verify} messages.
         * @param message ResGetHandbookReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetHandbookReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetHandbookReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetHandbookReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetHandbookReward;

        /**
         * Decodes a ResGetHandbookReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetHandbookReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetHandbookReward;

        /**
         * Verifies a ResGetHandbookReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetHandbookReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetHandbookReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetHandbookReward;

        /**
         * Creates a plain object from a ResGetHandbookReward message. Also converts values to other types if specified.
         * @param message ResGetHandbookReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetHandbookReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetHandbookReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetHandbookReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRewardOrder. */
    interface IReqRewardOrder {

        /** ReqRewardOrder OrderId */
        OrderId?: (number|null);

        /** ReqRewardOrder mChessData */
        mChessData?: ({ [k: string]: number }|null);
    }

    /** Represents a ReqRewardOrder. */
    class ReqRewardOrder implements IReqRewardOrder {

        /**
         * Constructs a new ReqRewardOrder.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRewardOrder);

        /** ReqRewardOrder OrderId. */
        public OrderId: number;

        /** ReqRewardOrder mChessData. */
        public mChessData: { [k: string]: number };

        /**
         * Creates a new ReqRewardOrder instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRewardOrder instance
         */
        public static create(properties?: tutorial.IReqRewardOrder): tutorial.ReqRewardOrder;

        /**
         * Encodes the specified ReqRewardOrder message. Does not implicitly {@link tutorial.ReqRewardOrder.verify|verify} messages.
         * @param message ReqRewardOrder message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRewardOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRewardOrder message, length delimited. Does not implicitly {@link tutorial.ReqRewardOrder.verify|verify} messages.
         * @param message ReqRewardOrder message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRewardOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRewardOrder message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRewardOrder
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRewardOrder;

        /**
         * Decodes a ReqRewardOrder message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRewardOrder
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRewardOrder;

        /**
         * Verifies a ReqRewardOrder message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRewardOrder message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRewardOrder
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRewardOrder;

        /**
         * Creates a plain object from a ReqRewardOrder message. Also converts values to other types if specified.
         * @param message ReqRewardOrder
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRewardOrder, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRewardOrder to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRewardOrder
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRewardOrder. */
    interface IResRewardOrder {

        /** ResRewardOrder Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResRewardOrder Msg */
        Msg?: (string|null);
    }

    /** Represents a ResRewardOrder. */
    class ResRewardOrder implements IResRewardOrder {

        /**
         * Constructs a new ResRewardOrder.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRewardOrder);

        /** ResRewardOrder Code. */
        public Code: tutorial.RES_CODE;

        /** ResRewardOrder Msg. */
        public Msg: string;

        /**
         * Creates a new ResRewardOrder instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRewardOrder instance
         */
        public static create(properties?: tutorial.IResRewardOrder): tutorial.ResRewardOrder;

        /**
         * Encodes the specified ResRewardOrder message. Does not implicitly {@link tutorial.ResRewardOrder.verify|verify} messages.
         * @param message ResRewardOrder message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRewardOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRewardOrder message, length delimited. Does not implicitly {@link tutorial.ResRewardOrder.verify|verify} messages.
         * @param message ResRewardOrder message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRewardOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRewardOrder message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRewardOrder
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRewardOrder;

        /**
         * Decodes a ResRewardOrder message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRewardOrder
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRewardOrder;

        /**
         * Verifies a ResRewardOrder message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRewardOrder message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRewardOrder
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRewardOrder;

        /**
         * Creates a plain object from a ResRewardOrder message. Also converts values to other types if specified.
         * @param message ResRewardOrder
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRewardOrder, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRewardOrder to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRewardOrder
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an Order. */
    interface IOrder {

        /** Order Id */
        Id?: (number|null);

        /** Order ChessId */
        ChessId?: (number[]|null);

        /** Order type */
        type?: (number|null);
    }

    /** Represents an Order. */
    class Order implements IOrder {

        /**
         * Constructs a new Order.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IOrder);

        /** Order Id. */
        public Id: number;

        /** Order ChessId. */
        public ChessId: number[];

        /** Order type. */
        public type: number;

        /**
         * Creates a new Order instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Order instance
         */
        public static create(properties?: tutorial.IOrder): tutorial.Order;

        /**
         * Encodes the specified Order message. Does not implicitly {@link tutorial.Order.verify|verify} messages.
         * @param message Order message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Order message, length delimited. Does not implicitly {@link tutorial.Order.verify|verify} messages.
         * @param message Order message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an Order message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Order
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.Order;

        /**
         * Decodes an Order message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Order
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.Order;

        /**
         * Verifies an Order message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an Order message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns Order
         */
        public static fromObject(object: { [k: string]: any }): tutorial.Order;

        /**
         * Creates a plain object from an Order message. Also converts values to other types if specified.
         * @param message Order
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.Order, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this Order to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for Order
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResOrderList. */
    interface IResOrderList {

        /** ResOrderList OrderList */
        OrderList?: (tutorial.IOrder[]|null);
    }

    /** Represents a ResOrderList. */
    class ResOrderList implements IResOrderList {

        /**
         * Constructs a new ResOrderList.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResOrderList);

        /** ResOrderList OrderList. */
        public OrderList: tutorial.IOrder[];

        /**
         * Creates a new ResOrderList instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResOrderList instance
         */
        public static create(properties?: tutorial.IResOrderList): tutorial.ResOrderList;

        /**
         * Encodes the specified ResOrderList message. Does not implicitly {@link tutorial.ResOrderList.verify|verify} messages.
         * @param message ResOrderList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResOrderList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResOrderList message, length delimited. Does not implicitly {@link tutorial.ResOrderList.verify|verify} messages.
         * @param message ResOrderList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResOrderList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResOrderList message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResOrderList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResOrderList;

        /**
         * Decodes a ResOrderList message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResOrderList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResOrderList;

        /**
         * Verifies a ResOrderList message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResOrderList message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResOrderList
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResOrderList;

        /**
         * Creates a plain object from a ResOrderList message. Also converts values to other types if specified.
         * @param message ResOrderList
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResOrderList, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResOrderList to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResOrderList
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResDecorateInfo. */
    interface IResDecorateInfo {

        /** ResDecorateInfo AreaId */
        AreaId?: (number|null);

        /** ResDecorateInfo mFinishList */
        mFinishList?: (number[]|null);
    }

    /** Represents a ResDecorateInfo. */
    class ResDecorateInfo implements IResDecorateInfo {

        /**
         * Constructs a new ResDecorateInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResDecorateInfo);

        /** ResDecorateInfo AreaId. */
        public AreaId: number;

        /** ResDecorateInfo mFinishList. */
        public mFinishList: number[];

        /**
         * Creates a new ResDecorateInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResDecorateInfo instance
         */
        public static create(properties?: tutorial.IResDecorateInfo): tutorial.ResDecorateInfo;

        /**
         * Encodes the specified ResDecorateInfo message. Does not implicitly {@link tutorial.ResDecorateInfo.verify|verify} messages.
         * @param message ResDecorateInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResDecorateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResDecorateInfo message, length delimited. Does not implicitly {@link tutorial.ResDecorateInfo.verify|verify} messages.
         * @param message ResDecorateInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResDecorateInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResDecorateInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResDecorateInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResDecorateInfo;

        /**
         * Decodes a ResDecorateInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResDecorateInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResDecorateInfo;

        /**
         * Verifies a ResDecorateInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResDecorateInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResDecorateInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResDecorateInfo;

        /**
         * Creates a plain object from a ResDecorateInfo message. Also converts values to other types if specified.
         * @param message ResDecorateInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResDecorateInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResDecorateInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResDecorateInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqDecorate. */
    interface IReqDecorate {

        /** ReqDecorate AreaId */
        AreaId?: (number|null);

        /** ReqDecorate DecorateId */
        DecorateId?: (number|null);
    }

    /** Represents a ReqDecorate. */
    class ReqDecorate implements IReqDecorate {

        /**
         * Constructs a new ReqDecorate.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqDecorate);

        /** ReqDecorate AreaId. */
        public AreaId: number;

        /** ReqDecorate DecorateId. */
        public DecorateId: number;

        /**
         * Creates a new ReqDecorate instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqDecorate instance
         */
        public static create(properties?: tutorial.IReqDecorate): tutorial.ReqDecorate;

        /**
         * Encodes the specified ReqDecorate message. Does not implicitly {@link tutorial.ReqDecorate.verify|verify} messages.
         * @param message ReqDecorate message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqDecorate, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqDecorate message, length delimited. Does not implicitly {@link tutorial.ReqDecorate.verify|verify} messages.
         * @param message ReqDecorate message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqDecorate, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqDecorate message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqDecorate
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqDecorate;

        /**
         * Decodes a ReqDecorate message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqDecorate
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqDecorate;

        /**
         * Verifies a ReqDecorate message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqDecorate message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqDecorate
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqDecorate;

        /**
         * Creates a plain object from a ReqDecorate message. Also converts values to other types if specified.
         * @param message ReqDecorate
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqDecorate, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqDecorate to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqDecorate
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResDecorate. */
    interface IResDecorate {

        /** ResDecorate Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResDecorate Msg */
        Msg?: (string|null);
    }

    /** Represents a ResDecorate. */
    class ResDecorate implements IResDecorate {

        /**
         * Constructs a new ResDecorate.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResDecorate);

        /** ResDecorate Code. */
        public Code: tutorial.RES_CODE;

        /** ResDecorate Msg. */
        public Msg: string;

        /**
         * Creates a new ResDecorate instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResDecorate instance
         */
        public static create(properties?: tutorial.IResDecorate): tutorial.ResDecorate;

        /**
         * Encodes the specified ResDecorate message. Does not implicitly {@link tutorial.ResDecorate.verify|verify} messages.
         * @param message ResDecorate message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResDecorate, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResDecorate message, length delimited. Does not implicitly {@link tutorial.ResDecorate.verify|verify} messages.
         * @param message ResDecorate message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResDecorate, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResDecorate message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResDecorate
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResDecorate;

        /**
         * Decodes a ResDecorate message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResDecorate
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResDecorate;

        /**
         * Verifies a ResDecorate message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResDecorate message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResDecorate
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResDecorate;

        /**
         * Creates a plain object from a ResDecorate message. Also converts values to other types if specified.
         * @param message ResDecorate
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResDecorate, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResDecorate to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResDecorate
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqDecorateAll. */
    interface IReqDecorateAll {
    }

    /** Represents a ReqDecorateAll. */
    class ReqDecorateAll implements IReqDecorateAll {

        /**
         * Constructs a new ReqDecorateAll.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqDecorateAll);

        /**
         * Creates a new ReqDecorateAll instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqDecorateAll instance
         */
        public static create(properties?: tutorial.IReqDecorateAll): tutorial.ReqDecorateAll;

        /**
         * Encodes the specified ReqDecorateAll message. Does not implicitly {@link tutorial.ReqDecorateAll.verify|verify} messages.
         * @param message ReqDecorateAll message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqDecorateAll, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqDecorateAll message, length delimited. Does not implicitly {@link tutorial.ReqDecorateAll.verify|verify} messages.
         * @param message ReqDecorateAll message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqDecorateAll, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqDecorateAll message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqDecorateAll
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqDecorateAll;

        /**
         * Decodes a ReqDecorateAll message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqDecorateAll
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqDecorateAll;

        /**
         * Verifies a ReqDecorateAll message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqDecorateAll message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqDecorateAll
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqDecorateAll;

        /**
         * Creates a plain object from a ReqDecorateAll message. Also converts values to other types if specified.
         * @param message ReqDecorateAll
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqDecorateAll, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqDecorateAll to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqDecorateAll
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResDecorateAll. */
    interface IResDecorateAll {

        /** ResDecorateAll Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResDecorateAll Msg */
        Msg?: (string|null);
    }

    /** Represents a ResDecorateAll. */
    class ResDecorateAll implements IResDecorateAll {

        /**
         * Constructs a new ResDecorateAll.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResDecorateAll);

        /** ResDecorateAll Code. */
        public Code: tutorial.RES_CODE;

        /** ResDecorateAll Msg. */
        public Msg: string;

        /**
         * Creates a new ResDecorateAll instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResDecorateAll instance
         */
        public static create(properties?: tutorial.IResDecorateAll): tutorial.ResDecorateAll;

        /**
         * Encodes the specified ResDecorateAll message. Does not implicitly {@link tutorial.ResDecorateAll.verify|verify} messages.
         * @param message ResDecorateAll message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResDecorateAll, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResDecorateAll message, length delimited. Does not implicitly {@link tutorial.ResDecorateAll.verify|verify} messages.
         * @param message ResDecorateAll message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResDecorateAll, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResDecorateAll message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResDecorateAll
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResDecorateAll;

        /**
         * Decodes a ResDecorateAll message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResDecorateAll
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResDecorateAll;

        /**
         * Verifies a ResDecorateAll message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResDecorateAll message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResDecorateAll
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResDecorateAll;

        /**
         * Creates a plain object from a ResDecorateAll message. Also converts values to other types if specified.
         * @param message ResDecorateAll
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResDecorateAll, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResDecorateAll to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResDecorateAll
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGmCommand. */
    interface IReqGmCommand {

        /** ReqGmCommand Command */
        Command?: (string|null);

        /** ReqGmCommand args */
        args?: (string|null);
    }

    /** Represents a ReqGmCommand. */
    class ReqGmCommand implements IReqGmCommand {

        /**
         * Constructs a new ReqGmCommand.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGmCommand);

        /** ReqGmCommand Command. */
        public Command: string;

        /** ReqGmCommand args. */
        public args: string;

        /**
         * Creates a new ReqGmCommand instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGmCommand instance
         */
        public static create(properties?: tutorial.IReqGmCommand): tutorial.ReqGmCommand;

        /**
         * Encodes the specified ReqGmCommand message. Does not implicitly {@link tutorial.ReqGmCommand.verify|verify} messages.
         * @param message ReqGmCommand message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGmCommand, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGmCommand message, length delimited. Does not implicitly {@link tutorial.ReqGmCommand.verify|verify} messages.
         * @param message ReqGmCommand message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGmCommand, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGmCommand message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGmCommand
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGmCommand;

        /**
         * Decodes a ReqGmCommand message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGmCommand
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGmCommand;

        /**
         * Verifies a ReqGmCommand message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGmCommand message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGmCommand
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGmCommand;

        /**
         * Creates a plain object from a ReqGmCommand message. Also converts values to other types if specified.
         * @param message ReqGmCommand
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGmCommand, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGmCommand to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGmCommand
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a Card. */
    interface ICard {

        /** Card Id */
        Id?: (number|null);

        /** Card Count */
        Count?: (number|null);
    }

    /** Represents a Card. */
    class Card implements ICard {

        /**
         * Constructs a new Card.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.ICard);

        /** Card Id. */
        public Id: number;

        /** Card Count. */
        public Count: number;

        /**
         * Creates a new Card instance using the specified properties.
         * @param [properties] Properties to set
         * @returns Card instance
         */
        public static create(properties?: tutorial.ICard): tutorial.Card;

        /**
         * Encodes the specified Card message. Does not implicitly {@link tutorial.Card.verify|verify} messages.
         * @param message Card message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.ICard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified Card message, length delimited. Does not implicitly {@link tutorial.Card.verify|verify} messages.
         * @param message Card message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.ICard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a Card message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns Card
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.Card;

        /**
         * Decodes a Card message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns Card
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.Card;

        /**
         * Verifies a Card message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a Card message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns Card
         */
        public static fromObject(object: { [k: string]: any }): tutorial.Card;

        /**
         * Creates a plain object from a Card message. Also converts values to other types if specified.
         * @param message Card
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.Card, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this Card to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for Card
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqCardInfo. */
    interface IReqCardInfo {
    }

    /** Represents a ReqCardInfo. */
    class ReqCardInfo implements IReqCardInfo {

        /**
         * Constructs a new ReqCardInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqCardInfo);

        /**
         * Creates a new ReqCardInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqCardInfo instance
         */
        public static create(properties?: tutorial.IReqCardInfo): tutorial.ReqCardInfo;

        /**
         * Encodes the specified ReqCardInfo message. Does not implicitly {@link tutorial.ReqCardInfo.verify|verify} messages.
         * @param message ReqCardInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqCardInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqCardInfo message, length delimited. Does not implicitly {@link tutorial.ReqCardInfo.verify|verify} messages.
         * @param message ReqCardInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqCardInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqCardInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqCardInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqCardInfo;

        /**
         * Decodes a ReqCardInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqCardInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqCardInfo;

        /**
         * Verifies a ReqCardInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqCardInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqCardInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqCardInfo;

        /**
         * Creates a plain object from a ReqCardInfo message. Also converts values to other types if specified.
         * @param message ReqCardInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqCardInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqCardInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqCardInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResCardInfo. */
    interface IResCardInfo {

        /** ResCardInfo CardList */
        CardList?: (tutorial.ICard[]|null);

        /** ResCardInfo ExStar */
        ExStar?: (number|null);

        /** ResCardInfo Status */
        Status?: (number|null);

        /** ResCardInfo CollectId */
        CollectId?: (number[]|null);

        /** ResCardInfo ExTimes */
        ExTimes?: (number|null);

        /** ResCardInfo ReqTimes */
        ReqTimes?: (number|null);

        /** ResCardInfo AllCard */
        AllCard?: ({ [k: string]: number }|null);

        /** ResCardInfo EndTime */
        EndTime?: (number|null);

        /** ResCardInfo ReqUid */
        ReqUid?: (number[]|null);

        /** ResCardInfo ExUid */
        ExUid?: (number[]|null);

        /** ResCardInfo GoldTimes */
        GoldTimes?: (number|null);

        /** ResCardInfo Round */
        Round?: (number|null);
    }

    /** Represents a ResCardInfo. */
    class ResCardInfo implements IResCardInfo {

        /**
         * Constructs a new ResCardInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResCardInfo);

        /** ResCardInfo CardList. */
        public CardList: tutorial.ICard[];

        /** ResCardInfo ExStar. */
        public ExStar: number;

        /** ResCardInfo Status. */
        public Status: number;

        /** ResCardInfo CollectId. */
        public CollectId: number[];

        /** ResCardInfo ExTimes. */
        public ExTimes: number;

        /** ResCardInfo ReqTimes. */
        public ReqTimes: number;

        /** ResCardInfo AllCard. */
        public AllCard: { [k: string]: number };

        /** ResCardInfo EndTime. */
        public EndTime: number;

        /** ResCardInfo ReqUid. */
        public ReqUid: number[];

        /** ResCardInfo ExUid. */
        public ExUid: number[];

        /** ResCardInfo GoldTimes. */
        public GoldTimes: number;

        /** ResCardInfo Round. */
        public Round: number;

        /**
         * Creates a new ResCardInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResCardInfo instance
         */
        public static create(properties?: tutorial.IResCardInfo): tutorial.ResCardInfo;

        /**
         * Encodes the specified ResCardInfo message. Does not implicitly {@link tutorial.ResCardInfo.verify|verify} messages.
         * @param message ResCardInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResCardInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResCardInfo message, length delimited. Does not implicitly {@link tutorial.ResCardInfo.verify|verify} messages.
         * @param message ResCardInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResCardInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResCardInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResCardInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResCardInfo;

        /**
         * Decodes a ResCardInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResCardInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResCardInfo;

        /**
         * Verifies a ResCardInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResCardInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResCardInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResCardInfo;

        /**
         * Creates a plain object from a ResCardInfo message. Also converts values to other types if specified.
         * @param message ResCardInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResCardInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResCardInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResCardInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResNotifyCardTimes. */
    interface IResNotifyCardTimes {

        /** ResNotifyCardTimes ExTimes */
        ExTimes?: (number|null);

        /** ResNotifyCardTimes ReqTimes */
        ReqTimes?: (number|null);

        /** ResNotifyCardTimes ReqUid */
        ReqUid?: (number[]|null);

        /** ResNotifyCardTimes ExUid */
        ExUid?: (number[]|null);

        /** ResNotifyCardTimes GoldTimes */
        GoldTimes?: (number|null);
    }

    /** Represents a ResNotifyCardTimes. */
    class ResNotifyCardTimes implements IResNotifyCardTimes {

        /**
         * Constructs a new ResNotifyCardTimes.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResNotifyCardTimes);

        /** ResNotifyCardTimes ExTimes. */
        public ExTimes: number;

        /** ResNotifyCardTimes ReqTimes. */
        public ReqTimes: number;

        /** ResNotifyCardTimes ReqUid. */
        public ReqUid: number[];

        /** ResNotifyCardTimes ExUid. */
        public ExUid: number[];

        /** ResNotifyCardTimes GoldTimes. */
        public GoldTimes: number;

        /**
         * Creates a new ResNotifyCardTimes instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResNotifyCardTimes instance
         */
        public static create(properties?: tutorial.IResNotifyCardTimes): tutorial.ResNotifyCardTimes;

        /**
         * Encodes the specified ResNotifyCardTimes message. Does not implicitly {@link tutorial.ResNotifyCardTimes.verify|verify} messages.
         * @param message ResNotifyCardTimes message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResNotifyCardTimes, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResNotifyCardTimes message, length delimited. Does not implicitly {@link tutorial.ResNotifyCardTimes.verify|verify} messages.
         * @param message ResNotifyCardTimes message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResNotifyCardTimes, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResNotifyCardTimes message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResNotifyCardTimes
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResNotifyCardTimes;

        /**
         * Decodes a ResNotifyCardTimes message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResNotifyCardTimes
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResNotifyCardTimes;

        /**
         * Verifies a ResNotifyCardTimes message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResNotifyCardTimes message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResNotifyCardTimes
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResNotifyCardTimes;

        /**
         * Creates a plain object from a ResNotifyCardTimes message. Also converts values to other types if specified.
         * @param message ResNotifyCardTimes
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResNotifyCardTimes, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResNotifyCardTimes to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResNotifyCardTimes
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqMasterCard. */
    interface IReqMasterCard {

        /** ReqMasterCard Id */
        Id?: (number|null);

        /** ReqMasterCard CardId */
        CardId?: (number|null);
    }

    /** Represents a ReqMasterCard. */
    class ReqMasterCard implements IReqMasterCard {

        /**
         * Constructs a new ReqMasterCard.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqMasterCard);

        /** ReqMasterCard Id. */
        public Id: number;

        /** ReqMasterCard CardId. */
        public CardId: number;

        /**
         * Creates a new ReqMasterCard instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqMasterCard instance
         */
        public static create(properties?: tutorial.IReqMasterCard): tutorial.ReqMasterCard;

        /**
         * Encodes the specified ReqMasterCard message. Does not implicitly {@link tutorial.ReqMasterCard.verify|verify} messages.
         * @param message ReqMasterCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqMasterCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqMasterCard message, length delimited. Does not implicitly {@link tutorial.ReqMasterCard.verify|verify} messages.
         * @param message ReqMasterCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqMasterCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqMasterCard message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqMasterCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqMasterCard;

        /**
         * Decodes a ReqMasterCard message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqMasterCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqMasterCard;

        /**
         * Verifies a ReqMasterCard message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqMasterCard message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqMasterCard
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqMasterCard;

        /**
         * Creates a plain object from a ReqMasterCard message. Also converts values to other types if specified.
         * @param message ReqMasterCard
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqMasterCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqMasterCard to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqMasterCard
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResMasterCard. */
    interface IResMasterCard {

        /** ResMasterCard Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResMasterCard Msg */
        Msg?: (string|null);

        /** ResMasterCard MasterId */
        MasterId?: (number|null);

        /** ResMasterCard CardId */
        CardId?: (number|null);
    }

    /** Represents a ResMasterCard. */
    class ResMasterCard implements IResMasterCard {

        /**
         * Constructs a new ResMasterCard.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResMasterCard);

        /** ResMasterCard Code. */
        public Code: tutorial.RES_CODE;

        /** ResMasterCard Msg. */
        public Msg: string;

        /** ResMasterCard MasterId. */
        public MasterId: number;

        /** ResMasterCard CardId. */
        public CardId: number;

        /**
         * Creates a new ResMasterCard instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResMasterCard instance
         */
        public static create(properties?: tutorial.IResMasterCard): tutorial.ResMasterCard;

        /**
         * Encodes the specified ResMasterCard message. Does not implicitly {@link tutorial.ResMasterCard.verify|verify} messages.
         * @param message ResMasterCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResMasterCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResMasterCard message, length delimited. Does not implicitly {@link tutorial.ResMasterCard.verify|verify} messages.
         * @param message ResMasterCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResMasterCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResMasterCard message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResMasterCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResMasterCard;

        /**
         * Decodes a ResMasterCard message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResMasterCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResMasterCard;

        /**
         * Verifies a ResMasterCard message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResMasterCard message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResMasterCard
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResMasterCard;

        /**
         * Creates a plain object from a ResMasterCard message. Also converts values to other types if specified.
         * @param message ResMasterCard
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResMasterCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResMasterCard to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResMasterCard
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqCardCollectReward. */
    interface IReqCardCollectReward {

        /** ReqCardCollectReward Color */
        Color?: (number|null);
    }

    /** Represents a ReqCardCollectReward. */
    class ReqCardCollectReward implements IReqCardCollectReward {

        /**
         * Constructs a new ReqCardCollectReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqCardCollectReward);

        /** ReqCardCollectReward Color. */
        public Color: number;

        /**
         * Creates a new ReqCardCollectReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqCardCollectReward instance
         */
        public static create(properties?: tutorial.IReqCardCollectReward): tutorial.ReqCardCollectReward;

        /**
         * Encodes the specified ReqCardCollectReward message. Does not implicitly {@link tutorial.ReqCardCollectReward.verify|verify} messages.
         * @param message ReqCardCollectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqCardCollectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqCardCollectReward message, length delimited. Does not implicitly {@link tutorial.ReqCardCollectReward.verify|verify} messages.
         * @param message ReqCardCollectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqCardCollectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqCardCollectReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqCardCollectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqCardCollectReward;

        /**
         * Decodes a ReqCardCollectReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqCardCollectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqCardCollectReward;

        /**
         * Verifies a ReqCardCollectReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqCardCollectReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqCardCollectReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqCardCollectReward;

        /**
         * Creates a plain object from a ReqCardCollectReward message. Also converts values to other types if specified.
         * @param message ReqCardCollectReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqCardCollectReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqCardCollectReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqCardCollectReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResCardCollectReward. */
    interface IResCardCollectReward {

        /** ResCardCollectReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResCardCollectReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResCardCollectReward. */
    class ResCardCollectReward implements IResCardCollectReward {

        /**
         * Constructs a new ResCardCollectReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResCardCollectReward);

        /** ResCardCollectReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResCardCollectReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResCardCollectReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResCardCollectReward instance
         */
        public static create(properties?: tutorial.IResCardCollectReward): tutorial.ResCardCollectReward;

        /**
         * Encodes the specified ResCardCollectReward message. Does not implicitly {@link tutorial.ResCardCollectReward.verify|verify} messages.
         * @param message ResCardCollectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResCardCollectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResCardCollectReward message, length delimited. Does not implicitly {@link tutorial.ResCardCollectReward.verify|verify} messages.
         * @param message ResCardCollectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResCardCollectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResCardCollectReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResCardCollectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResCardCollectReward;

        /**
         * Decodes a ResCardCollectReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResCardCollectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResCardCollectReward;

        /**
         * Verifies a ResCardCollectReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResCardCollectReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResCardCollectReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResCardCollectReward;

        /**
         * Creates a plain object from a ResCardCollectReward message. Also converts values to other types if specified.
         * @param message ResCardCollectReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResCardCollectReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResCardCollectReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResCardCollectReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqExStarReward. */
    interface IReqExStarReward {

        /** ReqExStarReward Id */
        Id?: (number|null);
    }

    /** Represents a ReqExStarReward. */
    class ReqExStarReward implements IReqExStarReward {

        /**
         * Constructs a new ReqExStarReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqExStarReward);

        /** ReqExStarReward Id. */
        public Id: number;

        /**
         * Creates a new ReqExStarReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqExStarReward instance
         */
        public static create(properties?: tutorial.IReqExStarReward): tutorial.ReqExStarReward;

        /**
         * Encodes the specified ReqExStarReward message. Does not implicitly {@link tutorial.ReqExStarReward.verify|verify} messages.
         * @param message ReqExStarReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqExStarReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqExStarReward message, length delimited. Does not implicitly {@link tutorial.ReqExStarReward.verify|verify} messages.
         * @param message ReqExStarReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqExStarReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqExStarReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqExStarReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqExStarReward;

        /**
         * Decodes a ReqExStarReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqExStarReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqExStarReward;

        /**
         * Verifies a ReqExStarReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqExStarReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqExStarReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqExStarReward;

        /**
         * Creates a plain object from a ReqExStarReward message. Also converts values to other types if specified.
         * @param message ReqExStarReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqExStarReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqExStarReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqExStarReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResExStarReward. */
    interface IResExStarReward {

        /** ResExStarReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResExStarReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResExStarReward. */
    class ResExStarReward implements IResExStarReward {

        /**
         * Constructs a new ResExStarReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResExStarReward);

        /** ResExStarReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResExStarReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResExStarReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResExStarReward instance
         */
        public static create(properties?: tutorial.IResExStarReward): tutorial.ResExStarReward;

        /**
         * Encodes the specified ResExStarReward message. Does not implicitly {@link tutorial.ResExStarReward.verify|verify} messages.
         * @param message ResExStarReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResExStarReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResExStarReward message, length delimited. Does not implicitly {@link tutorial.ResExStarReward.verify|verify} messages.
         * @param message ResExStarReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResExStarReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResExStarReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResExStarReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResExStarReward;

        /**
         * Decodes a ResExStarReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResExStarReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResExStarReward;

        /**
         * Verifies a ResExStarReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResExStarReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResExStarReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResExStarReward;

        /**
         * Creates a plain object from a ResExStarReward message. Also converts values to other types if specified.
         * @param message ResExStarReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResExStarReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResExStarReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResExStarReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqAllCollectReward. */
    interface IReqAllCollectReward {
    }

    /** Represents a ReqAllCollectReward. */
    class ReqAllCollectReward implements IReqAllCollectReward {

        /**
         * Constructs a new ReqAllCollectReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqAllCollectReward);

        /**
         * Creates a new ReqAllCollectReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqAllCollectReward instance
         */
        public static create(properties?: tutorial.IReqAllCollectReward): tutorial.ReqAllCollectReward;

        /**
         * Encodes the specified ReqAllCollectReward message. Does not implicitly {@link tutorial.ReqAllCollectReward.verify|verify} messages.
         * @param message ReqAllCollectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqAllCollectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqAllCollectReward message, length delimited. Does not implicitly {@link tutorial.ReqAllCollectReward.verify|verify} messages.
         * @param message ReqAllCollectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqAllCollectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqAllCollectReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqAllCollectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqAllCollectReward;

        /**
         * Decodes a ReqAllCollectReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqAllCollectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqAllCollectReward;

        /**
         * Verifies a ReqAllCollectReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqAllCollectReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqAllCollectReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqAllCollectReward;

        /**
         * Creates a plain object from a ReqAllCollectReward message. Also converts values to other types if specified.
         * @param message ReqAllCollectReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqAllCollectReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqAllCollectReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqAllCollectReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResAllCollectReward. */
    interface IResAllCollectReward {

        /** ResAllCollectReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResAllCollectReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResAllCollectReward. */
    class ResAllCollectReward implements IResAllCollectReward {

        /**
         * Constructs a new ResAllCollectReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResAllCollectReward);

        /** ResAllCollectReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResAllCollectReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResAllCollectReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResAllCollectReward instance
         */
        public static create(properties?: tutorial.IResAllCollectReward): tutorial.ResAllCollectReward;

        /**
         * Encodes the specified ResAllCollectReward message. Does not implicitly {@link tutorial.ResAllCollectReward.verify|verify} messages.
         * @param message ResAllCollectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResAllCollectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResAllCollectReward message, length delimited. Does not implicitly {@link tutorial.ResAllCollectReward.verify|verify} messages.
         * @param message ResAllCollectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResAllCollectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResAllCollectReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResAllCollectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResAllCollectReward;

        /**
         * Decodes a ResAllCollectReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResAllCollectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResAllCollectReward;

        /**
         * Verifies a ResAllCollectReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResAllCollectReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResAllCollectReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResAllCollectReward;

        /**
         * Creates a plain object from a ResAllCollectReward message. Also converts values to other types if specified.
         * @param message ResAllCollectReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResAllCollectReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResAllCollectReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResAllCollectReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqCardGive. */
    interface IReqCardGive {

        /** ReqCardGive Uid */
        Uid?: (number[]|null);

        /** ReqCardGive CardId */
        CardId?: (number|null);
    }

    /** Represents a ReqCardGive. */
    class ReqCardGive implements IReqCardGive {

        /**
         * Constructs a new ReqCardGive.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqCardGive);

        /** ReqCardGive Uid. */
        public Uid: number[];

        /** ReqCardGive CardId. */
        public CardId: number;

        /**
         * Creates a new ReqCardGive instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqCardGive instance
         */
        public static create(properties?: tutorial.IReqCardGive): tutorial.ReqCardGive;

        /**
         * Encodes the specified ReqCardGive message. Does not implicitly {@link tutorial.ReqCardGive.verify|verify} messages.
         * @param message ReqCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqCardGive message, length delimited. Does not implicitly {@link tutorial.ReqCardGive.verify|verify} messages.
         * @param message ReqCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqCardGive message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqCardGive;

        /**
         * Decodes a ReqCardGive message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqCardGive;

        /**
         * Verifies a ReqCardGive message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqCardGive message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqCardGive
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqCardGive;

        /**
         * Creates a plain object from a ReqCardGive message. Also converts values to other types if specified.
         * @param message ReqCardGive
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqCardGive, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqCardGive to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqCardGive
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResCardGive. */
    interface IResCardGive {

        /** ResCardGive Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResCardGive Msg */
        Msg?: (string|null);
    }

    /** Represents a ResCardGive. */
    class ResCardGive implements IResCardGive {

        /**
         * Constructs a new ResCardGive.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResCardGive);

        /** ResCardGive Code. */
        public Code: tutorial.RES_CODE;

        /** ResCardGive Msg. */
        public Msg: string;

        /**
         * Creates a new ResCardGive instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResCardGive instance
         */
        public static create(properties?: tutorial.IResCardGive): tutorial.ResCardGive;

        /**
         * Encodes the specified ResCardGive message. Does not implicitly {@link tutorial.ResCardGive.verify|verify} messages.
         * @param message ResCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResCardGive message, length delimited. Does not implicitly {@link tutorial.ResCardGive.verify|verify} messages.
         * @param message ResCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResCardGive message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResCardGive;

        /**
         * Decodes a ResCardGive message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResCardGive;

        /**
         * Verifies a ResCardGive message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResCardGive message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResCardGive
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResCardGive;

        /**
         * Creates a plain object from a ResCardGive message. Also converts values to other types if specified.
         * @param message ResCardGive
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResCardGive, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResCardGive to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResCardGive
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqAgreeCardGive. */
    interface IReqAgreeCardGive {

        /** ReqAgreeCardGive Id */
        Id?: (string|null);
    }

    /** Represents a ReqAgreeCardGive. */
    class ReqAgreeCardGive implements IReqAgreeCardGive {

        /**
         * Constructs a new ReqAgreeCardGive.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqAgreeCardGive);

        /** ReqAgreeCardGive Id. */
        public Id: string;

        /**
         * Creates a new ReqAgreeCardGive instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqAgreeCardGive instance
         */
        public static create(properties?: tutorial.IReqAgreeCardGive): tutorial.ReqAgreeCardGive;

        /**
         * Encodes the specified ReqAgreeCardGive message. Does not implicitly {@link tutorial.ReqAgreeCardGive.verify|verify} messages.
         * @param message ReqAgreeCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqAgreeCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqAgreeCardGive message, length delimited. Does not implicitly {@link tutorial.ReqAgreeCardGive.verify|verify} messages.
         * @param message ReqAgreeCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqAgreeCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqAgreeCardGive message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqAgreeCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqAgreeCardGive;

        /**
         * Decodes a ReqAgreeCardGive message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqAgreeCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqAgreeCardGive;

        /**
         * Verifies a ReqAgreeCardGive message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqAgreeCardGive message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqAgreeCardGive
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqAgreeCardGive;

        /**
         * Creates a plain object from a ReqAgreeCardGive message. Also converts values to other types if specified.
         * @param message ReqAgreeCardGive
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqAgreeCardGive, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqAgreeCardGive to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqAgreeCardGive
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResAgreeCardGive. */
    interface IResAgreeCardGive {

        /** ResAgreeCardGive Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResAgreeCardGive Msg */
        Msg?: (string|null);

        /** ResAgreeCardGive Id */
        Id?: (string|null);
    }

    /** Represents a ResAgreeCardGive. */
    class ResAgreeCardGive implements IResAgreeCardGive {

        /**
         * Constructs a new ResAgreeCardGive.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResAgreeCardGive);

        /** ResAgreeCardGive Code. */
        public Code: tutorial.RES_CODE;

        /** ResAgreeCardGive Msg. */
        public Msg: string;

        /** ResAgreeCardGive Id. */
        public Id: string;

        /**
         * Creates a new ResAgreeCardGive instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResAgreeCardGive instance
         */
        public static create(properties?: tutorial.IResAgreeCardGive): tutorial.ResAgreeCardGive;

        /**
         * Encodes the specified ResAgreeCardGive message. Does not implicitly {@link tutorial.ResAgreeCardGive.verify|verify} messages.
         * @param message ResAgreeCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResAgreeCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResAgreeCardGive message, length delimited. Does not implicitly {@link tutorial.ResAgreeCardGive.verify|verify} messages.
         * @param message ResAgreeCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResAgreeCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResAgreeCardGive message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResAgreeCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResAgreeCardGive;

        /**
         * Decodes a ResAgreeCardGive message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResAgreeCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResAgreeCardGive;

        /**
         * Verifies a ResAgreeCardGive message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResAgreeCardGive message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResAgreeCardGive
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResAgreeCardGive;

        /**
         * Creates a plain object from a ResAgreeCardGive message. Also converts values to other types if specified.
         * @param message ResAgreeCardGive
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResAgreeCardGive, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResAgreeCardGive to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResAgreeCardGive
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRefuseCardGive. */
    interface IReqRefuseCardGive {

        /** ReqRefuseCardGive Id */
        Id?: (string|null);
    }

    /** Represents a ReqRefuseCardGive. */
    class ReqRefuseCardGive implements IReqRefuseCardGive {

        /**
         * Constructs a new ReqRefuseCardGive.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRefuseCardGive);

        /** ReqRefuseCardGive Id. */
        public Id: string;

        /**
         * Creates a new ReqRefuseCardGive instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRefuseCardGive instance
         */
        public static create(properties?: tutorial.IReqRefuseCardGive): tutorial.ReqRefuseCardGive;

        /**
         * Encodes the specified ReqRefuseCardGive message. Does not implicitly {@link tutorial.ReqRefuseCardGive.verify|verify} messages.
         * @param message ReqRefuseCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRefuseCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRefuseCardGive message, length delimited. Does not implicitly {@link tutorial.ReqRefuseCardGive.verify|verify} messages.
         * @param message ReqRefuseCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRefuseCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRefuseCardGive message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRefuseCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRefuseCardGive;

        /**
         * Decodes a ReqRefuseCardGive message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRefuseCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRefuseCardGive;

        /**
         * Verifies a ReqRefuseCardGive message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRefuseCardGive message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRefuseCardGive
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRefuseCardGive;

        /**
         * Creates a plain object from a ReqRefuseCardGive message. Also converts values to other types if specified.
         * @param message ReqRefuseCardGive
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRefuseCardGive, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRefuseCardGive to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRefuseCardGive
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRefuseCardGive. */
    interface IResRefuseCardGive {

        /** ResRefuseCardGive Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResRefuseCardGive Msg */
        Msg?: (string|null);

        /** ResRefuseCardGive Id */
        Id?: (string|null);
    }

    /** Represents a ResRefuseCardGive. */
    class ResRefuseCardGive implements IResRefuseCardGive {

        /**
         * Constructs a new ResRefuseCardGive.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRefuseCardGive);

        /** ResRefuseCardGive Code. */
        public Code: tutorial.RES_CODE;

        /** ResRefuseCardGive Msg. */
        public Msg: string;

        /** ResRefuseCardGive Id. */
        public Id: string;

        /**
         * Creates a new ResRefuseCardGive instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRefuseCardGive instance
         */
        public static create(properties?: tutorial.IResRefuseCardGive): tutorial.ResRefuseCardGive;

        /**
         * Encodes the specified ResRefuseCardGive message. Does not implicitly {@link tutorial.ResRefuseCardGive.verify|verify} messages.
         * @param message ResRefuseCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRefuseCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRefuseCardGive message, length delimited. Does not implicitly {@link tutorial.ResRefuseCardGive.verify|verify} messages.
         * @param message ResRefuseCardGive message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRefuseCardGive, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRefuseCardGive message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRefuseCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRefuseCardGive;

        /**
         * Decodes a ResRefuseCardGive message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRefuseCardGive
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRefuseCardGive;

        /**
         * Verifies a ResRefuseCardGive message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRefuseCardGive message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRefuseCardGive
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRefuseCardGive;

        /**
         * Creates a plain object from a ResRefuseCardGive message. Also converts values to other types if specified.
         * @param message ResRefuseCardGive
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRefuseCardGive, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRefuseCardGive to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRefuseCardGive
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqCardSend. */
    interface IReqCardSend {

        /** ReqCardSend Uid */
        Uid?: (number|null);

        /** ReqCardSend CardId */
        CardId?: (number|null);
    }

    /** Represents a ReqCardSend. */
    class ReqCardSend implements IReqCardSend {

        /**
         * Constructs a new ReqCardSend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqCardSend);

        /** ReqCardSend Uid. */
        public Uid: number;

        /** ReqCardSend CardId. */
        public CardId: number;

        /**
         * Creates a new ReqCardSend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqCardSend instance
         */
        public static create(properties?: tutorial.IReqCardSend): tutorial.ReqCardSend;

        /**
         * Encodes the specified ReqCardSend message. Does not implicitly {@link tutorial.ReqCardSend.verify|verify} messages.
         * @param message ReqCardSend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqCardSend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqCardSend message, length delimited. Does not implicitly {@link tutorial.ReqCardSend.verify|verify} messages.
         * @param message ReqCardSend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqCardSend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqCardSend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqCardSend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqCardSend;

        /**
         * Decodes a ReqCardSend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqCardSend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqCardSend;

        /**
         * Verifies a ReqCardSend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqCardSend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqCardSend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqCardSend;

        /**
         * Creates a plain object from a ReqCardSend message. Also converts values to other types if specified.
         * @param message ReqCardSend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqCardSend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqCardSend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqCardSend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResCardSend. */
    interface IResCardSend {

        /** ResCardSend Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResCardSend Msg */
        Msg?: (string|null);
    }

    /** Represents a ResCardSend. */
    class ResCardSend implements IResCardSend {

        /**
         * Constructs a new ResCardSend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResCardSend);

        /** ResCardSend Code. */
        public Code: tutorial.RES_CODE;

        /** ResCardSend Msg. */
        public Msg: string;

        /**
         * Creates a new ResCardSend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResCardSend instance
         */
        public static create(properties?: tutorial.IResCardSend): tutorial.ResCardSend;

        /**
         * Encodes the specified ResCardSend message. Does not implicitly {@link tutorial.ResCardSend.verify|verify} messages.
         * @param message ResCardSend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResCardSend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResCardSend message, length delimited. Does not implicitly {@link tutorial.ResCardSend.verify|verify} messages.
         * @param message ResCardSend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResCardSend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResCardSend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResCardSend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResCardSend;

        /**
         * Decodes a ResCardSend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResCardSend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResCardSend;

        /**
         * Verifies a ResCardSend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResCardSend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResCardSend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResCardSend;

        /**
         * Creates a plain object from a ResCardSend message. Also converts values to other types if specified.
         * @param message ResCardSend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResCardSend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResCardSend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResCardSend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqCardExchange. */
    interface IReqCardExchange {

        /** ReqCardExchange Uid */
        Uid?: (number|null);

        /** ReqCardExchange CardId */
        CardId?: (number|null);
    }

    /** Represents a ReqCardExchange. */
    class ReqCardExchange implements IReqCardExchange {

        /**
         * Constructs a new ReqCardExchange.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqCardExchange);

        /** ReqCardExchange Uid. */
        public Uid: number;

        /** ReqCardExchange CardId. */
        public CardId: number;

        /**
         * Creates a new ReqCardExchange instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqCardExchange instance
         */
        public static create(properties?: tutorial.IReqCardExchange): tutorial.ReqCardExchange;

        /**
         * Encodes the specified ReqCardExchange message. Does not implicitly {@link tutorial.ReqCardExchange.verify|verify} messages.
         * @param message ReqCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqCardExchange message, length delimited. Does not implicitly {@link tutorial.ReqCardExchange.verify|verify} messages.
         * @param message ReqCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqCardExchange message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqCardExchange;

        /**
         * Decodes a ReqCardExchange message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqCardExchange;

        /**
         * Verifies a ReqCardExchange message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqCardExchange message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqCardExchange
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqCardExchange;

        /**
         * Creates a plain object from a ReqCardExchange message. Also converts values to other types if specified.
         * @param message ReqCardExchange
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqCardExchange, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqCardExchange to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqCardExchange
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResCardExchange. */
    interface IResCardExchange {

        /** ResCardExchange Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResCardExchange Msg */
        Msg?: (string|null);
    }

    /** Represents a ResCardExchange. */
    class ResCardExchange implements IResCardExchange {

        /**
         * Constructs a new ResCardExchange.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResCardExchange);

        /** ResCardExchange Code. */
        public Code: tutorial.RES_CODE;

        /** ResCardExchange Msg. */
        public Msg: string;

        /**
         * Creates a new ResCardExchange instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResCardExchange instance
         */
        public static create(properties?: tutorial.IResCardExchange): tutorial.ResCardExchange;

        /**
         * Encodes the specified ResCardExchange message. Does not implicitly {@link tutorial.ResCardExchange.verify|verify} messages.
         * @param message ResCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResCardExchange message, length delimited. Does not implicitly {@link tutorial.ResCardExchange.verify|verify} messages.
         * @param message ResCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResCardExchange message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResCardExchange;

        /**
         * Decodes a ResCardExchange message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResCardExchange;

        /**
         * Verifies a ResCardExchange message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResCardExchange message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResCardExchange
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResCardExchange;

        /**
         * Creates a plain object from a ResCardExchange message. Also converts values to other types if specified.
         * @param message ResCardExchange
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResCardExchange, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResCardExchange to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResCardExchange
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSelectCardExchange. */
    interface IReqSelectCardExchange {

        /** ReqSelectCardExchange Id */
        Id?: (string|null);

        /** ReqSelectCardExchange CardId */
        CardId?: (number|null);
    }

    /** Represents a ReqSelectCardExchange. */
    class ReqSelectCardExchange implements IReqSelectCardExchange {

        /**
         * Constructs a new ReqSelectCardExchange.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSelectCardExchange);

        /** ReqSelectCardExchange Id. */
        public Id: string;

        /** ReqSelectCardExchange CardId. */
        public CardId: number;

        /**
         * Creates a new ReqSelectCardExchange instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSelectCardExchange instance
         */
        public static create(properties?: tutorial.IReqSelectCardExchange): tutorial.ReqSelectCardExchange;

        /**
         * Encodes the specified ReqSelectCardExchange message. Does not implicitly {@link tutorial.ReqSelectCardExchange.verify|verify} messages.
         * @param message ReqSelectCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSelectCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSelectCardExchange message, length delimited. Does not implicitly {@link tutorial.ReqSelectCardExchange.verify|verify} messages.
         * @param message ReqSelectCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSelectCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSelectCardExchange message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSelectCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSelectCardExchange;

        /**
         * Decodes a ReqSelectCardExchange message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSelectCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSelectCardExchange;

        /**
         * Verifies a ReqSelectCardExchange message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSelectCardExchange message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSelectCardExchange
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSelectCardExchange;

        /**
         * Creates a plain object from a ReqSelectCardExchange message. Also converts values to other types if specified.
         * @param message ReqSelectCardExchange
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSelectCardExchange, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSelectCardExchange to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSelectCardExchange
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSelectCardExchange. */
    interface IResSelectCardExchange {

        /** ResSelectCardExchange Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResSelectCardExchange Msg */
        Msg?: (string|null);

        /** ResSelectCardExchange Id */
        Id?: (string|null);
    }

    /** Represents a ResSelectCardExchange. */
    class ResSelectCardExchange implements IResSelectCardExchange {

        /**
         * Constructs a new ResSelectCardExchange.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSelectCardExchange);

        /** ResSelectCardExchange Code. */
        public Code: tutorial.RES_CODE;

        /** ResSelectCardExchange Msg. */
        public Msg: string;

        /** ResSelectCardExchange Id. */
        public Id: string;

        /**
         * Creates a new ResSelectCardExchange instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSelectCardExchange instance
         */
        public static create(properties?: tutorial.IResSelectCardExchange): tutorial.ResSelectCardExchange;

        /**
         * Encodes the specified ResSelectCardExchange message. Does not implicitly {@link tutorial.ResSelectCardExchange.verify|verify} messages.
         * @param message ResSelectCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSelectCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSelectCardExchange message, length delimited. Does not implicitly {@link tutorial.ResSelectCardExchange.verify|verify} messages.
         * @param message ResSelectCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSelectCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSelectCardExchange message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSelectCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSelectCardExchange;

        /**
         * Decodes a ResSelectCardExchange message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSelectCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSelectCardExchange;

        /**
         * Verifies a ResSelectCardExchange message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSelectCardExchange message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSelectCardExchange
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSelectCardExchange;

        /**
         * Creates a plain object from a ResSelectCardExchange message. Also converts values to other types if specified.
         * @param message ResSelectCardExchange
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSelectCardExchange, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSelectCardExchange to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSelectCardExchange
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqAgreeCardExchange. */
    interface IReqAgreeCardExchange {

        /** ReqAgreeCardExchange Id */
        Id?: (string|null);
    }

    /** Represents a ReqAgreeCardExchange. */
    class ReqAgreeCardExchange implements IReqAgreeCardExchange {

        /**
         * Constructs a new ReqAgreeCardExchange.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqAgreeCardExchange);

        /** ReqAgreeCardExchange Id. */
        public Id: string;

        /**
         * Creates a new ReqAgreeCardExchange instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqAgreeCardExchange instance
         */
        public static create(properties?: tutorial.IReqAgreeCardExchange): tutorial.ReqAgreeCardExchange;

        /**
         * Encodes the specified ReqAgreeCardExchange message. Does not implicitly {@link tutorial.ReqAgreeCardExchange.verify|verify} messages.
         * @param message ReqAgreeCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqAgreeCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqAgreeCardExchange message, length delimited. Does not implicitly {@link tutorial.ReqAgreeCardExchange.verify|verify} messages.
         * @param message ReqAgreeCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqAgreeCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqAgreeCardExchange message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqAgreeCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqAgreeCardExchange;

        /**
         * Decodes a ReqAgreeCardExchange message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqAgreeCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqAgreeCardExchange;

        /**
         * Verifies a ReqAgreeCardExchange message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqAgreeCardExchange message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqAgreeCardExchange
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqAgreeCardExchange;

        /**
         * Creates a plain object from a ReqAgreeCardExchange message. Also converts values to other types if specified.
         * @param message ReqAgreeCardExchange
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqAgreeCardExchange, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqAgreeCardExchange to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqAgreeCardExchange
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResAgreeCardExchange. */
    interface IResAgreeCardExchange {

        /** ResAgreeCardExchange Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResAgreeCardExchange Msg */
        Msg?: (string|null);

        /** ResAgreeCardExchange Id */
        Id?: (string|null);
    }

    /** Represents a ResAgreeCardExchange. */
    class ResAgreeCardExchange implements IResAgreeCardExchange {

        /**
         * Constructs a new ResAgreeCardExchange.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResAgreeCardExchange);

        /** ResAgreeCardExchange Code. */
        public Code: tutorial.RES_CODE;

        /** ResAgreeCardExchange Msg. */
        public Msg: string;

        /** ResAgreeCardExchange Id. */
        public Id: string;

        /**
         * Creates a new ResAgreeCardExchange instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResAgreeCardExchange instance
         */
        public static create(properties?: tutorial.IResAgreeCardExchange): tutorial.ResAgreeCardExchange;

        /**
         * Encodes the specified ResAgreeCardExchange message. Does not implicitly {@link tutorial.ResAgreeCardExchange.verify|verify} messages.
         * @param message ResAgreeCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResAgreeCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResAgreeCardExchange message, length delimited. Does not implicitly {@link tutorial.ResAgreeCardExchange.verify|verify} messages.
         * @param message ResAgreeCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResAgreeCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResAgreeCardExchange message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResAgreeCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResAgreeCardExchange;

        /**
         * Decodes a ResAgreeCardExchange message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResAgreeCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResAgreeCardExchange;

        /**
         * Verifies a ResAgreeCardExchange message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResAgreeCardExchange message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResAgreeCardExchange
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResAgreeCardExchange;

        /**
         * Creates a plain object from a ResAgreeCardExchange message. Also converts values to other types if specified.
         * @param message ResAgreeCardExchange
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResAgreeCardExchange, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResAgreeCardExchange to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResAgreeCardExchange
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRefuseCardSelect. */
    interface IReqRefuseCardSelect {

        /** ReqRefuseCardSelect Id */
        Id?: (string|null);
    }

    /** Represents a ReqRefuseCardSelect. */
    class ReqRefuseCardSelect implements IReqRefuseCardSelect {

        /**
         * Constructs a new ReqRefuseCardSelect.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRefuseCardSelect);

        /** ReqRefuseCardSelect Id. */
        public Id: string;

        /**
         * Creates a new ReqRefuseCardSelect instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRefuseCardSelect instance
         */
        public static create(properties?: tutorial.IReqRefuseCardSelect): tutorial.ReqRefuseCardSelect;

        /**
         * Encodes the specified ReqRefuseCardSelect message. Does not implicitly {@link tutorial.ReqRefuseCardSelect.verify|verify} messages.
         * @param message ReqRefuseCardSelect message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRefuseCardSelect, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRefuseCardSelect message, length delimited. Does not implicitly {@link tutorial.ReqRefuseCardSelect.verify|verify} messages.
         * @param message ReqRefuseCardSelect message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRefuseCardSelect, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRefuseCardSelect message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRefuseCardSelect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRefuseCardSelect;

        /**
         * Decodes a ReqRefuseCardSelect message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRefuseCardSelect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRefuseCardSelect;

        /**
         * Verifies a ReqRefuseCardSelect message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRefuseCardSelect message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRefuseCardSelect
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRefuseCardSelect;

        /**
         * Creates a plain object from a ReqRefuseCardSelect message. Also converts values to other types if specified.
         * @param message ReqRefuseCardSelect
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRefuseCardSelect, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRefuseCardSelect to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRefuseCardSelect
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRefuseCardSelect. */
    interface IResRefuseCardSelect {

        /** ResRefuseCardSelect Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResRefuseCardSelect Msg */
        Msg?: (string|null);

        /** ResRefuseCardSelect Id */
        Id?: (string|null);
    }

    /** Represents a ResRefuseCardSelect. */
    class ResRefuseCardSelect implements IResRefuseCardSelect {

        /**
         * Constructs a new ResRefuseCardSelect.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRefuseCardSelect);

        /** ResRefuseCardSelect Code. */
        public Code: tutorial.RES_CODE;

        /** ResRefuseCardSelect Msg. */
        public Msg: string;

        /** ResRefuseCardSelect Id. */
        public Id: string;

        /**
         * Creates a new ResRefuseCardSelect instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRefuseCardSelect instance
         */
        public static create(properties?: tutorial.IResRefuseCardSelect): tutorial.ResRefuseCardSelect;

        /**
         * Encodes the specified ResRefuseCardSelect message. Does not implicitly {@link tutorial.ResRefuseCardSelect.verify|verify} messages.
         * @param message ResRefuseCardSelect message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRefuseCardSelect, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRefuseCardSelect message, length delimited. Does not implicitly {@link tutorial.ResRefuseCardSelect.verify|verify} messages.
         * @param message ResRefuseCardSelect message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRefuseCardSelect, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRefuseCardSelect message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRefuseCardSelect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRefuseCardSelect;

        /**
         * Decodes a ResRefuseCardSelect message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRefuseCardSelect
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRefuseCardSelect;

        /**
         * Verifies a ResRefuseCardSelect message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRefuseCardSelect message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRefuseCardSelect
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRefuseCardSelect;

        /**
         * Creates a plain object from a ResRefuseCardSelect message. Also converts values to other types if specified.
         * @param message ResRefuseCardSelect
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRefuseCardSelect, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRefuseCardSelect to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRefuseCardSelect
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRefuseCardExchange. */
    interface IReqRefuseCardExchange {

        /** ReqRefuseCardExchange Id */
        Id?: (string|null);
    }

    /** Represents a ReqRefuseCardExchange. */
    class ReqRefuseCardExchange implements IReqRefuseCardExchange {

        /**
         * Constructs a new ReqRefuseCardExchange.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRefuseCardExchange);

        /** ReqRefuseCardExchange Id. */
        public Id: string;

        /**
         * Creates a new ReqRefuseCardExchange instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRefuseCardExchange instance
         */
        public static create(properties?: tutorial.IReqRefuseCardExchange): tutorial.ReqRefuseCardExchange;

        /**
         * Encodes the specified ReqRefuseCardExchange message. Does not implicitly {@link tutorial.ReqRefuseCardExchange.verify|verify} messages.
         * @param message ReqRefuseCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRefuseCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRefuseCardExchange message, length delimited. Does not implicitly {@link tutorial.ReqRefuseCardExchange.verify|verify} messages.
         * @param message ReqRefuseCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRefuseCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRefuseCardExchange message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRefuseCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRefuseCardExchange;

        /**
         * Decodes a ReqRefuseCardExchange message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRefuseCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRefuseCardExchange;

        /**
         * Verifies a ReqRefuseCardExchange message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRefuseCardExchange message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRefuseCardExchange
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRefuseCardExchange;

        /**
         * Creates a plain object from a ReqRefuseCardExchange message. Also converts values to other types if specified.
         * @param message ReqRefuseCardExchange
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRefuseCardExchange, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRefuseCardExchange to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRefuseCardExchange
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRefuseCardExchange. */
    interface IResRefuseCardExchange {

        /** ResRefuseCardExchange Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResRefuseCardExchange Msg */
        Msg?: (string|null);

        /** ResRefuseCardExchange Id */
        Id?: (string|null);
    }

    /** Represents a ResRefuseCardExchange. */
    class ResRefuseCardExchange implements IResRefuseCardExchange {

        /**
         * Constructs a new ResRefuseCardExchange.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRefuseCardExchange);

        /** ResRefuseCardExchange Code. */
        public Code: tutorial.RES_CODE;

        /** ResRefuseCardExchange Msg. */
        public Msg: string;

        /** ResRefuseCardExchange Id. */
        public Id: string;

        /**
         * Creates a new ResRefuseCardExchange instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRefuseCardExchange instance
         */
        public static create(properties?: tutorial.IResRefuseCardExchange): tutorial.ResRefuseCardExchange;

        /**
         * Encodes the specified ResRefuseCardExchange message. Does not implicitly {@link tutorial.ResRefuseCardExchange.verify|verify} messages.
         * @param message ResRefuseCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRefuseCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRefuseCardExchange message, length delimited. Does not implicitly {@link tutorial.ResRefuseCardExchange.verify|verify} messages.
         * @param message ResRefuseCardExchange message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRefuseCardExchange, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRefuseCardExchange message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRefuseCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRefuseCardExchange;

        /**
         * Decodes a ResRefuseCardExchange message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRefuseCardExchange
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRefuseCardExchange;

        /**
         * Verifies a ResRefuseCardExchange message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRefuseCardExchange message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRefuseCardExchange
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRefuseCardExchange;

        /**
         * Creates a plain object from a ResRefuseCardExchange message. Also converts values to other types if specified.
         * @param message ResRefuseCardExchange
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRefuseCardExchange, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRefuseCardExchange to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRefuseCardExchange
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetFriendCard. */
    interface IReqGetFriendCard {

        /** ReqGetFriendCard Id */
        Id?: (string|null);
    }

    /** Represents a ReqGetFriendCard. */
    class ReqGetFriendCard implements IReqGetFriendCard {

        /**
         * Constructs a new ReqGetFriendCard.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetFriendCard);

        /** ReqGetFriendCard Id. */
        public Id: string;

        /**
         * Creates a new ReqGetFriendCard instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetFriendCard instance
         */
        public static create(properties?: tutorial.IReqGetFriendCard): tutorial.ReqGetFriendCard;

        /**
         * Encodes the specified ReqGetFriendCard message. Does not implicitly {@link tutorial.ReqGetFriendCard.verify|verify} messages.
         * @param message ReqGetFriendCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetFriendCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetFriendCard message, length delimited. Does not implicitly {@link tutorial.ReqGetFriendCard.verify|verify} messages.
         * @param message ReqGetFriendCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetFriendCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetFriendCard message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetFriendCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetFriendCard;

        /**
         * Decodes a ReqGetFriendCard message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetFriendCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetFriendCard;

        /**
         * Verifies a ReqGetFriendCard message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetFriendCard message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetFriendCard
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetFriendCard;

        /**
         * Creates a plain object from a ReqGetFriendCard message. Also converts values to other types if specified.
         * @param message ReqGetFriendCard
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetFriendCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetFriendCard to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetFriendCard
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetFriendCard. */
    interface IResGetFriendCard {

        /** ResGetFriendCard Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGetFriendCard Msg */
        Msg?: (string|null);

        /** ResGetFriendCard Id */
        Id?: (string|null);

        /** ResGetFriendCard CardId */
        CardId?: (number|null);
    }

    /** Represents a ResGetFriendCard. */
    class ResGetFriendCard implements IResGetFriendCard {

        /**
         * Constructs a new ResGetFriendCard.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetFriendCard);

        /** ResGetFriendCard Code. */
        public Code: tutorial.RES_CODE;

        /** ResGetFriendCard Msg. */
        public Msg: string;

        /** ResGetFriendCard Id. */
        public Id: string;

        /** ResGetFriendCard CardId. */
        public CardId: number;

        /**
         * Creates a new ResGetFriendCard instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetFriendCard instance
         */
        public static create(properties?: tutorial.IResGetFriendCard): tutorial.ResGetFriendCard;

        /**
         * Encodes the specified ResGetFriendCard message. Does not implicitly {@link tutorial.ResGetFriendCard.verify|verify} messages.
         * @param message ResGetFriendCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetFriendCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetFriendCard message, length delimited. Does not implicitly {@link tutorial.ResGetFriendCard.verify|verify} messages.
         * @param message ResGetFriendCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetFriendCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetFriendCard message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetFriendCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetFriendCard;

        /**
         * Decodes a ResGetFriendCard message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetFriendCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetFriendCard;

        /**
         * Verifies a ResGetFriendCard message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetFriendCard message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetFriendCard
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetFriendCard;

        /**
         * Creates a plain object from a ResGetFriendCard message. Also converts values to other types if specified.
         * @param message ResGetFriendCard
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetFriendCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetFriendCard to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetFriendCard
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetGoldCard. */
    interface IReqGetGoldCard {
    }

    /** Represents a ReqGetGoldCard. */
    class ReqGetGoldCard implements IReqGetGoldCard {

        /**
         * Constructs a new ReqGetGoldCard.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetGoldCard);

        /**
         * Creates a new ReqGetGoldCard instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetGoldCard instance
         */
        public static create(properties?: tutorial.IReqGetGoldCard): tutorial.ReqGetGoldCard;

        /**
         * Encodes the specified ReqGetGoldCard message. Does not implicitly {@link tutorial.ReqGetGoldCard.verify|verify} messages.
         * @param message ReqGetGoldCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetGoldCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetGoldCard message, length delimited. Does not implicitly {@link tutorial.ReqGetGoldCard.verify|verify} messages.
         * @param message ReqGetGoldCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetGoldCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetGoldCard message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetGoldCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetGoldCard;

        /**
         * Decodes a ReqGetGoldCard message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetGoldCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetGoldCard;

        /**
         * Verifies a ReqGetGoldCard message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetGoldCard message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetGoldCard
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetGoldCard;

        /**
         * Creates a plain object from a ReqGetGoldCard message. Also converts values to other types if specified.
         * @param message ReqGetGoldCard
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetGoldCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetGoldCard to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetGoldCard
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetGoldCard. */
    interface IResGetGoldCard {

        /** ResGetGoldCard Four */
        Four?: (number|null);

        /** ResGetGoldCard Five */
        Five?: (number|null);
    }

    /** Represents a ResGetGoldCard. */
    class ResGetGoldCard implements IResGetGoldCard {

        /**
         * Constructs a new ResGetGoldCard.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetGoldCard);

        /** ResGetGoldCard Four. */
        public Four: number;

        /** ResGetGoldCard Five. */
        public Five: number;

        /**
         * Creates a new ResGetGoldCard instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetGoldCard instance
         */
        public static create(properties?: tutorial.IResGetGoldCard): tutorial.ResGetGoldCard;

        /**
         * Encodes the specified ResGetGoldCard message. Does not implicitly {@link tutorial.ResGetGoldCard.verify|verify} messages.
         * @param message ResGetGoldCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetGoldCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetGoldCard message, length delimited. Does not implicitly {@link tutorial.ResGetGoldCard.verify|verify} messages.
         * @param message ResGetGoldCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetGoldCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetGoldCard message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetGoldCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetGoldCard;

        /**
         * Decodes a ResGetGoldCard message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetGoldCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetGoldCard;

        /**
         * Verifies a ResGetGoldCard message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetGoldCard message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetGoldCard
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetGoldCard;

        /**
         * Creates a plain object from a ResGetGoldCard message. Also converts values to other types if specified.
         * @param message ResGetGoldCard
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetGoldCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetGoldCard to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetGoldCard
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGuideReward. */
    interface IReqGuideReward {

        /** ReqGuideReward Id */
        Id?: (number|null);
    }

    /** Represents a ReqGuideReward. */
    class ReqGuideReward implements IReqGuideReward {

        /**
         * Constructs a new ReqGuideReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGuideReward);

        /** ReqGuideReward Id. */
        public Id: number;

        /**
         * Creates a new ReqGuideReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGuideReward instance
         */
        public static create(properties?: tutorial.IReqGuideReward): tutorial.ReqGuideReward;

        /**
         * Encodes the specified ReqGuideReward message. Does not implicitly {@link tutorial.ReqGuideReward.verify|verify} messages.
         * @param message ReqGuideReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGuideReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGuideReward message, length delimited. Does not implicitly {@link tutorial.ReqGuideReward.verify|verify} messages.
         * @param message ReqGuideReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGuideReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGuideReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGuideReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGuideReward;

        /**
         * Decodes a ReqGuideReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGuideReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGuideReward;

        /**
         * Verifies a ReqGuideReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGuideReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGuideReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGuideReward;

        /**
         * Creates a plain object from a ReqGuideReward message. Also converts values to other types if specified.
         * @param message ReqGuideReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGuideReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGuideReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGuideReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGuideReward. */
    interface IResGuideReward {

        /** ResGuideReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGuideReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResGuideReward. */
    class ResGuideReward implements IResGuideReward {

        /**
         * Constructs a new ResGuideReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGuideReward);

        /** ResGuideReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResGuideReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResGuideReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGuideReward instance
         */
        public static create(properties?: tutorial.IResGuideReward): tutorial.ResGuideReward;

        /**
         * Encodes the specified ResGuideReward message. Does not implicitly {@link tutorial.ResGuideReward.verify|verify} messages.
         * @param message ResGuideReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGuideReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGuideReward message, length delimited. Does not implicitly {@link tutorial.ResGuideReward.verify|verify} messages.
         * @param message ResGuideReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGuideReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGuideReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGuideReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGuideReward;

        /**
         * Decodes a ResGuideReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGuideReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGuideReward;

        /**
         * Verifies a ResGuideReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGuideReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGuideReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGuideReward;

        /**
         * Creates a plain object from a ResGuideReward message. Also converts values to other types if specified.
         * @param message ResGuideReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGuideReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGuideReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGuideReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGuildInfo. */
    interface IResGuildInfo {

        /** ResGuildInfo Reward */
        Reward?: ({ [k: string]: number }|null);
    }

    /** Represents a ResGuildInfo. */
    class ResGuildInfo implements IResGuildInfo {

        /**
         * Constructs a new ResGuildInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGuildInfo);

        /** ResGuildInfo Reward. */
        public Reward: { [k: string]: number };

        /**
         * Creates a new ResGuildInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGuildInfo instance
         */
        public static create(properties?: tutorial.IResGuildInfo): tutorial.ResGuildInfo;

        /**
         * Encodes the specified ResGuildInfo message. Does not implicitly {@link tutorial.ResGuildInfo.verify|verify} messages.
         * @param message ResGuildInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGuildInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGuildInfo message, length delimited. Does not implicitly {@link tutorial.ResGuildInfo.verify|verify} messages.
         * @param message ResGuildInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGuildInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGuildInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGuildInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGuildInfo;

        /**
         * Decodes a ResGuildInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGuildInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGuildInfo;

        /**
         * Verifies a ResGuildInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGuildInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGuildInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGuildInfo;

        /**
         * Creates a plain object from a ResGuildInfo message. Also converts values to other types if specified.
         * @param message ResGuildInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGuildInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGuildInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGuildInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResItemPop. */
    interface IResItemPop {

        /** ResItemPop Id */
        Id?: (number|null);

        /** ResItemPop Items */
        Items?: (tutorial.IItemInfo[]|null);

        /** ResItemPop CardPacks */
        CardPacks?: (tutorial.ICardPack[]|null);

        /** ResItemPop Lable */
        Lable?: (string|null);
    }

    /** Represents a ResItemPop. */
    class ResItemPop implements IResItemPop {

        /**
         * Constructs a new ResItemPop.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResItemPop);

        /** ResItemPop Id. */
        public Id: number;

        /** ResItemPop Items. */
        public Items: tutorial.IItemInfo[];

        /** ResItemPop CardPacks. */
        public CardPacks: tutorial.ICardPack[];

        /** ResItemPop Lable. */
        public Lable: string;

        /**
         * Creates a new ResItemPop instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResItemPop instance
         */
        public static create(properties?: tutorial.IResItemPop): tutorial.ResItemPop;

        /**
         * Encodes the specified ResItemPop message. Does not implicitly {@link tutorial.ResItemPop.verify|verify} messages.
         * @param message ResItemPop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResItemPop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResItemPop message, length delimited. Does not implicitly {@link tutorial.ResItemPop.verify|verify} messages.
         * @param message ResItemPop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResItemPop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResItemPop message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResItemPop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResItemPop;

        /**
         * Decodes a ResItemPop message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResItemPop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResItemPop;

        /**
         * Verifies a ResItemPop message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResItemPop message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResItemPop
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResItemPop;

        /**
         * Creates a plain object from a ResItemPop message. Also converts values to other types if specified.
         * @param message ResItemPop
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResItemPop, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResItemPop to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResItemPop
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an ItemInfo. */
    interface IItemInfo {

        /** ItemInfo Id */
        Id?: (number|null);

        /** ItemInfo Num */
        Num?: (number|null);
    }

    /** Represents an ItemInfo. */
    class ItemInfo implements IItemInfo {

        /**
         * Constructs a new ItemInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IItemInfo);

        /** ItemInfo Id. */
        public Id: number;

        /** ItemInfo Num. */
        public Num: number;

        /**
         * Creates a new ItemInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ItemInfo instance
         */
        public static create(properties?: tutorial.IItemInfo): tutorial.ItemInfo;

        /**
         * Encodes the specified ItemInfo message. Does not implicitly {@link tutorial.ItemInfo.verify|verify} messages.
         * @param message ItemInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IItemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ItemInfo message, length delimited. Does not implicitly {@link tutorial.ItemInfo.verify|verify} messages.
         * @param message ItemInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IItemInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an ItemInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ItemInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ItemInfo;

        /**
         * Decodes an ItemInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ItemInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ItemInfo;

        /**
         * Verifies an ItemInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an ItemInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ItemInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ItemInfo;

        /**
         * Creates a plain object from an ItemInfo message. Also converts values to other types if specified.
         * @param message ItemInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ItemInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ItemInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ItemInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a CardPack. */
    interface ICardPack {

        /** CardPack Id */
        Id?: (number|null);

        /** CardPack Card */
        Card?: (number[]|null);
    }

    /** Represents a CardPack. */
    class CardPack implements ICardPack {

        /**
         * Constructs a new CardPack.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.ICardPack);

        /** CardPack Id. */
        public Id: number;

        /** CardPack Card. */
        public Card: number[];

        /**
         * Creates a new CardPack instance using the specified properties.
         * @param [properties] Properties to set
         * @returns CardPack instance
         */
        public static create(properties?: tutorial.ICardPack): tutorial.CardPack;

        /**
         * Encodes the specified CardPack message. Does not implicitly {@link tutorial.CardPack.verify|verify} messages.
         * @param message CardPack message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.ICardPack, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified CardPack message, length delimited. Does not implicitly {@link tutorial.CardPack.verify|verify} messages.
         * @param message CardPack message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.ICardPack, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a CardPack message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns CardPack
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.CardPack;

        /**
         * Decodes a CardPack message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns CardPack
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.CardPack;

        /**
         * Verifies a CardPack message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a CardPack message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns CardPack
         */
        public static fromObject(object: { [k: string]: any }): tutorial.CardPack;

        /**
         * Creates a plain object from a CardPack message. Also converts values to other types if specified.
         * @param message CardPack
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.CardPack, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this CardPack to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for CardPack
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResDailyTask. */
    interface IResDailyTask {

        /** ResDailyTask WeekReward */
        WeekReward?: ({ [k: string]: tutorial.IDailyWeek }|null);

        /** ResDailyTask DailyTask */
        DailyTask?: ({ [k: string]: tutorial.IDailyTask }|null);

        /** ResDailyTask Active */
        Active?: (number|null);

        /** ResDailyTask DayEnd */
        DayEnd?: (number|null);

        /** ResDailyTask WeekEnd */
        WeekEnd?: (number|null);
    }

    /** Represents a ResDailyTask. */
    class ResDailyTask implements IResDailyTask {

        /**
         * Constructs a new ResDailyTask.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResDailyTask);

        /** ResDailyTask WeekReward. */
        public WeekReward: { [k: string]: tutorial.IDailyWeek };

        /** ResDailyTask DailyTask. */
        public DailyTask: { [k: string]: tutorial.IDailyTask };

        /** ResDailyTask Active. */
        public Active: number;

        /** ResDailyTask DayEnd. */
        public DayEnd: number;

        /** ResDailyTask WeekEnd. */
        public WeekEnd: number;

        /**
         * Creates a new ResDailyTask instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResDailyTask instance
         */
        public static create(properties?: tutorial.IResDailyTask): tutorial.ResDailyTask;

        /**
         * Encodes the specified ResDailyTask message. Does not implicitly {@link tutorial.ResDailyTask.verify|verify} messages.
         * @param message ResDailyTask message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResDailyTask, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResDailyTask message, length delimited. Does not implicitly {@link tutorial.ResDailyTask.verify|verify} messages.
         * @param message ResDailyTask message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResDailyTask, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResDailyTask message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResDailyTask
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResDailyTask;

        /**
         * Decodes a ResDailyTask message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResDailyTask
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResDailyTask;

        /**
         * Verifies a ResDailyTask message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResDailyTask message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResDailyTask
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResDailyTask;

        /**
         * Creates a plain object from a ResDailyTask message. Also converts values to other types if specified.
         * @param message ResDailyTask
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResDailyTask, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResDailyTask to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResDailyTask
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a DailyWeek. */
    interface IDailyWeek {

        /** DailyWeek Items */
        Items?: (tutorial.IItemInfo[]|null);

        /** DailyWeek Status */
        Status?: (boolean|null);

        /** DailyWeek NeedActive */
        NeedActive?: (number|null);
    }

    /** Represents a DailyWeek. */
    class DailyWeek implements IDailyWeek {

        /**
         * Constructs a new DailyWeek.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IDailyWeek);

        /** DailyWeek Items. */
        public Items: tutorial.IItemInfo[];

        /** DailyWeek Status. */
        public Status: boolean;

        /** DailyWeek NeedActive. */
        public NeedActive: number;

        /**
         * Creates a new DailyWeek instance using the specified properties.
         * @param [properties] Properties to set
         * @returns DailyWeek instance
         */
        public static create(properties?: tutorial.IDailyWeek): tutorial.DailyWeek;

        /**
         * Encodes the specified DailyWeek message. Does not implicitly {@link tutorial.DailyWeek.verify|verify} messages.
         * @param message DailyWeek message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IDailyWeek, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified DailyWeek message, length delimited. Does not implicitly {@link tutorial.DailyWeek.verify|verify} messages.
         * @param message DailyWeek message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IDailyWeek, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a DailyWeek message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns DailyWeek
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.DailyWeek;

        /**
         * Decodes a DailyWeek message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns DailyWeek
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.DailyWeek;

        /**
         * Verifies a DailyWeek message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a DailyWeek message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns DailyWeek
         */
        public static fromObject(object: { [k: string]: any }): tutorial.DailyWeek;

        /**
         * Creates a plain object from a DailyWeek message. Also converts values to other types if specified.
         * @param message DailyWeek
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.DailyWeek, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this DailyWeek to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for DailyWeek
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a DailyTask. */
    interface IDailyTask {

        /** DailyTask Status */
        Status?: (number|null);

        /** DailyTask UnLock */
        UnLock?: (boolean|null);

        /** DailyTask Progress */
        Progress?: (tutorial.IQuestProgress|null);

        /** DailyTask Items */
        Items?: (tutorial.IItemInfo[]|null);
    }

    /** Represents a DailyTask. */
    class DailyTask implements IDailyTask {

        /**
         * Constructs a new DailyTask.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IDailyTask);

        /** DailyTask Status. */
        public Status: number;

        /** DailyTask UnLock. */
        public UnLock: boolean;

        /** DailyTask Progress. */
        public Progress?: (tutorial.IQuestProgress|null);

        /** DailyTask Items. */
        public Items: tutorial.IItemInfo[];

        /**
         * Creates a new DailyTask instance using the specified properties.
         * @param [properties] Properties to set
         * @returns DailyTask instance
         */
        public static create(properties?: tutorial.IDailyTask): tutorial.DailyTask;

        /**
         * Encodes the specified DailyTask message. Does not implicitly {@link tutorial.DailyTask.verify|verify} messages.
         * @param message DailyTask message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IDailyTask, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified DailyTask message, length delimited. Does not implicitly {@link tutorial.DailyTask.verify|verify} messages.
         * @param message DailyTask message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IDailyTask, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a DailyTask message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns DailyTask
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.DailyTask;

        /**
         * Decodes a DailyTask message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns DailyTask
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.DailyTask;

        /**
         * Verifies a DailyTask message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a DailyTask message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns DailyTask
         */
        public static fromObject(object: { [k: string]: any }): tutorial.DailyTask;

        /**
         * Creates a plain object from a DailyTask message. Also converts values to other types if specified.
         * @param message DailyTask
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.DailyTask, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this DailyTask to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for DailyTask
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a QuestProgress. */
    interface IQuestProgress {

        /** QuestProgress Label */
        Label?: (string|null);

        /** QuestProgress Num */
        Num?: (number|null);

        /** QuestProgress Target */
        Target?: (number|null);

        /** QuestProgress Status */
        Status?: (boolean|null);

        /** QuestProgress Param */
        Param?: (number|null);
    }

    /** Represents a QuestProgress. */
    class QuestProgress implements IQuestProgress {

        /**
         * Constructs a new QuestProgress.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IQuestProgress);

        /** QuestProgress Label. */
        public Label: string;

        /** QuestProgress Num. */
        public Num: number;

        /** QuestProgress Target. */
        public Target: number;

        /** QuestProgress Status. */
        public Status: boolean;

        /** QuestProgress Param. */
        public Param: number;

        /**
         * Creates a new QuestProgress instance using the specified properties.
         * @param [properties] Properties to set
         * @returns QuestProgress instance
         */
        public static create(properties?: tutorial.IQuestProgress): tutorial.QuestProgress;

        /**
         * Encodes the specified QuestProgress message. Does not implicitly {@link tutorial.QuestProgress.verify|verify} messages.
         * @param message QuestProgress message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IQuestProgress, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified QuestProgress message, length delimited. Does not implicitly {@link tutorial.QuestProgress.verify|verify} messages.
         * @param message QuestProgress message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IQuestProgress, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a QuestProgress message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns QuestProgress
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.QuestProgress;

        /**
         * Decodes a QuestProgress message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns QuestProgress
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.QuestProgress;

        /**
         * Verifies a QuestProgress message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a QuestProgress message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns QuestProgress
         */
        public static fromObject(object: { [k: string]: any }): tutorial.QuestProgress;

        /**
         * Creates a plain object from a QuestProgress message. Also converts values to other types if specified.
         * @param message QuestProgress
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.QuestProgress, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this QuestProgress to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for QuestProgress
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetDailyTaskReward. */
    interface IReqGetDailyTaskReward {

        /** ReqGetDailyTaskReward Id */
        Id?: (number|null);
    }

    /** Represents a ReqGetDailyTaskReward. */
    class ReqGetDailyTaskReward implements IReqGetDailyTaskReward {

        /**
         * Constructs a new ReqGetDailyTaskReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetDailyTaskReward);

        /** ReqGetDailyTaskReward Id. */
        public Id: number;

        /**
         * Creates a new ReqGetDailyTaskReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetDailyTaskReward instance
         */
        public static create(properties?: tutorial.IReqGetDailyTaskReward): tutorial.ReqGetDailyTaskReward;

        /**
         * Encodes the specified ReqGetDailyTaskReward message. Does not implicitly {@link tutorial.ReqGetDailyTaskReward.verify|verify} messages.
         * @param message ReqGetDailyTaskReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetDailyTaskReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetDailyTaskReward message, length delimited. Does not implicitly {@link tutorial.ReqGetDailyTaskReward.verify|verify} messages.
         * @param message ReqGetDailyTaskReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetDailyTaskReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetDailyTaskReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetDailyTaskReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetDailyTaskReward;

        /**
         * Decodes a ReqGetDailyTaskReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetDailyTaskReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetDailyTaskReward;

        /**
         * Verifies a ReqGetDailyTaskReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetDailyTaskReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetDailyTaskReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetDailyTaskReward;

        /**
         * Creates a plain object from a ReqGetDailyTaskReward message. Also converts values to other types if specified.
         * @param message ReqGetDailyTaskReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetDailyTaskReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetDailyTaskReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetDailyTaskReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetDailyTaskReward. */
    interface IResGetDailyTaskReward {

        /** ResGetDailyTaskReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGetDailyTaskReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResGetDailyTaskReward. */
    class ResGetDailyTaskReward implements IResGetDailyTaskReward {

        /**
         * Constructs a new ResGetDailyTaskReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetDailyTaskReward);

        /** ResGetDailyTaskReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResGetDailyTaskReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResGetDailyTaskReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetDailyTaskReward instance
         */
        public static create(properties?: tutorial.IResGetDailyTaskReward): tutorial.ResGetDailyTaskReward;

        /**
         * Encodes the specified ResGetDailyTaskReward message. Does not implicitly {@link tutorial.ResGetDailyTaskReward.verify|verify} messages.
         * @param message ResGetDailyTaskReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetDailyTaskReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetDailyTaskReward message, length delimited. Does not implicitly {@link tutorial.ResGetDailyTaskReward.verify|verify} messages.
         * @param message ResGetDailyTaskReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetDailyTaskReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetDailyTaskReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetDailyTaskReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetDailyTaskReward;

        /**
         * Decodes a ResGetDailyTaskReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetDailyTaskReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetDailyTaskReward;

        /**
         * Verifies a ResGetDailyTaskReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetDailyTaskReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetDailyTaskReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetDailyTaskReward;

        /**
         * Creates a plain object from a ResGetDailyTaskReward message. Also converts values to other types if specified.
         * @param message ResGetDailyTaskReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetDailyTaskReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetDailyTaskReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetDailyTaskReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetDailyWeekReward. */
    interface IReqGetDailyWeekReward {

        /** ReqGetDailyWeekReward Id */
        Id?: (number|null);
    }

    /** Represents a ReqGetDailyWeekReward. */
    class ReqGetDailyWeekReward implements IReqGetDailyWeekReward {

        /**
         * Constructs a new ReqGetDailyWeekReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetDailyWeekReward);

        /** ReqGetDailyWeekReward Id. */
        public Id: number;

        /**
         * Creates a new ReqGetDailyWeekReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetDailyWeekReward instance
         */
        public static create(properties?: tutorial.IReqGetDailyWeekReward): tutorial.ReqGetDailyWeekReward;

        /**
         * Encodes the specified ReqGetDailyWeekReward message. Does not implicitly {@link tutorial.ReqGetDailyWeekReward.verify|verify} messages.
         * @param message ReqGetDailyWeekReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetDailyWeekReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetDailyWeekReward message, length delimited. Does not implicitly {@link tutorial.ReqGetDailyWeekReward.verify|verify} messages.
         * @param message ReqGetDailyWeekReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetDailyWeekReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetDailyWeekReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetDailyWeekReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetDailyWeekReward;

        /**
         * Decodes a ReqGetDailyWeekReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetDailyWeekReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetDailyWeekReward;

        /**
         * Verifies a ReqGetDailyWeekReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetDailyWeekReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetDailyWeekReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetDailyWeekReward;

        /**
         * Creates a plain object from a ReqGetDailyWeekReward message. Also converts values to other types if specified.
         * @param message ReqGetDailyWeekReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetDailyWeekReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetDailyWeekReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetDailyWeekReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetDailyWeekReward. */
    interface IResGetDailyWeekReward {

        /** ResGetDailyWeekReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGetDailyWeekReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResGetDailyWeekReward. */
    class ResGetDailyWeekReward implements IResGetDailyWeekReward {

        /**
         * Constructs a new ResGetDailyWeekReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetDailyWeekReward);

        /** ResGetDailyWeekReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResGetDailyWeekReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResGetDailyWeekReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetDailyWeekReward instance
         */
        public static create(properties?: tutorial.IResGetDailyWeekReward): tutorial.ResGetDailyWeekReward;

        /**
         * Encodes the specified ResGetDailyWeekReward message. Does not implicitly {@link tutorial.ResGetDailyWeekReward.verify|verify} messages.
         * @param message ResGetDailyWeekReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetDailyWeekReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetDailyWeekReward message, length delimited. Does not implicitly {@link tutorial.ResGetDailyWeekReward.verify|verify} messages.
         * @param message ResGetDailyWeekReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetDailyWeekReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetDailyWeekReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetDailyWeekReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetDailyWeekReward;

        /**
         * Decodes a ResGetDailyWeekReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetDailyWeekReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetDailyWeekReward;

        /**
         * Verifies a ResGetDailyWeekReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetDailyWeekReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetDailyWeekReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetDailyWeekReward;

        /**
         * Creates a plain object from a ResGetDailyWeekReward message. Also converts values to other types if specified.
         * @param message ResGetDailyWeekReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetDailyWeekReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetDailyWeekReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetDailyWeekReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqDailyUnlock. */
    interface IReqDailyUnlock {
    }

    /** Represents a ReqDailyUnlock. */
    class ReqDailyUnlock implements IReqDailyUnlock {

        /**
         * Constructs a new ReqDailyUnlock.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqDailyUnlock);

        /**
         * Creates a new ReqDailyUnlock instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqDailyUnlock instance
         */
        public static create(properties?: tutorial.IReqDailyUnlock): tutorial.ReqDailyUnlock;

        /**
         * Encodes the specified ReqDailyUnlock message. Does not implicitly {@link tutorial.ReqDailyUnlock.verify|verify} messages.
         * @param message ReqDailyUnlock message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqDailyUnlock, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqDailyUnlock message, length delimited. Does not implicitly {@link tutorial.ReqDailyUnlock.verify|verify} messages.
         * @param message ReqDailyUnlock message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqDailyUnlock, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqDailyUnlock message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqDailyUnlock
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqDailyUnlock;

        /**
         * Decodes a ReqDailyUnlock message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqDailyUnlock
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqDailyUnlock;

        /**
         * Verifies a ReqDailyUnlock message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqDailyUnlock message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqDailyUnlock
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqDailyUnlock;

        /**
         * Creates a plain object from a ReqDailyUnlock message. Also converts values to other types if specified.
         * @param message ReqDailyUnlock
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqDailyUnlock, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqDailyUnlock to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqDailyUnlock
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResDailyUnlock. */
    interface IResDailyUnlock {

        /** ResDailyUnlock Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResDailyUnlock Msg */
        Msg?: (string|null);
    }

    /** Represents a ResDailyUnlock. */
    class ResDailyUnlock implements IResDailyUnlock {

        /**
         * Constructs a new ResDailyUnlock.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResDailyUnlock);

        /** ResDailyUnlock Code. */
        public Code: tutorial.RES_CODE;

        /** ResDailyUnlock Msg. */
        public Msg: string;

        /**
         * Creates a new ResDailyUnlock instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResDailyUnlock instance
         */
        public static create(properties?: tutorial.IResDailyUnlock): tutorial.ResDailyUnlock;

        /**
         * Encodes the specified ResDailyUnlock message. Does not implicitly {@link tutorial.ResDailyUnlock.verify|verify} messages.
         * @param message ResDailyUnlock message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResDailyUnlock, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResDailyUnlock message, length delimited. Does not implicitly {@link tutorial.ResDailyUnlock.verify|verify} messages.
         * @param message ResDailyUnlock message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResDailyUnlock, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResDailyUnlock message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResDailyUnlock
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResDailyUnlock;

        /**
         * Decodes a ResDailyUnlock message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResDailyUnlock
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResDailyUnlock;

        /**
         * Verifies a ResDailyUnlock message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResDailyUnlock message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResDailyUnlock
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResDailyUnlock;

        /**
         * Creates a plain object from a ResDailyUnlock message. Also converts values to other types if specified.
         * @param message ResDailyUnlock
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResDailyUnlock, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResDailyUnlock to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResDailyUnlock
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFaceInfo. */
    interface IResFaceInfo {

        /** ResFaceInfo FaceList */
        FaceList?: (tutorial.IFaceInfo[]|null);

        /** ResFaceInfo SetId */
        SetId?: (number|null);
    }

    /** Represents a ResFaceInfo. */
    class ResFaceInfo implements IResFaceInfo {

        /**
         * Constructs a new ResFaceInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFaceInfo);

        /** ResFaceInfo FaceList. */
        public FaceList: tutorial.IFaceInfo[];

        /** ResFaceInfo SetId. */
        public SetId: number;

        /**
         * Creates a new ResFaceInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFaceInfo instance
         */
        public static create(properties?: tutorial.IResFaceInfo): tutorial.ResFaceInfo;

        /**
         * Encodes the specified ResFaceInfo message. Does not implicitly {@link tutorial.ResFaceInfo.verify|verify} messages.
         * @param message ResFaceInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFaceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFaceInfo message, length delimited. Does not implicitly {@link tutorial.ResFaceInfo.verify|verify} messages.
         * @param message ResFaceInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFaceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFaceInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFaceInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFaceInfo;

        /**
         * Decodes a ResFaceInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFaceInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFaceInfo;

        /**
         * Verifies a ResFaceInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFaceInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFaceInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFaceInfo;

        /**
         * Creates a plain object from a ResFaceInfo message. Also converts values to other types if specified.
         * @param message ResFaceInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFaceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFaceInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFaceInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a FaceInfo. */
    interface IFaceInfo {

        /** FaceInfo Id */
        Id?: (number|null);

        /** FaceInfo EndTime */
        EndTime?: (number|Long|null);
    }

    /** Represents a FaceInfo. */
    class FaceInfo implements IFaceInfo {

        /**
         * Constructs a new FaceInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IFaceInfo);

        /** FaceInfo Id. */
        public Id: number;

        /** FaceInfo EndTime. */
        public EndTime: (number|Long);

        /**
         * Creates a new FaceInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns FaceInfo instance
         */
        public static create(properties?: tutorial.IFaceInfo): tutorial.FaceInfo;

        /**
         * Encodes the specified FaceInfo message. Does not implicitly {@link tutorial.FaceInfo.verify|verify} messages.
         * @param message FaceInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IFaceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified FaceInfo message, length delimited. Does not implicitly {@link tutorial.FaceInfo.verify|verify} messages.
         * @param message FaceInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IFaceInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a FaceInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns FaceInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.FaceInfo;

        /**
         * Decodes a FaceInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns FaceInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.FaceInfo;

        /**
         * Verifies a FaceInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a FaceInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns FaceInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.FaceInfo;

        /**
         * Creates a plain object from a FaceInfo message. Also converts values to other types if specified.
         * @param message FaceInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.FaceInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this FaceInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for FaceInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSetFace. */
    interface IReqSetFace {

        /** ReqSetFace Face */
        Face?: (number|null);
    }

    /** Represents a ReqSetFace. */
    class ReqSetFace implements IReqSetFace {

        /**
         * Constructs a new ReqSetFace.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSetFace);

        /** ReqSetFace Face. */
        public Face: number;

        /**
         * Creates a new ReqSetFace instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSetFace instance
         */
        public static create(properties?: tutorial.IReqSetFace): tutorial.ReqSetFace;

        /**
         * Encodes the specified ReqSetFace message. Does not implicitly {@link tutorial.ReqSetFace.verify|verify} messages.
         * @param message ReqSetFace message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSetFace, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSetFace message, length delimited. Does not implicitly {@link tutorial.ReqSetFace.verify|verify} messages.
         * @param message ReqSetFace message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSetFace, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSetFace message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSetFace
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSetFace;

        /**
         * Decodes a ReqSetFace message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSetFace
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSetFace;

        /**
         * Verifies a ReqSetFace message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSetFace message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSetFace
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSetFace;

        /**
         * Creates a plain object from a ReqSetFace message. Also converts values to other types if specified.
         * @param message ReqSetFace
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSetFace, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSetFace to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSetFace
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSetFace. */
    interface IResSetFace {

        /** ResSetFace Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResSetFace Msg */
        Msg?: (string|null);
    }

    /** Represents a ResSetFace. */
    class ResSetFace implements IResSetFace {

        /**
         * Constructs a new ResSetFace.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSetFace);

        /** ResSetFace Code. */
        public Code: tutorial.RES_CODE;

        /** ResSetFace Msg. */
        public Msg: string;

        /**
         * Creates a new ResSetFace instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSetFace instance
         */
        public static create(properties?: tutorial.IResSetFace): tutorial.ResSetFace;

        /**
         * Encodes the specified ResSetFace message. Does not implicitly {@link tutorial.ResSetFace.verify|verify} messages.
         * @param message ResSetFace message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSetFace, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSetFace message, length delimited. Does not implicitly {@link tutorial.ResSetFace.verify|verify} messages.
         * @param message ResSetFace message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSetFace, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSetFace message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSetFace
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSetFace;

        /**
         * Decodes a ResSetFace message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSetFace
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSetFace;

        /**
         * Verifies a ResSetFace message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSetFace message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSetFace
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSetFace;

        /**
         * Creates a plain object from a ResSetFace message. Also converts values to other types if specified.
         * @param message ResSetFace
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSetFace, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSetFace to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSetFace
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResAvatarInfo. */
    interface IResAvatarInfo {

        /** ResAvatarInfo AvatarList */
        AvatarList?: (tutorial.IAvatarInfo[]|null);

        /** ResAvatarInfo SetId */
        SetId?: (number|null);
    }

    /** Represents a ResAvatarInfo. */
    class ResAvatarInfo implements IResAvatarInfo {

        /**
         * Constructs a new ResAvatarInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResAvatarInfo);

        /** ResAvatarInfo AvatarList. */
        public AvatarList: tutorial.IAvatarInfo[];

        /** ResAvatarInfo SetId. */
        public SetId: number;

        /**
         * Creates a new ResAvatarInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResAvatarInfo instance
         */
        public static create(properties?: tutorial.IResAvatarInfo): tutorial.ResAvatarInfo;

        /**
         * Encodes the specified ResAvatarInfo message. Does not implicitly {@link tutorial.ResAvatarInfo.verify|verify} messages.
         * @param message ResAvatarInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResAvatarInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResAvatarInfo message, length delimited. Does not implicitly {@link tutorial.ResAvatarInfo.verify|verify} messages.
         * @param message ResAvatarInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResAvatarInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResAvatarInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResAvatarInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResAvatarInfo;

        /**
         * Decodes a ResAvatarInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResAvatarInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResAvatarInfo;

        /**
         * Verifies a ResAvatarInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResAvatarInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResAvatarInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResAvatarInfo;

        /**
         * Creates a plain object from a ResAvatarInfo message. Also converts values to other types if specified.
         * @param message ResAvatarInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResAvatarInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResAvatarInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResAvatarInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an AvatarInfo. */
    interface IAvatarInfo {

        /** AvatarInfo Id */
        Id?: (number|null);

        /** AvatarInfo EndTime */
        EndTime?: (number|Long|null);
    }

    /** Represents an AvatarInfo. */
    class AvatarInfo implements IAvatarInfo {

        /**
         * Constructs a new AvatarInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IAvatarInfo);

        /** AvatarInfo Id. */
        public Id: number;

        /** AvatarInfo EndTime. */
        public EndTime: (number|Long);

        /**
         * Creates a new AvatarInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns AvatarInfo instance
         */
        public static create(properties?: tutorial.IAvatarInfo): tutorial.AvatarInfo;

        /**
         * Encodes the specified AvatarInfo message. Does not implicitly {@link tutorial.AvatarInfo.verify|verify} messages.
         * @param message AvatarInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IAvatarInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified AvatarInfo message, length delimited. Does not implicitly {@link tutorial.AvatarInfo.verify|verify} messages.
         * @param message AvatarInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IAvatarInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an AvatarInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns AvatarInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.AvatarInfo;

        /**
         * Decodes an AvatarInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns AvatarInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.AvatarInfo;

        /**
         * Verifies an AvatarInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an AvatarInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns AvatarInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.AvatarInfo;

        /**
         * Creates a plain object from an AvatarInfo message. Also converts values to other types if specified.
         * @param message AvatarInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.AvatarInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this AvatarInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for AvatarInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSetAvatar. */
    interface IReqSetAvatar {

        /** ReqSetAvatar Avatar */
        Avatar?: (number|null);
    }

    /** Represents a ReqSetAvatar. */
    class ReqSetAvatar implements IReqSetAvatar {

        /**
         * Constructs a new ReqSetAvatar.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSetAvatar);

        /** ReqSetAvatar Avatar. */
        public Avatar: number;

        /**
         * Creates a new ReqSetAvatar instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSetAvatar instance
         */
        public static create(properties?: tutorial.IReqSetAvatar): tutorial.ReqSetAvatar;

        /**
         * Encodes the specified ReqSetAvatar message. Does not implicitly {@link tutorial.ReqSetAvatar.verify|verify} messages.
         * @param message ReqSetAvatar message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSetAvatar, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSetAvatar message, length delimited. Does not implicitly {@link tutorial.ReqSetAvatar.verify|verify} messages.
         * @param message ReqSetAvatar message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSetAvatar, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSetAvatar message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSetAvatar
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSetAvatar;

        /**
         * Decodes a ReqSetAvatar message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSetAvatar
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSetAvatar;

        /**
         * Verifies a ReqSetAvatar message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSetAvatar message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSetAvatar
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSetAvatar;

        /**
         * Creates a plain object from a ReqSetAvatar message. Also converts values to other types if specified.
         * @param message ReqSetAvatar
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSetAvatar, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSetAvatar to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSetAvatar
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSetAvatar. */
    interface IResSetAvatar {

        /** ResSetAvatar Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResSetAvatar Msg */
        Msg?: (string|null);
    }

    /** Represents a ResSetAvatar. */
    class ResSetAvatar implements IResSetAvatar {

        /**
         * Constructs a new ResSetAvatar.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSetAvatar);

        /** ResSetAvatar Code. */
        public Code: tutorial.RES_CODE;

        /** ResSetAvatar Msg. */
        public Msg: string;

        /**
         * Creates a new ResSetAvatar instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSetAvatar instance
         */
        public static create(properties?: tutorial.IResSetAvatar): tutorial.ResSetAvatar;

        /**
         * Encodes the specified ResSetAvatar message. Does not implicitly {@link tutorial.ResSetAvatar.verify|verify} messages.
         * @param message ResSetAvatar message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSetAvatar, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSetAvatar message, length delimited. Does not implicitly {@link tutorial.ResSetAvatar.verify|verify} messages.
         * @param message ResSetAvatar message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSetAvatar, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSetAvatar message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSetAvatar
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSetAvatar;

        /**
         * Decodes a ResSetAvatar message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSetAvatar
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSetAvatar;

        /**
         * Verifies a ResSetAvatar message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSetAvatar message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSetAvatar
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSetAvatar;

        /**
         * Creates a plain object from a ResSetAvatar message. Also converts values to other types if specified.
         * @param message ResSetAvatar
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSetAvatar, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSetAvatar to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSetAvatar
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSevenLogin. */
    interface IResSevenLogin {

        /** ResSevenLogin WeekReward */
        WeekReward?: (tutorial.ISevenLoginReward[]|null);

        /** ResSevenLogin MonthReward */
        MonthReward?: (tutorial.ISevenLoginReward[]|null);

        /** ResSevenLogin Active */
        Active?: (number|null);

        /** ResSevenLogin IsBack */
        IsBack?: (boolean|null);
    }

    /** Represents a ResSevenLogin. */
    class ResSevenLogin implements IResSevenLogin {

        /**
         * Constructs a new ResSevenLogin.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSevenLogin);

        /** ResSevenLogin WeekReward. */
        public WeekReward: tutorial.ISevenLoginReward[];

        /** ResSevenLogin MonthReward. */
        public MonthReward: tutorial.ISevenLoginReward[];

        /** ResSevenLogin Active. */
        public Active: number;

        /** ResSevenLogin IsBack. */
        public IsBack: boolean;

        /**
         * Creates a new ResSevenLogin instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSevenLogin instance
         */
        public static create(properties?: tutorial.IResSevenLogin): tutorial.ResSevenLogin;

        /**
         * Encodes the specified ResSevenLogin message. Does not implicitly {@link tutorial.ResSevenLogin.verify|verify} messages.
         * @param message ResSevenLogin message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSevenLogin, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSevenLogin message, length delimited. Does not implicitly {@link tutorial.ResSevenLogin.verify|verify} messages.
         * @param message ResSevenLogin message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSevenLogin, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSevenLogin message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSevenLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSevenLogin;

        /**
         * Decodes a ResSevenLogin message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSevenLogin
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSevenLogin;

        /**
         * Verifies a ResSevenLogin message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSevenLogin message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSevenLogin
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSevenLogin;

        /**
         * Creates a plain object from a ResSevenLogin message. Also converts values to other types if specified.
         * @param message ResSevenLogin
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSevenLogin, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSevenLogin to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSevenLogin
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a SevenLoginReward. */
    interface ISevenLoginReward {

        /** SevenLoginReward Item1 */
        Item1?: (tutorial.IItemInfo[]|null);

        /** SevenLoginReward Item2 */
        Item2?: (tutorial.IItemInfo[]|null);

        /** SevenLoginReward Item3 */
        Item3?: (tutorial.IItemInfo[]|null);

        /** SevenLoginReward Status */
        Status?: (number|null);

        /** SevenLoginReward Id */
        Id?: (number|null);
    }

    /** Represents a SevenLoginReward. */
    class SevenLoginReward implements ISevenLoginReward {

        /**
         * Constructs a new SevenLoginReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.ISevenLoginReward);

        /** SevenLoginReward Item1. */
        public Item1: tutorial.IItemInfo[];

        /** SevenLoginReward Item2. */
        public Item2: tutorial.IItemInfo[];

        /** SevenLoginReward Item3. */
        public Item3: tutorial.IItemInfo[];

        /** SevenLoginReward Status. */
        public Status: number;

        /** SevenLoginReward Id. */
        public Id: number;

        /**
         * Creates a new SevenLoginReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns SevenLoginReward instance
         */
        public static create(properties?: tutorial.ISevenLoginReward): tutorial.SevenLoginReward;

        /**
         * Encodes the specified SevenLoginReward message. Does not implicitly {@link tutorial.SevenLoginReward.verify|verify} messages.
         * @param message SevenLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.ISevenLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified SevenLoginReward message, length delimited. Does not implicitly {@link tutorial.SevenLoginReward.verify|verify} messages.
         * @param message SevenLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.ISevenLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a SevenLoginReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns SevenLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.SevenLoginReward;

        /**
         * Decodes a SevenLoginReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns SevenLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.SevenLoginReward;

        /**
         * Verifies a SevenLoginReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a SevenLoginReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns SevenLoginReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.SevenLoginReward;

        /**
         * Creates a plain object from a SevenLoginReward message. Also converts values to other types if specified.
         * @param message SevenLoginReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.SevenLoginReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this SevenLoginReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for SevenLoginReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetSevenLoginReward. */
    interface IReqGetSevenLoginReward {

        /** ReqGetSevenLoginReward Id */
        Id?: (number|null);
    }

    /** Represents a ReqGetSevenLoginReward. */
    class ReqGetSevenLoginReward implements IReqGetSevenLoginReward {

        /**
         * Constructs a new ReqGetSevenLoginReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetSevenLoginReward);

        /** ReqGetSevenLoginReward Id. */
        public Id: number;

        /**
         * Creates a new ReqGetSevenLoginReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetSevenLoginReward instance
         */
        public static create(properties?: tutorial.IReqGetSevenLoginReward): tutorial.ReqGetSevenLoginReward;

        /**
         * Encodes the specified ReqGetSevenLoginReward message. Does not implicitly {@link tutorial.ReqGetSevenLoginReward.verify|verify} messages.
         * @param message ReqGetSevenLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetSevenLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetSevenLoginReward message, length delimited. Does not implicitly {@link tutorial.ReqGetSevenLoginReward.verify|verify} messages.
         * @param message ReqGetSevenLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetSevenLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetSevenLoginReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetSevenLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetSevenLoginReward;

        /**
         * Decodes a ReqGetSevenLoginReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetSevenLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetSevenLoginReward;

        /**
         * Verifies a ReqGetSevenLoginReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetSevenLoginReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetSevenLoginReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetSevenLoginReward;

        /**
         * Creates a plain object from a ReqGetSevenLoginReward message. Also converts values to other types if specified.
         * @param message ReqGetSevenLoginReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetSevenLoginReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetSevenLoginReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetSevenLoginReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetSevenLoginReward. */
    interface IResGetSevenLoginReward {

        /** ResGetSevenLoginReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGetSevenLoginReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResGetSevenLoginReward. */
    class ResGetSevenLoginReward implements IResGetSevenLoginReward {

        /**
         * Constructs a new ResGetSevenLoginReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetSevenLoginReward);

        /** ResGetSevenLoginReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResGetSevenLoginReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResGetSevenLoginReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetSevenLoginReward instance
         */
        public static create(properties?: tutorial.IResGetSevenLoginReward): tutorial.ResGetSevenLoginReward;

        /**
         * Encodes the specified ResGetSevenLoginReward message. Does not implicitly {@link tutorial.ResGetSevenLoginReward.verify|verify} messages.
         * @param message ResGetSevenLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetSevenLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetSevenLoginReward message, length delimited. Does not implicitly {@link tutorial.ResGetSevenLoginReward.verify|verify} messages.
         * @param message ResGetSevenLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetSevenLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetSevenLoginReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetSevenLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetSevenLoginReward;

        /**
         * Decodes a ResGetSevenLoginReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetSevenLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetSevenLoginReward;

        /**
         * Verifies a ResGetSevenLoginReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetSevenLoginReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetSevenLoginReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetSevenLoginReward;

        /**
         * Creates a plain object from a ResGetSevenLoginReward message. Also converts values to other types if specified.
         * @param message ResGetSevenLoginReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetSevenLoginReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetSevenLoginReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetSevenLoginReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetMonthLoginReward. */
    interface IReqGetMonthLoginReward {

        /** ReqGetMonthLoginReward Id */
        Id?: (number|null);
    }

    /** Represents a ReqGetMonthLoginReward. */
    class ReqGetMonthLoginReward implements IReqGetMonthLoginReward {

        /**
         * Constructs a new ReqGetMonthLoginReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetMonthLoginReward);

        /** ReqGetMonthLoginReward Id. */
        public Id: number;

        /**
         * Creates a new ReqGetMonthLoginReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetMonthLoginReward instance
         */
        public static create(properties?: tutorial.IReqGetMonthLoginReward): tutorial.ReqGetMonthLoginReward;

        /**
         * Encodes the specified ReqGetMonthLoginReward message. Does not implicitly {@link tutorial.ReqGetMonthLoginReward.verify|verify} messages.
         * @param message ReqGetMonthLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetMonthLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetMonthLoginReward message, length delimited. Does not implicitly {@link tutorial.ReqGetMonthLoginReward.verify|verify} messages.
         * @param message ReqGetMonthLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetMonthLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetMonthLoginReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetMonthLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetMonthLoginReward;

        /**
         * Decodes a ReqGetMonthLoginReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetMonthLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetMonthLoginReward;

        /**
         * Verifies a ReqGetMonthLoginReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetMonthLoginReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetMonthLoginReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetMonthLoginReward;

        /**
         * Creates a plain object from a ReqGetMonthLoginReward message. Also converts values to other types if specified.
         * @param message ReqGetMonthLoginReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetMonthLoginReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetMonthLoginReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetMonthLoginReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetMonthLoginReward. */
    interface IResGetMonthLoginReward {

        /** ResGetMonthLoginReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGetMonthLoginReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResGetMonthLoginReward. */
    class ResGetMonthLoginReward implements IResGetMonthLoginReward {

        /**
         * Constructs a new ResGetMonthLoginReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetMonthLoginReward);

        /** ResGetMonthLoginReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResGetMonthLoginReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResGetMonthLoginReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetMonthLoginReward instance
         */
        public static create(properties?: tutorial.IResGetMonthLoginReward): tutorial.ResGetMonthLoginReward;

        /**
         * Encodes the specified ResGetMonthLoginReward message. Does not implicitly {@link tutorial.ResGetMonthLoginReward.verify|verify} messages.
         * @param message ResGetMonthLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetMonthLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetMonthLoginReward message, length delimited. Does not implicitly {@link tutorial.ResGetMonthLoginReward.verify|verify} messages.
         * @param message ResGetMonthLoginReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetMonthLoginReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetMonthLoginReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetMonthLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetMonthLoginReward;

        /**
         * Decodes a ResGetMonthLoginReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetMonthLoginReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetMonthLoginReward;

        /**
         * Verifies a ResGetMonthLoginReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetMonthLoginReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetMonthLoginReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetMonthLoginReward;

        /**
         * Creates a plain object from a ResGetMonthLoginReward message. Also converts values to other types if specified.
         * @param message ResGetMonthLoginReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetMonthLoginReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetMonthLoginReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetMonthLoginReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResActivity. */
    interface IResActivity {

        /** ResActivity ActiveList */
        ActiveList?: (tutorial.IActivityInfo[]|null);
    }

    /** Represents a ResActivity. */
    class ResActivity implements IResActivity {

        /**
         * Constructs a new ResActivity.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResActivity);

        /** ResActivity ActiveList. */
        public ActiveList: tutorial.IActivityInfo[];

        /**
         * Creates a new ResActivity instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResActivity instance
         */
        public static create(properties?: tutorial.IResActivity): tutorial.ResActivity;

        /**
         * Encodes the specified ResActivity message. Does not implicitly {@link tutorial.ResActivity.verify|verify} messages.
         * @param message ResActivity message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResActivity, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResActivity message, length delimited. Does not implicitly {@link tutorial.ResActivity.verify|verify} messages.
         * @param message ResActivity message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResActivity, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResActivity message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResActivity
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResActivity;

        /**
         * Decodes a ResActivity message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResActivity
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResActivity;

        /**
         * Verifies a ResActivity message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResActivity message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResActivity
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResActivity;

        /**
         * Creates a plain object from a ResActivity message. Also converts values to other types if specified.
         * @param message ResActivity
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResActivity, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResActivity to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResActivity
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an ActivityInfo. */
    interface IActivityInfo {

        /** ActivityInfo Id */
        Id?: (number|null);

        /** ActivityInfo Type */
        Type?: (number|null);

        /** ActivityInfo StartTime */
        StartTime?: (number|null);

        /** ActivityInfo EndTime */
        EndTime?: (number|null);

        /** ActivityInfo Status */
        Status?: (number|null);

        /** ActivityInfo Title */
        Title?: (string|null);

        /** ActivityInfo Red */
        Red?: (number|null);
    }

    /** Represents an ActivityInfo. */
    class ActivityInfo implements IActivityInfo {

        /**
         * Constructs a new ActivityInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IActivityInfo);

        /** ActivityInfo Id. */
        public Id: number;

        /** ActivityInfo Type. */
        public Type: number;

        /** ActivityInfo StartTime. */
        public StartTime: number;

        /** ActivityInfo EndTime. */
        public EndTime: number;

        /** ActivityInfo Status. */
        public Status: number;

        /** ActivityInfo Title. */
        public Title: string;

        /** ActivityInfo Red. */
        public Red: number;

        /**
         * Creates a new ActivityInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ActivityInfo instance
         */
        public static create(properties?: tutorial.IActivityInfo): tutorial.ActivityInfo;

        /**
         * Encodes the specified ActivityInfo message. Does not implicitly {@link tutorial.ActivityInfo.verify|verify} messages.
         * @param message ActivityInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IActivityInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ActivityInfo message, length delimited. Does not implicitly {@link tutorial.ActivityInfo.verify|verify} messages.
         * @param message ActivityInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IActivityInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an ActivityInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ActivityInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ActivityInfo;

        /**
         * Decodes an ActivityInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ActivityInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ActivityInfo;

        /**
         * Verifies an ActivityInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an ActivityInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ActivityInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ActivityInfo;

        /**
         * Creates a plain object from an ActivityInfo message. Also converts values to other types if specified.
         * @param message ActivityInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ActivityInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ActivityInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ActivityInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqLimitEvent. */
    interface IReqLimitEvent {
    }

    /** Represents a ReqLimitEvent. */
    class ReqLimitEvent implements IReqLimitEvent {

        /**
         * Constructs a new ReqLimitEvent.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqLimitEvent);

        /**
         * Creates a new ReqLimitEvent instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqLimitEvent instance
         */
        public static create(properties?: tutorial.IReqLimitEvent): tutorial.ReqLimitEvent;

        /**
         * Encodes the specified ReqLimitEvent message. Does not implicitly {@link tutorial.ReqLimitEvent.verify|verify} messages.
         * @param message ReqLimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqLimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqLimitEvent message, length delimited. Does not implicitly {@link tutorial.ReqLimitEvent.verify|verify} messages.
         * @param message ReqLimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqLimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqLimitEvent message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqLimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqLimitEvent;

        /**
         * Decodes a ReqLimitEvent message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqLimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqLimitEvent;

        /**
         * Verifies a ReqLimitEvent message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqLimitEvent message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqLimitEvent
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqLimitEvent;

        /**
         * Creates a plain object from a ReqLimitEvent message. Also converts values to other types if specified.
         * @param message ReqLimitEvent
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqLimitEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqLimitEvent to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqLimitEvent
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResLimitEvent. */
    interface IResLimitEvent {

        /** ResLimitEvent LimitEventList */
        LimitEventList?: ({ [k: string]: tutorial.ILimitEvent }|null);
    }

    /** Represents a ResLimitEvent. */
    class ResLimitEvent implements IResLimitEvent {

        /**
         * Constructs a new ResLimitEvent.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResLimitEvent);

        /** ResLimitEvent LimitEventList. */
        public LimitEventList: { [k: string]: tutorial.ILimitEvent };

        /**
         * Creates a new ResLimitEvent instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResLimitEvent instance
         */
        public static create(properties?: tutorial.IResLimitEvent): tutorial.ResLimitEvent;

        /**
         * Encodes the specified ResLimitEvent message. Does not implicitly {@link tutorial.ResLimitEvent.verify|verify} messages.
         * @param message ResLimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResLimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResLimitEvent message, length delimited. Does not implicitly {@link tutorial.ResLimitEvent.verify|verify} messages.
         * @param message ResLimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResLimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResLimitEvent message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResLimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResLimitEvent;

        /**
         * Decodes a ResLimitEvent message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResLimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResLimitEvent;

        /**
         * Verifies a ResLimitEvent message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResLimitEvent message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResLimitEvent
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResLimitEvent;

        /**
         * Creates a plain object from a ResLimitEvent message. Also converts values to other types if specified.
         * @param message ResLimitEvent
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResLimitEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResLimitEvent to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResLimitEvent
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResLimitEventProgress. */
    interface IResLimitEventProgress {

        /** ResLimitEventProgress Progress */
        Progress?: (number|null);

        /** ResLimitEventProgress ProgressReward */
        ProgressReward?: ({ [k: string]: number }|null);
    }

    /** Represents a ResLimitEventProgress. */
    class ResLimitEventProgress implements IResLimitEventProgress {

        /**
         * Constructs a new ResLimitEventProgress.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResLimitEventProgress);

        /** ResLimitEventProgress Progress. */
        public Progress: number;

        /** ResLimitEventProgress ProgressReward. */
        public ProgressReward: { [k: string]: number };

        /**
         * Creates a new ResLimitEventProgress instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResLimitEventProgress instance
         */
        public static create(properties?: tutorial.IResLimitEventProgress): tutorial.ResLimitEventProgress;

        /**
         * Encodes the specified ResLimitEventProgress message. Does not implicitly {@link tutorial.ResLimitEventProgress.verify|verify} messages.
         * @param message ResLimitEventProgress message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResLimitEventProgress, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResLimitEventProgress message, length delimited. Does not implicitly {@link tutorial.ResLimitEventProgress.verify|verify} messages.
         * @param message ResLimitEventProgress message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResLimitEventProgress, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResLimitEventProgress message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResLimitEventProgress
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResLimitEventProgress;

        /**
         * Decodes a ResLimitEventProgress message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResLimitEventProgress
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResLimitEventProgress;

        /**
         * Verifies a ResLimitEventProgress message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResLimitEventProgress message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResLimitEventProgress
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResLimitEventProgress;

        /**
         * Creates a plain object from a ResLimitEventProgress message. Also converts values to other types if specified.
         * @param message ResLimitEventProgress
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResLimitEventProgress, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResLimitEventProgress to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResLimitEventProgress
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqLimitEventReward. */
    interface IReqLimitEventReward {

        /** ReqLimitEventReward Id */
        Id?: (number|null);
    }

    /** Represents a ReqLimitEventReward. */
    class ReqLimitEventReward implements IReqLimitEventReward {

        /**
         * Constructs a new ReqLimitEventReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqLimitEventReward);

        /** ReqLimitEventReward Id. */
        public Id: number;

        /**
         * Creates a new ReqLimitEventReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqLimitEventReward instance
         */
        public static create(properties?: tutorial.IReqLimitEventReward): tutorial.ReqLimitEventReward;

        /**
         * Encodes the specified ReqLimitEventReward message. Does not implicitly {@link tutorial.ReqLimitEventReward.verify|verify} messages.
         * @param message ReqLimitEventReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqLimitEventReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqLimitEventReward message, length delimited. Does not implicitly {@link tutorial.ReqLimitEventReward.verify|verify} messages.
         * @param message ReqLimitEventReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqLimitEventReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqLimitEventReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqLimitEventReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqLimitEventReward;

        /**
         * Decodes a ReqLimitEventReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqLimitEventReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqLimitEventReward;

        /**
         * Verifies a ReqLimitEventReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqLimitEventReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqLimitEventReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqLimitEventReward;

        /**
         * Creates a plain object from a ReqLimitEventReward message. Also converts values to other types if specified.
         * @param message ReqLimitEventReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqLimitEventReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqLimitEventReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqLimitEventReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResLimitEventReward. */
    interface IResLimitEventReward {

        /** ResLimitEventReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResLimitEventReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResLimitEventReward. */
    class ResLimitEventReward implements IResLimitEventReward {

        /**
         * Constructs a new ResLimitEventReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResLimitEventReward);

        /** ResLimitEventReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResLimitEventReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResLimitEventReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResLimitEventReward instance
         */
        public static create(properties?: tutorial.IResLimitEventReward): tutorial.ResLimitEventReward;

        /**
         * Encodes the specified ResLimitEventReward message. Does not implicitly {@link tutorial.ResLimitEventReward.verify|verify} messages.
         * @param message ResLimitEventReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResLimitEventReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResLimitEventReward message, length delimited. Does not implicitly {@link tutorial.ResLimitEventReward.verify|verify} messages.
         * @param message ResLimitEventReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResLimitEventReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResLimitEventReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResLimitEventReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResLimitEventReward;

        /**
         * Decodes a ResLimitEventReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResLimitEventReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResLimitEventReward;

        /**
         * Verifies a ResLimitEventReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResLimitEventReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResLimitEventReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResLimitEventReward;

        /**
         * Creates a plain object from a ResLimitEventReward message. Also converts values to other types if specified.
         * @param message ResLimitEventReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResLimitEventReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResLimitEventReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResLimitEventReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSelectLimitEvent. */
    interface IReqSelectLimitEvent {

        /** ReqSelectLimitEvent Id */
        Id?: (number|null);
    }

    /** Represents a ReqSelectLimitEvent. */
    class ReqSelectLimitEvent implements IReqSelectLimitEvent {

        /**
         * Constructs a new ReqSelectLimitEvent.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSelectLimitEvent);

        /** ReqSelectLimitEvent Id. */
        public Id: number;

        /**
         * Creates a new ReqSelectLimitEvent instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSelectLimitEvent instance
         */
        public static create(properties?: tutorial.IReqSelectLimitEvent): tutorial.ReqSelectLimitEvent;

        /**
         * Encodes the specified ReqSelectLimitEvent message. Does not implicitly {@link tutorial.ReqSelectLimitEvent.verify|verify} messages.
         * @param message ReqSelectLimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSelectLimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSelectLimitEvent message, length delimited. Does not implicitly {@link tutorial.ReqSelectLimitEvent.verify|verify} messages.
         * @param message ReqSelectLimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSelectLimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSelectLimitEvent message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSelectLimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSelectLimitEvent;

        /**
         * Decodes a ReqSelectLimitEvent message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSelectLimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSelectLimitEvent;

        /**
         * Verifies a ReqSelectLimitEvent message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSelectLimitEvent message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSelectLimitEvent
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSelectLimitEvent;

        /**
         * Creates a plain object from a ReqSelectLimitEvent message. Also converts values to other types if specified.
         * @param message ReqSelectLimitEvent
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSelectLimitEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSelectLimitEvent to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSelectLimitEvent
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSelectLimitEvent. */
    interface IResSelectLimitEvent {

        /** ResSelectLimitEvent Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResSelectLimitEvent Msg */
        Msg?: (string|null);
    }

    /** Represents a ResSelectLimitEvent. */
    class ResSelectLimitEvent implements IResSelectLimitEvent {

        /**
         * Constructs a new ResSelectLimitEvent.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSelectLimitEvent);

        /** ResSelectLimitEvent Code. */
        public Code: tutorial.RES_CODE;

        /** ResSelectLimitEvent Msg. */
        public Msg: string;

        /**
         * Creates a new ResSelectLimitEvent instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSelectLimitEvent instance
         */
        public static create(properties?: tutorial.IResSelectLimitEvent): tutorial.ResSelectLimitEvent;

        /**
         * Encodes the specified ResSelectLimitEvent message. Does not implicitly {@link tutorial.ResSelectLimitEvent.verify|verify} messages.
         * @param message ResSelectLimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSelectLimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSelectLimitEvent message, length delimited. Does not implicitly {@link tutorial.ResSelectLimitEvent.verify|verify} messages.
         * @param message ResSelectLimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSelectLimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSelectLimitEvent message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSelectLimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSelectLimitEvent;

        /**
         * Decodes a ResSelectLimitEvent message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSelectLimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSelectLimitEvent;

        /**
         * Verifies a ResSelectLimitEvent message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSelectLimitEvent message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSelectLimitEvent
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSelectLimitEvent;

        /**
         * Creates a plain object from a ResSelectLimitEvent message. Also converts values to other types if specified.
         * @param message ResSelectLimitEvent
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSelectLimitEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSelectLimitEvent to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSelectLimitEvent
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a LimitEvent. */
    interface ILimitEvent {

        /** LimitEvent EndTime */
        EndTime?: (number|null);

        /** LimitEvent Cd */
        Cd?: (number|null);
    }

    /** Represents a LimitEvent. */
    class LimitEvent implements ILimitEvent {

        /**
         * Constructs a new LimitEvent.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.ILimitEvent);

        /** LimitEvent EndTime. */
        public EndTime: number;

        /** LimitEvent Cd. */
        public Cd: number;

        /**
         * Creates a new LimitEvent instance using the specified properties.
         * @param [properties] Properties to set
         * @returns LimitEvent instance
         */
        public static create(properties?: tutorial.ILimitEvent): tutorial.LimitEvent;

        /**
         * Encodes the specified LimitEvent message. Does not implicitly {@link tutorial.LimitEvent.verify|verify} messages.
         * @param message LimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.ILimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified LimitEvent message, length delimited. Does not implicitly {@link tutorial.LimitEvent.verify|verify} messages.
         * @param message LimitEvent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.ILimitEvent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a LimitEvent message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns LimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.LimitEvent;

        /**
         * Decodes a LimitEvent message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns LimitEvent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.LimitEvent;

        /**
         * Verifies a LimitEvent message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a LimitEvent message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns LimitEvent
         */
        public static fromObject(object: { [k: string]: any }): tutorial.LimitEvent;

        /**
         * Creates a plain object from a LimitEvent message. Also converts values to other types if specified.
         * @param message LimitEvent
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.LimitEvent, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this LimitEvent to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for LimitEvent
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a LimitEventNotify. */
    interface ILimitEventNotify {

        /** LimitEventNotify Id */
        Id?: (number|null);

        /** LimitEventNotify Type */
        Type?: (number|null);

        /** LimitEventNotify EndTime */
        EndTime?: (number|null);

        /** LimitEventNotify Cd */
        Cd?: (number|null);
    }

    /** Represents a LimitEventNotify. */
    class LimitEventNotify implements ILimitEventNotify {

        /**
         * Constructs a new LimitEventNotify.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.ILimitEventNotify);

        /** LimitEventNotify Id. */
        public Id: number;

        /** LimitEventNotify Type. */
        public Type: number;

        /** LimitEventNotify EndTime. */
        public EndTime: number;

        /** LimitEventNotify Cd. */
        public Cd: number;

        /**
         * Creates a new LimitEventNotify instance using the specified properties.
         * @param [properties] Properties to set
         * @returns LimitEventNotify instance
         */
        public static create(properties?: tutorial.ILimitEventNotify): tutorial.LimitEventNotify;

        /**
         * Encodes the specified LimitEventNotify message. Does not implicitly {@link tutorial.LimitEventNotify.verify|verify} messages.
         * @param message LimitEventNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.ILimitEventNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified LimitEventNotify message, length delimited. Does not implicitly {@link tutorial.LimitEventNotify.verify|verify} messages.
         * @param message LimitEventNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.ILimitEventNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a LimitEventNotify message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns LimitEventNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.LimitEventNotify;

        /**
         * Decodes a LimitEventNotify message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns LimitEventNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.LimitEventNotify;

        /**
         * Verifies a LimitEventNotify message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a LimitEventNotify message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns LimitEventNotify
         */
        public static fromObject(object: { [k: string]: any }): tutorial.LimitEventNotify;

        /**
         * Creates a plain object from a LimitEventNotify message. Also converts values to other types if specified.
         * @param message LimitEventNotify
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.LimitEventNotify, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this LimitEventNotify to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for LimitEventNotify
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqLimitSenceReward. */
    interface IReqLimitSenceReward {
    }

    /** Represents a ReqLimitSenceReward. */
    class ReqLimitSenceReward implements IReqLimitSenceReward {

        /**
         * Constructs a new ReqLimitSenceReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqLimitSenceReward);

        /**
         * Creates a new ReqLimitSenceReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqLimitSenceReward instance
         */
        public static create(properties?: tutorial.IReqLimitSenceReward): tutorial.ReqLimitSenceReward;

        /**
         * Encodes the specified ReqLimitSenceReward message. Does not implicitly {@link tutorial.ReqLimitSenceReward.verify|verify} messages.
         * @param message ReqLimitSenceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqLimitSenceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqLimitSenceReward message, length delimited. Does not implicitly {@link tutorial.ReqLimitSenceReward.verify|verify} messages.
         * @param message ReqLimitSenceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqLimitSenceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqLimitSenceReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqLimitSenceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqLimitSenceReward;

        /**
         * Decodes a ReqLimitSenceReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqLimitSenceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqLimitSenceReward;

        /**
         * Verifies a ReqLimitSenceReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqLimitSenceReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqLimitSenceReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqLimitSenceReward;

        /**
         * Creates a plain object from a ReqLimitSenceReward message. Also converts values to other types if specified.
         * @param message ReqLimitSenceReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqLimitSenceReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqLimitSenceReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqLimitSenceReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResLimitSenceReward. */
    interface IResLimitSenceReward {

        /** ResLimitSenceReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResLimitSenceReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResLimitSenceReward. */
    class ResLimitSenceReward implements IResLimitSenceReward {

        /**
         * Constructs a new ResLimitSenceReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResLimitSenceReward);

        /** ResLimitSenceReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResLimitSenceReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResLimitSenceReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResLimitSenceReward instance
         */
        public static create(properties?: tutorial.IResLimitSenceReward): tutorial.ResLimitSenceReward;

        /**
         * Encodes the specified ResLimitSenceReward message. Does not implicitly {@link tutorial.ResLimitSenceReward.verify|verify} messages.
         * @param message ResLimitSenceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResLimitSenceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResLimitSenceReward message, length delimited. Does not implicitly {@link tutorial.ResLimitSenceReward.verify|verify} messages.
         * @param message ResLimitSenceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResLimitSenceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResLimitSenceReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResLimitSenceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResLimitSenceReward;

        /**
         * Decodes a ResLimitSenceReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResLimitSenceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResLimitSenceReward;

        /**
         * Verifies a ResLimitSenceReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResLimitSenceReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResLimitSenceReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResLimitSenceReward;

        /**
         * Creates a plain object from a ResLimitSenceReward message. Also converts values to other types if specified.
         * @param message ResLimitSenceReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResLimitSenceReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResLimitSenceReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResLimitSenceReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResChessRainReward. */
    interface IResChessRainReward {

        /** ResChessRainReward Chest */
        Chest?: (number|null);
    }

    /** Represents a ResChessRainReward. */
    class ResChessRainReward implements IResChessRainReward {

        /**
         * Constructs a new ResChessRainReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResChessRainReward);

        /** ResChessRainReward Chest. */
        public Chest: number;

        /**
         * Creates a new ResChessRainReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResChessRainReward instance
         */
        public static create(properties?: tutorial.IResChessRainReward): tutorial.ResChessRainReward;

        /**
         * Encodes the specified ResChessRainReward message. Does not implicitly {@link tutorial.ResChessRainReward.verify|verify} messages.
         * @param message ResChessRainReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResChessRainReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResChessRainReward message, length delimited. Does not implicitly {@link tutorial.ResChessRainReward.verify|verify} messages.
         * @param message ResChessRainReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResChessRainReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResChessRainReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResChessRainReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResChessRainReward;

        /**
         * Decodes a ResChessRainReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResChessRainReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResChessRainReward;

        /**
         * Verifies a ResChessRainReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResChessRainReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResChessRainReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResChessRainReward;

        /**
         * Creates a plain object from a ResChessRainReward message. Also converts values to other types if specified.
         * @param message ResChessRainReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResChessRainReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResChessRainReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResChessRainReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFastProduceReward. */
    interface IReqFastProduceReward {

        /** ReqFastProduceReward Energy */
        Energy?: (number|null);
    }

    /** Represents a ReqFastProduceReward. */
    class ReqFastProduceReward implements IReqFastProduceReward {

        /**
         * Constructs a new ReqFastProduceReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFastProduceReward);

        /** ReqFastProduceReward Energy. */
        public Energy: number;

        /**
         * Creates a new ReqFastProduceReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFastProduceReward instance
         */
        public static create(properties?: tutorial.IReqFastProduceReward): tutorial.ReqFastProduceReward;

        /**
         * Encodes the specified ReqFastProduceReward message. Does not implicitly {@link tutorial.ReqFastProduceReward.verify|verify} messages.
         * @param message ReqFastProduceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFastProduceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFastProduceReward message, length delimited. Does not implicitly {@link tutorial.ReqFastProduceReward.verify|verify} messages.
         * @param message ReqFastProduceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFastProduceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFastProduceReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFastProduceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFastProduceReward;

        /**
         * Decodes a ReqFastProduceReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFastProduceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFastProduceReward;

        /**
         * Verifies a ReqFastProduceReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFastProduceReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFastProduceReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFastProduceReward;

        /**
         * Creates a plain object from a ReqFastProduceReward message. Also converts values to other types if specified.
         * @param message ReqFastProduceReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFastProduceReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFastProduceReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFastProduceReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFastProduceReward. */
    interface IResFastProduceReward {

        /** ResFastProduceReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResFastProduceReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResFastProduceReward. */
    class ResFastProduceReward implements IResFastProduceReward {

        /**
         * Constructs a new ResFastProduceReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFastProduceReward);

        /** ResFastProduceReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResFastProduceReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResFastProduceReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFastProduceReward instance
         */
        public static create(properties?: tutorial.IResFastProduceReward): tutorial.ResFastProduceReward;

        /**
         * Encodes the specified ResFastProduceReward message. Does not implicitly {@link tutorial.ResFastProduceReward.verify|verify} messages.
         * @param message ResFastProduceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFastProduceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFastProduceReward message, length delimited. Does not implicitly {@link tutorial.ResFastProduceReward.verify|verify} messages.
         * @param message ResFastProduceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFastProduceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFastProduceReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFastProduceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFastProduceReward;

        /**
         * Decodes a ResFastProduceReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFastProduceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFastProduceReward;

        /**
         * Verifies a ResFastProduceReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFastProduceReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFastProduceReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFastProduceReward;

        /**
         * Creates a plain object from a ResFastProduceReward message. Also converts values to other types if specified.
         * @param message ResFastProduceReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFastProduceReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFastProduceReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFastProduceReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSearchPlayer. */
    interface IReqSearchPlayer {

        /** ReqSearchPlayer Uid */
        Uid?: (string|null);
    }

    /** Represents a ReqSearchPlayer. */
    class ReqSearchPlayer implements IReqSearchPlayer {

        /**
         * Constructs a new ReqSearchPlayer.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSearchPlayer);

        /** ReqSearchPlayer Uid. */
        public Uid: string;

        /**
         * Creates a new ReqSearchPlayer instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSearchPlayer instance
         */
        public static create(properties?: tutorial.IReqSearchPlayer): tutorial.ReqSearchPlayer;

        /**
         * Encodes the specified ReqSearchPlayer message. Does not implicitly {@link tutorial.ReqSearchPlayer.verify|verify} messages.
         * @param message ReqSearchPlayer message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSearchPlayer, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSearchPlayer message, length delimited. Does not implicitly {@link tutorial.ReqSearchPlayer.verify|verify} messages.
         * @param message ReqSearchPlayer message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSearchPlayer, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSearchPlayer message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSearchPlayer
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSearchPlayer;

        /**
         * Decodes a ReqSearchPlayer message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSearchPlayer
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSearchPlayer;

        /**
         * Verifies a ReqSearchPlayer message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSearchPlayer message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSearchPlayer
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSearchPlayer;

        /**
         * Creates a plain object from a ReqSearchPlayer message. Also converts values to other types if specified.
         * @param message ReqSearchPlayer
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSearchPlayer, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSearchPlayer to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSearchPlayer
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSearchPlayer. */
    interface IResSearchPlayer {

        /** ResSearchPlayer Code */
        Code?: (number|null);

        /** ResSearchPlayer List */
        List?: (tutorial.IResPlayerSimple[]|null);
    }

    /** Represents a ResSearchPlayer. */
    class ResSearchPlayer implements IResSearchPlayer {

        /**
         * Constructs a new ResSearchPlayer.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSearchPlayer);

        /** ResSearchPlayer Code. */
        public Code: number;

        /** ResSearchPlayer List. */
        public List: tutorial.IResPlayerSimple[];

        /**
         * Creates a new ResSearchPlayer instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSearchPlayer instance
         */
        public static create(properties?: tutorial.IResSearchPlayer): tutorial.ResSearchPlayer;

        /**
         * Encodes the specified ResSearchPlayer message. Does not implicitly {@link tutorial.ResSearchPlayer.verify|verify} messages.
         * @param message ResSearchPlayer message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSearchPlayer, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSearchPlayer message, length delimited. Does not implicitly {@link tutorial.ResSearchPlayer.verify|verify} messages.
         * @param message ResSearchPlayer message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSearchPlayer, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSearchPlayer message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSearchPlayer
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSearchPlayer;

        /**
         * Decodes a ResSearchPlayer message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSearchPlayer
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSearchPlayer;

        /**
         * Verifies a ResSearchPlayer message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSearchPlayer message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSearchPlayer
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSearchPlayer;

        /**
         * Creates a plain object from a ResSearchPlayer message. Also converts values to other types if specified.
         * @param message ResSearchPlayer
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSearchPlayer, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSearchPlayer to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSearchPlayer
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayerSimple. */
    interface IResPlayerSimple {

        /** ResPlayerSimple Uid */
        Uid?: (number|null);

        /** ResPlayerSimple Name */
        Name?: (string|null);

        /** ResPlayerSimple Face */
        Face?: (number|null);

        /** ResPlayerSimple Avatar */
        Avatar?: (number|null);

        /** ResPlayerSimple Level */
        Level?: (number|null);

        /** ResPlayerSimple Decorate */
        Decorate?: (number|null);

        /** ResPlayerSimple login */
        login?: (number|null);

        /** ResPlayerSimple loginout */
        loginout?: (number|null);

        /** ResPlayerSimple Facebook */
        Facebook?: (string|null);
    }

    /** Represents a ResPlayerSimple. */
    class ResPlayerSimple implements IResPlayerSimple {

        /**
         * Constructs a new ResPlayerSimple.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayerSimple);

        /** ResPlayerSimple Uid. */
        public Uid: number;

        /** ResPlayerSimple Name. */
        public Name: string;

        /** ResPlayerSimple Face. */
        public Face: number;

        /** ResPlayerSimple Avatar. */
        public Avatar: number;

        /** ResPlayerSimple Level. */
        public Level: number;

        /** ResPlayerSimple Decorate. */
        public Decorate: number;

        /** ResPlayerSimple login. */
        public login: number;

        /** ResPlayerSimple loginout. */
        public loginout: number;

        /** ResPlayerSimple Facebook. */
        public Facebook: string;

        /**
         * Creates a new ResPlayerSimple instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayerSimple instance
         */
        public static create(properties?: tutorial.IResPlayerSimple): tutorial.ResPlayerSimple;

        /**
         * Encodes the specified ResPlayerSimple message. Does not implicitly {@link tutorial.ResPlayerSimple.verify|verify} messages.
         * @param message ResPlayerSimple message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayerSimple, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayerSimple message, length delimited. Does not implicitly {@link tutorial.ResPlayerSimple.verify|verify} messages.
         * @param message ResPlayerSimple message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayerSimple, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayerSimple message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayerSimple
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayerSimple;

        /**
         * Decodes a ResPlayerSimple message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayerSimple
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayerSimple;

        /**
         * Verifies a ResPlayerSimple message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayerSimple message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayerSimple
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayerSimple;

        /**
         * Creates a plain object from a ResPlayerSimple message. Also converts values to other types if specified.
         * @param message ResPlayerSimple
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayerSimple, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayerSimple to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayerSimple
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayerRank. */
    interface IResPlayerRank {

        /** ResPlayerRank Uid */
        Uid?: (number|null);

        /** ResPlayerRank Name */
        Name?: (string|null);

        /** ResPlayerRank Face */
        Face?: (number|null);

        /** ResPlayerRank Avatar */
        Avatar?: (number|null);

        /** ResPlayerRank Level */
        Level?: (number|null);

        /** ResPlayerRank score */
        score?: (number|null);
    }

    /** Represents a ResPlayerRank. */
    class ResPlayerRank implements IResPlayerRank {

        /**
         * Constructs a new ResPlayerRank.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayerRank);

        /** ResPlayerRank Uid. */
        public Uid: number;

        /** ResPlayerRank Name. */
        public Name: string;

        /** ResPlayerRank Face. */
        public Face: number;

        /** ResPlayerRank Avatar. */
        public Avatar: number;

        /** ResPlayerRank Level. */
        public Level: number;

        /** ResPlayerRank score. */
        public score: number;

        /**
         * Creates a new ResPlayerRank instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayerRank instance
         */
        public static create(properties?: tutorial.IResPlayerRank): tutorial.ResPlayerRank;

        /**
         * Encodes the specified ResPlayerRank message. Does not implicitly {@link tutorial.ResPlayerRank.verify|verify} messages.
         * @param message ResPlayerRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayerRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayerRank message, length delimited. Does not implicitly {@link tutorial.ResPlayerRank.verify|verify} messages.
         * @param message ResPlayerRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayerRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayerRank message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayerRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayerRank;

        /**
         * Decodes a ResPlayerRank message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayerRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayerRank;

        /**
         * Verifies a ResPlayerRank message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayerRank message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayerRank
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayerRank;

        /**
         * Creates a plain object from a ResPlayerRank message. Also converts values to other types if specified.
         * @param message ResPlayerRank
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayerRank, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayerRank to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayerRank
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendLog. */
    interface IResFriendLog {

        /** ResFriendLog Player */
        Player?: (tutorial.IResPlayerSimple|null);

        /** ResFriendLog Type */
        Type?: (number|null);

        /** ResFriendLog Time */
        Time?: (number|null);

        /** ResFriendLog Param */
        Param?: (string|null);

        /** ResFriendLog Id */
        Id?: (number|null);
    }

    /** Represents a ResFriendLog. */
    class ResFriendLog implements IResFriendLog {

        /**
         * Constructs a new ResFriendLog.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendLog);

        /** ResFriendLog Player. */
        public Player?: (tutorial.IResPlayerSimple|null);

        /** ResFriendLog Type. */
        public Type: number;

        /** ResFriendLog Time. */
        public Time: number;

        /** ResFriendLog Param. */
        public Param: string;

        /** ResFriendLog Id. */
        public Id: number;

        /**
         * Creates a new ResFriendLog instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendLog instance
         */
        public static create(properties?: tutorial.IResFriendLog): tutorial.ResFriendLog;

        /**
         * Encodes the specified ResFriendLog message. Does not implicitly {@link tutorial.ResFriendLog.verify|verify} messages.
         * @param message ResFriendLog message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendLog, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendLog message, length delimited. Does not implicitly {@link tutorial.ResFriendLog.verify|verify} messages.
         * @param message ResFriendLog message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendLog, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendLog message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendLog
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendLog;

        /**
         * Decodes a ResFriendLog message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendLog
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendLog;

        /**
         * Verifies a ResFriendLog message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendLog message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendLog
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendLog;

        /**
         * Creates a plain object from a ResFriendLog message. Also converts values to other types if specified.
         * @param message ResFriendLog
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendLog, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendLog to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendLog
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NotifyFriendLog. */
    interface INotifyFriendLog {

        /** NotifyFriendLog info */
        info?: (tutorial.IResFriendLog|null);
    }

    /** Represents a NotifyFriendLog. */
    class NotifyFriendLog implements INotifyFriendLog {

        /**
         * Constructs a new NotifyFriendLog.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INotifyFriendLog);

        /** NotifyFriendLog info. */
        public info?: (tutorial.IResFriendLog|null);

        /**
         * Creates a new NotifyFriendLog instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NotifyFriendLog instance
         */
        public static create(properties?: tutorial.INotifyFriendLog): tutorial.NotifyFriendLog;

        /**
         * Encodes the specified NotifyFriendLog message. Does not implicitly {@link tutorial.NotifyFriendLog.verify|verify} messages.
         * @param message NotifyFriendLog message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INotifyFriendLog, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NotifyFriendLog message, length delimited. Does not implicitly {@link tutorial.NotifyFriendLog.verify|verify} messages.
         * @param message NotifyFriendLog message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INotifyFriendLog, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NotifyFriendLog message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NotifyFriendLog
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NotifyFriendLog;

        /**
         * Decodes a NotifyFriendLog message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NotifyFriendLog
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NotifyFriendLog;

        /**
         * Verifies a NotifyFriendLog message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NotifyFriendLog message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NotifyFriendLog
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NotifyFriendLog;

        /**
         * Creates a plain object from a NotifyFriendLog message. Also converts values to other types if specified.
         * @param message NotifyFriendLog
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NotifyFriendLog, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NotifyFriendLog to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NotifyFriendLog
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NotifyFriendCard. */
    interface INotifyFriendCard {

        /** NotifyFriendCard Info */
        Info?: (tutorial.IResFriendCard|null);
    }

    /** Represents a NotifyFriendCard. */
    class NotifyFriendCard implements INotifyFriendCard {

        /**
         * Constructs a new NotifyFriendCard.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INotifyFriendCard);

        /** NotifyFriendCard Info. */
        public Info?: (tutorial.IResFriendCard|null);

        /**
         * Creates a new NotifyFriendCard instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NotifyFriendCard instance
         */
        public static create(properties?: tutorial.INotifyFriendCard): tutorial.NotifyFriendCard;

        /**
         * Encodes the specified NotifyFriendCard message. Does not implicitly {@link tutorial.NotifyFriendCard.verify|verify} messages.
         * @param message NotifyFriendCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INotifyFriendCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NotifyFriendCard message, length delimited. Does not implicitly {@link tutorial.NotifyFriendCard.verify|verify} messages.
         * @param message NotifyFriendCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INotifyFriendCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NotifyFriendCard message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NotifyFriendCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NotifyFriendCard;

        /**
         * Decodes a NotifyFriendCard message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NotifyFriendCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NotifyFriendCard;

        /**
         * Verifies a NotifyFriendCard message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NotifyFriendCard message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NotifyFriendCard
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NotifyFriendCard;

        /**
         * Creates a plain object from a NotifyFriendCard message. Also converts values to other types if specified.
         * @param message NotifyFriendCard
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NotifyFriendCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NotifyFriendCard to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NotifyFriendCard
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendCard. */
    interface IResFriendCard {

        /** ResFriendCard Uid */
        Uid?: (number|null);

        /** ResFriendCard Name */
        Name?: (string|null);

        /** ResFriendCard Face */
        Face?: (number|null);

        /** ResFriendCard Avatar */
        Avatar?: (number|null);

        /** ResFriendCard Level */
        Level?: (number|null);

        /** ResFriendCard Type */
        Type?: (number|null);

        /** ResFriendCard Time */
        Time?: (number|null);

        /** ResFriendCard CardId */
        CardId?: (number|null);

        /** ResFriendCard ExCardId */
        ExCardId?: (number|null);

        /** ResFriendCard Status */
        Status?: (number|null);

        /** ResFriendCard Id */
        Id?: (string|null);
    }

    /** Represents a ResFriendCard. */
    class ResFriendCard implements IResFriendCard {

        /**
         * Constructs a new ResFriendCard.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendCard);

        /** ResFriendCard Uid. */
        public Uid: number;

        /** ResFriendCard Name. */
        public Name: string;

        /** ResFriendCard Face. */
        public Face: number;

        /** ResFriendCard Avatar. */
        public Avatar: number;

        /** ResFriendCard Level. */
        public Level: number;

        /** ResFriendCard Type. */
        public Type: number;

        /** ResFriendCard Time. */
        public Time: number;

        /** ResFriendCard CardId. */
        public CardId: number;

        /** ResFriendCard ExCardId. */
        public ExCardId: number;

        /** ResFriendCard Status. */
        public Status: number;

        /** ResFriendCard Id. */
        public Id: string;

        /**
         * Creates a new ResFriendCard instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendCard instance
         */
        public static create(properties?: tutorial.IResFriendCard): tutorial.ResFriendCard;

        /**
         * Encodes the specified ResFriendCard message. Does not implicitly {@link tutorial.ResFriendCard.verify|verify} messages.
         * @param message ResFriendCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendCard message, length delimited. Does not implicitly {@link tutorial.ResFriendCard.verify|verify} messages.
         * @param message ResFriendCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendCard message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendCard;

        /**
         * Decodes a ResFriendCard message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendCard;

        /**
         * Verifies a ResFriendCard message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendCard message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendCard
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendCard;

        /**
         * Creates a plain object from a ResFriendCard message. Also converts values to other types if specified.
         * @param message ResFriendCard
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendCard to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendCard
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqKv. */
    interface IReqKv {

        /** ReqKv key */
        key?: (number|null);

        /** ReqKv value */
        value?: (string|null);
    }

    /** Represents a ReqKv. */
    class ReqKv implements IReqKv {

        /**
         * Constructs a new ReqKv.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqKv);

        /** ReqKv key. */
        public key: number;

        /** ReqKv value. */
        public value: string;

        /**
         * Creates a new ReqKv instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqKv instance
         */
        public static create(properties?: tutorial.IReqKv): tutorial.ReqKv;

        /**
         * Encodes the specified ReqKv message. Does not implicitly {@link tutorial.ReqKv.verify|verify} messages.
         * @param message ReqKv message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqKv, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqKv message, length delimited. Does not implicitly {@link tutorial.ReqKv.verify|verify} messages.
         * @param message ReqKv message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqKv, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqKv message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqKv
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqKv;

        /**
         * Decodes a ReqKv message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqKv
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqKv;

        /**
         * Verifies a ReqKv message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqKv message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqKv
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqKv;

        /**
         * Creates a plain object from a ReqKv message. Also converts values to other types if specified.
         * @param message ReqKv
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqKv, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqKv to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqKv
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResKv. */
    interface IResKv {

        /** ResKv kv */
        kv?: ({ [k: string]: string }|null);
    }

    /** Represents a ResKv. */
    class ResKv implements IResKv {

        /**
         * Constructs a new ResKv.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResKv);

        /** ResKv kv. */
        public kv: { [k: string]: string };

        /**
         * Creates a new ResKv instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResKv instance
         */
        public static create(properties?: tutorial.IResKv): tutorial.ResKv;

        /**
         * Encodes the specified ResKv message. Does not implicitly {@link tutorial.ResKv.verify|verify} messages.
         * @param message ResKv message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResKv, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResKv message, length delimited. Does not implicitly {@link tutorial.ResKv.verify|verify} messages.
         * @param message ResKv message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResKv, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResKv message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResKv
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResKv;

        /**
         * Decodes a ResKv message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResKv
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResKv;

        /**
         * Verifies a ResKv message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResKv message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResKv
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResKv;

        /**
         * Creates a plain object from a ResKv message. Also converts values to other types if specified.
         * @param message ResKv
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResKv, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResKv to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResKv
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFriendRecommend. */
    interface IReqFriendRecommend {
    }

    /** Represents a ReqFriendRecommend. */
    class ReqFriendRecommend implements IReqFriendRecommend {

        /**
         * Constructs a new ReqFriendRecommend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFriendRecommend);

        /**
         * Creates a new ReqFriendRecommend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFriendRecommend instance
         */
        public static create(properties?: tutorial.IReqFriendRecommend): tutorial.ReqFriendRecommend;

        /**
         * Encodes the specified ReqFriendRecommend message. Does not implicitly {@link tutorial.ReqFriendRecommend.verify|verify} messages.
         * @param message ReqFriendRecommend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFriendRecommend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFriendRecommend message, length delimited. Does not implicitly {@link tutorial.ReqFriendRecommend.verify|verify} messages.
         * @param message ReqFriendRecommend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFriendRecommend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFriendRecommend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFriendRecommend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFriendRecommend;

        /**
         * Decodes a ReqFriendRecommend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFriendRecommend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFriendRecommend;

        /**
         * Verifies a ReqFriendRecommend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFriendRecommend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFriendRecommend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFriendRecommend;

        /**
         * Creates a plain object from a ReqFriendRecommend message. Also converts values to other types if specified.
         * @param message ReqFriendRecommend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFriendRecommend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFriendRecommend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFriendRecommend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendRecommend. */
    interface IResFriendRecommend {

        /** ResFriendRecommend List */
        List?: (tutorial.IResPlayerSimple[]|null);
    }

    /** Represents a ResFriendRecommend. */
    class ResFriendRecommend implements IResFriendRecommend {

        /**
         * Constructs a new ResFriendRecommend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendRecommend);

        /** ResFriendRecommend List. */
        public List: tutorial.IResPlayerSimple[];

        /**
         * Creates a new ResFriendRecommend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendRecommend instance
         */
        public static create(properties?: tutorial.IResFriendRecommend): tutorial.ResFriendRecommend;

        /**
         * Encodes the specified ResFriendRecommend message. Does not implicitly {@link tutorial.ResFriendRecommend.verify|verify} messages.
         * @param message ResFriendRecommend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendRecommend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendRecommend message, length delimited. Does not implicitly {@link tutorial.ResFriendRecommend.verify|verify} messages.
         * @param message ResFriendRecommend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendRecommend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendRecommend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendRecommend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendRecommend;

        /**
         * Decodes a ResFriendRecommend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendRecommend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendRecommend;

        /**
         * Verifies a ResFriendRecommend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendRecommend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendRecommend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendRecommend;

        /**
         * Creates a plain object from a ResFriendRecommend message. Also converts values to other types if specified.
         * @param message ResFriendRecommend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendRecommend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendRecommend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendRecommend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFriendIgnore. */
    interface IReqFriendIgnore {

        /** ReqFriendIgnore Uid */
        Uid?: (number|null);
    }

    /** Represents a ReqFriendIgnore. */
    class ReqFriendIgnore implements IReqFriendIgnore {

        /**
         * Constructs a new ReqFriendIgnore.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFriendIgnore);

        /** ReqFriendIgnore Uid. */
        public Uid: number;

        /**
         * Creates a new ReqFriendIgnore instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFriendIgnore instance
         */
        public static create(properties?: tutorial.IReqFriendIgnore): tutorial.ReqFriendIgnore;

        /**
         * Encodes the specified ReqFriendIgnore message. Does not implicitly {@link tutorial.ReqFriendIgnore.verify|verify} messages.
         * @param message ReqFriendIgnore message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFriendIgnore, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFriendIgnore message, length delimited. Does not implicitly {@link tutorial.ReqFriendIgnore.verify|verify} messages.
         * @param message ReqFriendIgnore message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFriendIgnore, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFriendIgnore message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFriendIgnore
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFriendIgnore;

        /**
         * Decodes a ReqFriendIgnore message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFriendIgnore
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFriendIgnore;

        /**
         * Verifies a ReqFriendIgnore message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFriendIgnore message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFriendIgnore
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFriendIgnore;

        /**
         * Creates a plain object from a ReqFriendIgnore message. Also converts values to other types if specified.
         * @param message ReqFriendIgnore
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFriendIgnore, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFriendIgnore to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFriendIgnore
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendIgnore. */
    interface IResFriendIgnore {

        /** ResFriendIgnore Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResFriendIgnore Msg */
        Msg?: (string|null);
    }

    /** Represents a ResFriendIgnore. */
    class ResFriendIgnore implements IResFriendIgnore {

        /**
         * Constructs a new ResFriendIgnore.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendIgnore);

        /** ResFriendIgnore Code. */
        public Code: tutorial.RES_CODE;

        /** ResFriendIgnore Msg. */
        public Msg: string;

        /**
         * Creates a new ResFriendIgnore instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendIgnore instance
         */
        public static create(properties?: tutorial.IResFriendIgnore): tutorial.ResFriendIgnore;

        /**
         * Encodes the specified ResFriendIgnore message. Does not implicitly {@link tutorial.ResFriendIgnore.verify|verify} messages.
         * @param message ResFriendIgnore message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendIgnore, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendIgnore message, length delimited. Does not implicitly {@link tutorial.ResFriendIgnore.verify|verify} messages.
         * @param message ResFriendIgnore message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendIgnore, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendIgnore message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendIgnore
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendIgnore;

        /**
         * Decodes a ResFriendIgnore message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendIgnore
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendIgnore;

        /**
         * Verifies a ResFriendIgnore message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendIgnore message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendIgnore
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendIgnore;

        /**
         * Creates a plain object from a ResFriendIgnore message. Also converts values to other types if specified.
         * @param message ResFriendIgnore
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendIgnore, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendIgnore to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendIgnore
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFriendList. */
    interface IReqFriendList {
    }

    /** Represents a ReqFriendList. */
    class ReqFriendList implements IReqFriendList {

        /**
         * Constructs a new ReqFriendList.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFriendList);

        /**
         * Creates a new ReqFriendList instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFriendList instance
         */
        public static create(properties?: tutorial.IReqFriendList): tutorial.ReqFriendList;

        /**
         * Encodes the specified ReqFriendList message. Does not implicitly {@link tutorial.ReqFriendList.verify|verify} messages.
         * @param message ReqFriendList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFriendList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFriendList message, length delimited. Does not implicitly {@link tutorial.ReqFriendList.verify|verify} messages.
         * @param message ReqFriendList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFriendList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFriendList message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFriendList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFriendList;

        /**
         * Decodes a ReqFriendList message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFriendList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFriendList;

        /**
         * Verifies a ReqFriendList message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFriendList message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFriendList
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFriendList;

        /**
         * Creates a plain object from a ReqFriendList message. Also converts values to other types if specified.
         * @param message ReqFriendList
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFriendList, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFriendList to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFriendList
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendList. */
    interface IResFriendList {

        /** ResFriendList FriendList */
        FriendList?: (tutorial.IResPlayerSimple[]|null);
    }

    /** Represents a ResFriendList. */
    class ResFriendList implements IResFriendList {

        /**
         * Constructs a new ResFriendList.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendList);

        /** ResFriendList FriendList. */
        public FriendList: tutorial.IResPlayerSimple[];

        /**
         * Creates a new ResFriendList instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendList instance
         */
        public static create(properties?: tutorial.IResFriendList): tutorial.ResFriendList;

        /**
         * Encodes the specified ResFriendList message. Does not implicitly {@link tutorial.ResFriendList.verify|verify} messages.
         * @param message ResFriendList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendList message, length delimited. Does not implicitly {@link tutorial.ResFriendList.verify|verify} messages.
         * @param message ResFriendList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendList message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendList;

        /**
         * Decodes a ResFriendList message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendList;

        /**
         * Verifies a ResFriendList message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendList message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendList
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendList;

        /**
         * Creates a plain object from a ResFriendList message. Also converts values to other types if specified.
         * @param message ResFriendList
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendList, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendList to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendList
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFriendApply. */
    interface IReqFriendApply {
    }

    /** Represents a ReqFriendApply. */
    class ReqFriendApply implements IReqFriendApply {

        /**
         * Constructs a new ReqFriendApply.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFriendApply);

        /**
         * Creates a new ReqFriendApply instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFriendApply instance
         */
        public static create(properties?: tutorial.IReqFriendApply): tutorial.ReqFriendApply;

        /**
         * Encodes the specified ReqFriendApply message. Does not implicitly {@link tutorial.ReqFriendApply.verify|verify} messages.
         * @param message ReqFriendApply message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFriendApply, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFriendApply message, length delimited. Does not implicitly {@link tutorial.ReqFriendApply.verify|verify} messages.
         * @param message ReqFriendApply message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFriendApply, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFriendApply message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFriendApply
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFriendApply;

        /**
         * Decodes a ReqFriendApply message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFriendApply
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFriendApply;

        /**
         * Verifies a ReqFriendApply message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFriendApply message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFriendApply
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFriendApply;

        /**
         * Creates a plain object from a ReqFriendApply message. Also converts values to other types if specified.
         * @param message ReqFriendApply
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFriendApply, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFriendApply to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFriendApply
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendApply. */
    interface IResFriendApply {

        /** ResFriendApply ApplyList */
        ApplyList?: (tutorial.IResFriendApplyInfo[]|null);
    }

    /** Represents a ResFriendApply. */
    class ResFriendApply implements IResFriendApply {

        /**
         * Constructs a new ResFriendApply.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendApply);

        /** ResFriendApply ApplyList. */
        public ApplyList: tutorial.IResFriendApplyInfo[];

        /**
         * Creates a new ResFriendApply instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendApply instance
         */
        public static create(properties?: tutorial.IResFriendApply): tutorial.ResFriendApply;

        /**
         * Encodes the specified ResFriendApply message. Does not implicitly {@link tutorial.ResFriendApply.verify|verify} messages.
         * @param message ResFriendApply message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendApply, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendApply message, length delimited. Does not implicitly {@link tutorial.ResFriendApply.verify|verify} messages.
         * @param message ResFriendApply message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendApply, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendApply message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendApply
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendApply;

        /**
         * Decodes a ResFriendApply message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendApply
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendApply;

        /**
         * Verifies a ResFriendApply message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendApply message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendApply
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendApply;

        /**
         * Creates a plain object from a ResFriendApply message. Also converts values to other types if specified.
         * @param message ResFriendApply
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendApply, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendApply to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendApply
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendApplyInfo. */
    interface IResFriendApplyInfo {

        /** ResFriendApplyInfo Player */
        Player?: (tutorial.IResPlayerSimple|null);

        /** ResFriendApplyInfo Time */
        Time?: (number|null);
    }

    /** Represents a ResFriendApplyInfo. */
    class ResFriendApplyInfo implements IResFriendApplyInfo {

        /**
         * Constructs a new ResFriendApplyInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendApplyInfo);

        /** ResFriendApplyInfo Player. */
        public Player?: (tutorial.IResPlayerSimple|null);

        /** ResFriendApplyInfo Time. */
        public Time: number;

        /**
         * Creates a new ResFriendApplyInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendApplyInfo instance
         */
        public static create(properties?: tutorial.IResFriendApplyInfo): tutorial.ResFriendApplyInfo;

        /**
         * Encodes the specified ResFriendApplyInfo message. Does not implicitly {@link tutorial.ResFriendApplyInfo.verify|verify} messages.
         * @param message ResFriendApplyInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendApplyInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendApplyInfo message, length delimited. Does not implicitly {@link tutorial.ResFriendApplyInfo.verify|verify} messages.
         * @param message ResFriendApplyInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendApplyInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendApplyInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendApplyInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendApplyInfo;

        /**
         * Decodes a ResFriendApplyInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendApplyInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendApplyInfo;

        /**
         * Verifies a ResFriendApplyInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendApplyInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendApplyInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendApplyInfo;

        /**
         * Creates a plain object from a ResFriendApplyInfo message. Also converts values to other types if specified.
         * @param message ResFriendApplyInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendApplyInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendApplyInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendApplyInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFriendCardMsg. */
    interface IReqFriendCardMsg {
    }

    /** Represents a ReqFriendCardMsg. */
    class ReqFriendCardMsg implements IReqFriendCardMsg {

        /**
         * Constructs a new ReqFriendCardMsg.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFriendCardMsg);

        /**
         * Creates a new ReqFriendCardMsg instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFriendCardMsg instance
         */
        public static create(properties?: tutorial.IReqFriendCardMsg): tutorial.ReqFriendCardMsg;

        /**
         * Encodes the specified ReqFriendCardMsg message. Does not implicitly {@link tutorial.ReqFriendCardMsg.verify|verify} messages.
         * @param message ReqFriendCardMsg message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFriendCardMsg, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFriendCardMsg message, length delimited. Does not implicitly {@link tutorial.ReqFriendCardMsg.verify|verify} messages.
         * @param message ReqFriendCardMsg message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFriendCardMsg, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFriendCardMsg message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFriendCardMsg
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFriendCardMsg;

        /**
         * Decodes a ReqFriendCardMsg message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFriendCardMsg
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFriendCardMsg;

        /**
         * Verifies a ReqFriendCardMsg message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFriendCardMsg message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFriendCardMsg
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFriendCardMsg;

        /**
         * Creates a plain object from a ReqFriendCardMsg message. Also converts values to other types if specified.
         * @param message ReqFriendCardMsg
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFriendCardMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFriendCardMsg to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFriendCardMsg
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendCardMsg. */
    interface IResFriendCardMsg {

        /** ResFriendCardMsg MsgList */
        MsgList?: (tutorial.IResFriendCard[]|null);
    }

    /** Represents a ResFriendCardMsg. */
    class ResFriendCardMsg implements IResFriendCardMsg {

        /**
         * Constructs a new ResFriendCardMsg.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendCardMsg);

        /** ResFriendCardMsg MsgList. */
        public MsgList: tutorial.IResFriendCard[];

        /**
         * Creates a new ResFriendCardMsg instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendCardMsg instance
         */
        public static create(properties?: tutorial.IResFriendCardMsg): tutorial.ResFriendCardMsg;

        /**
         * Encodes the specified ResFriendCardMsg message. Does not implicitly {@link tutorial.ResFriendCardMsg.verify|verify} messages.
         * @param message ResFriendCardMsg message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendCardMsg, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendCardMsg message, length delimited. Does not implicitly {@link tutorial.ResFriendCardMsg.verify|verify} messages.
         * @param message ResFriendCardMsg message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendCardMsg, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendCardMsg message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendCardMsg
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendCardMsg;

        /**
         * Decodes a ResFriendCardMsg message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendCardMsg
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendCardMsg;

        /**
         * Verifies a ResFriendCardMsg message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendCardMsg message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendCardMsg
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendCardMsg;

        /**
         * Creates a plain object from a ResFriendCardMsg message. Also converts values to other types if specified.
         * @param message ResFriendCardMsg
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendCardMsg, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendCardMsg to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendCardMsg
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFriendTimeLine. */
    interface IReqFriendTimeLine {
    }

    /** Represents a ReqFriendTimeLine. */
    class ReqFriendTimeLine implements IReqFriendTimeLine {

        /**
         * Constructs a new ReqFriendTimeLine.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFriendTimeLine);

        /**
         * Creates a new ReqFriendTimeLine instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFriendTimeLine instance
         */
        public static create(properties?: tutorial.IReqFriendTimeLine): tutorial.ReqFriendTimeLine;

        /**
         * Encodes the specified ReqFriendTimeLine message. Does not implicitly {@link tutorial.ReqFriendTimeLine.verify|verify} messages.
         * @param message ReqFriendTimeLine message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFriendTimeLine, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFriendTimeLine message, length delimited. Does not implicitly {@link tutorial.ReqFriendTimeLine.verify|verify} messages.
         * @param message ReqFriendTimeLine message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFriendTimeLine, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFriendTimeLine message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFriendTimeLine
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFriendTimeLine;

        /**
         * Decodes a ReqFriendTimeLine message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFriendTimeLine
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFriendTimeLine;

        /**
         * Verifies a ReqFriendTimeLine message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFriendTimeLine message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFriendTimeLine
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFriendTimeLine;

        /**
         * Creates a plain object from a ReqFriendTimeLine message. Also converts values to other types if specified.
         * @param message ReqFriendTimeLine
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFriendTimeLine, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFriendTimeLine to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFriendTimeLine
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendTimeLine. */
    interface IResFriendTimeLine {

        /** ResFriendTimeLine Log */
        Log?: (tutorial.IResFriendLog[]|null);
    }

    /** Represents a ResFriendTimeLine. */
    class ResFriendTimeLine implements IResFriendTimeLine {

        /**
         * Constructs a new ResFriendTimeLine.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendTimeLine);

        /** ResFriendTimeLine Log. */
        public Log: tutorial.IResFriendLog[];

        /**
         * Creates a new ResFriendTimeLine instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendTimeLine instance
         */
        public static create(properties?: tutorial.IResFriendTimeLine): tutorial.ResFriendTimeLine;

        /**
         * Encodes the specified ResFriendTimeLine message. Does not implicitly {@link tutorial.ResFriendTimeLine.verify|verify} messages.
         * @param message ResFriendTimeLine message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendTimeLine, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendTimeLine message, length delimited. Does not implicitly {@link tutorial.ResFriendTimeLine.verify|verify} messages.
         * @param message ResFriendTimeLine message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendTimeLine, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendTimeLine message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendTimeLine
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendTimeLine;

        /**
         * Decodes a ResFriendTimeLine message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendTimeLine
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendTimeLine;

        /**
         * Verifies a ResFriendTimeLine message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendTimeLine message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendTimeLine
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendTimeLine;

        /**
         * Creates a plain object from a ResFriendTimeLine message. Also converts values to other types if specified.
         * @param message ResFriendTimeLine
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendTimeLine, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendTimeLine to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendTimeLine
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendApplyNotify. */
    interface IResFriendApplyNotify {

        /** ResFriendApplyNotify Player */
        Player?: (tutorial.IResPlayerSimple|null);

        /** ResFriendApplyNotify Type */
        Type?: (number|null);

        /** ResFriendApplyNotify Time */
        Time?: (number|null);
    }

    /** Represents a ResFriendApplyNotify. */
    class ResFriendApplyNotify implements IResFriendApplyNotify {

        /**
         * Constructs a new ResFriendApplyNotify.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendApplyNotify);

        /** ResFriendApplyNotify Player. */
        public Player?: (tutorial.IResPlayerSimple|null);

        /** ResFriendApplyNotify Type. */
        public Type: number;

        /** ResFriendApplyNotify Time. */
        public Time: number;

        /**
         * Creates a new ResFriendApplyNotify instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendApplyNotify instance
         */
        public static create(properties?: tutorial.IResFriendApplyNotify): tutorial.ResFriendApplyNotify;

        /**
         * Encodes the specified ResFriendApplyNotify message. Does not implicitly {@link tutorial.ResFriendApplyNotify.verify|verify} messages.
         * @param message ResFriendApplyNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendApplyNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendApplyNotify message, length delimited. Does not implicitly {@link tutorial.ResFriendApplyNotify.verify|verify} messages.
         * @param message ResFriendApplyNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendApplyNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendApplyNotify message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendApplyNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendApplyNotify;

        /**
         * Decodes a ResFriendApplyNotify message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendApplyNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendApplyNotify;

        /**
         * Verifies a ResFriendApplyNotify message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendApplyNotify message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendApplyNotify
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendApplyNotify;

        /**
         * Creates a plain object from a ResFriendApplyNotify message. Also converts values to other types if specified.
         * @param message ResFriendApplyNotify
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendApplyNotify, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendApplyNotify to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendApplyNotify
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqApplyFriend. */
    interface IReqApplyFriend {

        /** ReqApplyFriend Uid */
        Uid?: (number|null);
    }

    /** Represents a ReqApplyFriend. */
    class ReqApplyFriend implements IReqApplyFriend {

        /**
         * Constructs a new ReqApplyFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqApplyFriend);

        /** ReqApplyFriend Uid. */
        public Uid: number;

        /**
         * Creates a new ReqApplyFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqApplyFriend instance
         */
        public static create(properties?: tutorial.IReqApplyFriend): tutorial.ReqApplyFriend;

        /**
         * Encodes the specified ReqApplyFriend message. Does not implicitly {@link tutorial.ReqApplyFriend.verify|verify} messages.
         * @param message ReqApplyFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqApplyFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqApplyFriend message, length delimited. Does not implicitly {@link tutorial.ReqApplyFriend.verify|verify} messages.
         * @param message ReqApplyFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqApplyFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqApplyFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqApplyFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqApplyFriend;

        /**
         * Decodes a ReqApplyFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqApplyFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqApplyFriend;

        /**
         * Verifies a ReqApplyFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqApplyFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqApplyFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqApplyFriend;

        /**
         * Creates a plain object from a ReqApplyFriend message. Also converts values to other types if specified.
         * @param message ReqApplyFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqApplyFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqApplyFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqApplyFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResApplyFriend. */
    interface IResApplyFriend {

        /** ResApplyFriend Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResApplyFriend Msg */
        Msg?: (string|null);
    }

    /** Represents a ResApplyFriend. */
    class ResApplyFriend implements IResApplyFriend {

        /**
         * Constructs a new ResApplyFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResApplyFriend);

        /** ResApplyFriend Code. */
        public Code: tutorial.RES_CODE;

        /** ResApplyFriend Msg. */
        public Msg: string;

        /**
         * Creates a new ResApplyFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResApplyFriend instance
         */
        public static create(properties?: tutorial.IResApplyFriend): tutorial.ResApplyFriend;

        /**
         * Encodes the specified ResApplyFriend message. Does not implicitly {@link tutorial.ResApplyFriend.verify|verify} messages.
         * @param message ResApplyFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResApplyFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResApplyFriend message, length delimited. Does not implicitly {@link tutorial.ResApplyFriend.verify|verify} messages.
         * @param message ResApplyFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResApplyFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResApplyFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResApplyFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResApplyFriend;

        /**
         * Decodes a ResApplyFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResApplyFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResApplyFriend;

        /**
         * Verifies a ResApplyFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResApplyFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResApplyFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResApplyFriend;

        /**
         * Creates a plain object from a ResApplyFriend message. Also converts values to other types if specified.
         * @param message ResApplyFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResApplyFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResApplyFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResApplyFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqAgreeFriend. */
    interface IReqAgreeFriend {

        /** ReqAgreeFriend Uid */
        Uid?: (number|null);
    }

    /** Represents a ReqAgreeFriend. */
    class ReqAgreeFriend implements IReqAgreeFriend {

        /**
         * Constructs a new ReqAgreeFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqAgreeFriend);

        /** ReqAgreeFriend Uid. */
        public Uid: number;

        /**
         * Creates a new ReqAgreeFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqAgreeFriend instance
         */
        public static create(properties?: tutorial.IReqAgreeFriend): tutorial.ReqAgreeFriend;

        /**
         * Encodes the specified ReqAgreeFriend message. Does not implicitly {@link tutorial.ReqAgreeFriend.verify|verify} messages.
         * @param message ReqAgreeFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqAgreeFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqAgreeFriend message, length delimited. Does not implicitly {@link tutorial.ReqAgreeFriend.verify|verify} messages.
         * @param message ReqAgreeFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqAgreeFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqAgreeFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqAgreeFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqAgreeFriend;

        /**
         * Decodes a ReqAgreeFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqAgreeFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqAgreeFriend;

        /**
         * Verifies a ReqAgreeFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqAgreeFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqAgreeFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqAgreeFriend;

        /**
         * Creates a plain object from a ReqAgreeFriend message. Also converts values to other types if specified.
         * @param message ReqAgreeFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqAgreeFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqAgreeFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqAgreeFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResAgreeFriend. */
    interface IResAgreeFriend {

        /** ResAgreeFriend Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResAgreeFriend Msg */
        Msg?: (string|null);

        /** ResAgreeFriend Uid */
        Uid?: (number|null);

        /** ResAgreeFriend Player */
        Player?: (tutorial.IResPlayerSimple|null);
    }

    /** Represents a ResAgreeFriend. */
    class ResAgreeFriend implements IResAgreeFriend {

        /**
         * Constructs a new ResAgreeFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResAgreeFriend);

        /** ResAgreeFriend Code. */
        public Code: tutorial.RES_CODE;

        /** ResAgreeFriend Msg. */
        public Msg: string;

        /** ResAgreeFriend Uid. */
        public Uid: number;

        /** ResAgreeFriend Player. */
        public Player?: (tutorial.IResPlayerSimple|null);

        /**
         * Creates a new ResAgreeFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResAgreeFriend instance
         */
        public static create(properties?: tutorial.IResAgreeFriend): tutorial.ResAgreeFriend;

        /**
         * Encodes the specified ResAgreeFriend message. Does not implicitly {@link tutorial.ResAgreeFriend.verify|verify} messages.
         * @param message ResAgreeFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResAgreeFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResAgreeFriend message, length delimited. Does not implicitly {@link tutorial.ResAgreeFriend.verify|verify} messages.
         * @param message ResAgreeFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResAgreeFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResAgreeFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResAgreeFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResAgreeFriend;

        /**
         * Decodes a ResAgreeFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResAgreeFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResAgreeFriend;

        /**
         * Verifies a ResAgreeFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResAgreeFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResAgreeFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResAgreeFriend;

        /**
         * Creates a plain object from a ResAgreeFriend message. Also converts values to other types if specified.
         * @param message ResAgreeFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResAgreeFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResAgreeFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResAgreeFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRefuseFriend. */
    interface IReqRefuseFriend {

        /** ReqRefuseFriend Uid */
        Uid?: (number|null);
    }

    /** Represents a ReqRefuseFriend. */
    class ReqRefuseFriend implements IReqRefuseFriend {

        /**
         * Constructs a new ReqRefuseFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRefuseFriend);

        /** ReqRefuseFriend Uid. */
        public Uid: number;

        /**
         * Creates a new ReqRefuseFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRefuseFriend instance
         */
        public static create(properties?: tutorial.IReqRefuseFriend): tutorial.ReqRefuseFriend;

        /**
         * Encodes the specified ReqRefuseFriend message. Does not implicitly {@link tutorial.ReqRefuseFriend.verify|verify} messages.
         * @param message ReqRefuseFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRefuseFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRefuseFriend message, length delimited. Does not implicitly {@link tutorial.ReqRefuseFriend.verify|verify} messages.
         * @param message ReqRefuseFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRefuseFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRefuseFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRefuseFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRefuseFriend;

        /**
         * Decodes a ReqRefuseFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRefuseFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRefuseFriend;

        /**
         * Verifies a ReqRefuseFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRefuseFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRefuseFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRefuseFriend;

        /**
         * Creates a plain object from a ReqRefuseFriend message. Also converts values to other types if specified.
         * @param message ReqRefuseFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRefuseFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRefuseFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRefuseFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRefuseFriend. */
    interface IResRefuseFriend {

        /** ResRefuseFriend Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResRefuseFriend Msg */
        Msg?: (string|null);

        /** ResRefuseFriend Uid */
        Uid?: (number|null);
    }

    /** Represents a ResRefuseFriend. */
    class ResRefuseFriend implements IResRefuseFriend {

        /**
         * Constructs a new ResRefuseFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRefuseFriend);

        /** ResRefuseFriend Code. */
        public Code: tutorial.RES_CODE;

        /** ResRefuseFriend Msg. */
        public Msg: string;

        /** ResRefuseFriend Uid. */
        public Uid: number;

        /**
         * Creates a new ResRefuseFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRefuseFriend instance
         */
        public static create(properties?: tutorial.IResRefuseFriend): tutorial.ResRefuseFriend;

        /**
         * Encodes the specified ResRefuseFriend message. Does not implicitly {@link tutorial.ResRefuseFriend.verify|verify} messages.
         * @param message ResRefuseFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRefuseFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRefuseFriend message, length delimited. Does not implicitly {@link tutorial.ResRefuseFriend.verify|verify} messages.
         * @param message ResRefuseFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRefuseFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRefuseFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRefuseFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRefuseFriend;

        /**
         * Decodes a ResRefuseFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRefuseFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRefuseFriend;

        /**
         * Verifies a ResRefuseFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRefuseFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRefuseFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRefuseFriend;

        /**
         * Creates a plain object from a ResRefuseFriend message. Also converts values to other types if specified.
         * @param message ResRefuseFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRefuseFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRefuseFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRefuseFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqDelFriend. */
    interface IReqDelFriend {

        /** ReqDelFriend Uid */
        Uid?: (number|null);
    }

    /** Represents a ReqDelFriend. */
    class ReqDelFriend implements IReqDelFriend {

        /**
         * Constructs a new ReqDelFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqDelFriend);

        /** ReqDelFriend Uid. */
        public Uid: number;

        /**
         * Creates a new ReqDelFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqDelFriend instance
         */
        public static create(properties?: tutorial.IReqDelFriend): tutorial.ReqDelFriend;

        /**
         * Encodes the specified ReqDelFriend message. Does not implicitly {@link tutorial.ReqDelFriend.verify|verify} messages.
         * @param message ReqDelFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqDelFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqDelFriend message, length delimited. Does not implicitly {@link tutorial.ReqDelFriend.verify|verify} messages.
         * @param message ReqDelFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqDelFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqDelFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqDelFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqDelFriend;

        /**
         * Decodes a ReqDelFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqDelFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqDelFriend;

        /**
         * Verifies a ReqDelFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqDelFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqDelFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqDelFriend;

        /**
         * Creates a plain object from a ReqDelFriend message. Also converts values to other types if specified.
         * @param message ReqDelFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqDelFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqDelFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqDelFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResDelFriend. */
    interface IResDelFriend {

        /** ResDelFriend Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResDelFriend Msg */
        Msg?: (string|null);

        /** ResDelFriend Uid */
        Uid?: (number|null);
    }

    /** Represents a ResDelFriend. */
    class ResDelFriend implements IResDelFriend {

        /**
         * Constructs a new ResDelFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResDelFriend);

        /** ResDelFriend Code. */
        public Code: tutorial.RES_CODE;

        /** ResDelFriend Msg. */
        public Msg: string;

        /** ResDelFriend Uid. */
        public Uid: number;

        /**
         * Creates a new ResDelFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResDelFriend instance
         */
        public static create(properties?: tutorial.IResDelFriend): tutorial.ResDelFriend;

        /**
         * Encodes the specified ResDelFriend message. Does not implicitly {@link tutorial.ResDelFriend.verify|verify} messages.
         * @param message ResDelFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResDelFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResDelFriend message, length delimited. Does not implicitly {@link tutorial.ResDelFriend.verify|verify} messages.
         * @param message ResDelFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResDelFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResDelFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResDelFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResDelFriend;

        /**
         * Decodes a ResDelFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResDelFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResDelFriend;

        /**
         * Verifies a ResDelFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResDelFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResDelFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResDelFriend;

        /**
         * Creates a plain object from a ResDelFriend message. Also converts values to other types if specified.
         * @param message ResDelFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResDelFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResDelFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResDelFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRank. */
    interface IReqRank {

        /** ReqRank Type */
        Type?: (number|null);
    }

    /** Represents a ReqRank. */
    class ReqRank implements IReqRank {

        /**
         * Constructs a new ReqRank.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRank);

        /** ReqRank Type. */
        public Type: number;

        /**
         * Creates a new ReqRank instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRank instance
         */
        public static create(properties?: tutorial.IReqRank): tutorial.ReqRank;

        /**
         * Encodes the specified ReqRank message. Does not implicitly {@link tutorial.ReqRank.verify|verify} messages.
         * @param message ReqRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRank message, length delimited. Does not implicitly {@link tutorial.ReqRank.verify|verify} messages.
         * @param message ReqRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRank message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRank;

        /**
         * Decodes a ReqRank message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRank;

        /**
         * Verifies a ReqRank message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRank message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRank
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRank;

        /**
         * Creates a plain object from a ReqRank message. Also converts values to other types if specified.
         * @param message ReqRank
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRank, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRank to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRank
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRank. */
    interface IResRank {

        /** ResRank Type */
        Type?: (number|null);

        /** ResRank RankList */
        RankList?: ({ [k: string]: tutorial.IResPlayerSimple }|null);

        /** ResRank MyRank */
        MyRank?: (number|null);

        /** ResRank MyScore */
        MyScore?: (number|null);
    }

    /** Represents a ResRank. */
    class ResRank implements IResRank {

        /**
         * Constructs a new ResRank.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRank);

        /** ResRank Type. */
        public Type: number;

        /** ResRank RankList. */
        public RankList: { [k: string]: tutorial.IResPlayerSimple };

        /** ResRank MyRank. */
        public MyRank: number;

        /** ResRank MyScore. */
        public MyScore: number;

        /**
         * Creates a new ResRank instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRank instance
         */
        public static create(properties?: tutorial.IResRank): tutorial.ResRank;

        /**
         * Encodes the specified ResRank message. Does not implicitly {@link tutorial.ResRank.verify|verify} messages.
         * @param message ResRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRank message, length delimited. Does not implicitly {@link tutorial.ResRank.verify|verify} messages.
         * @param message ResRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRank message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRank;

        /**
         * Decodes a ResRank message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRank;

        /**
         * Verifies a ResRank message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRank message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRank
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRank;

        /**
         * Creates a plain object from a ResRank message. Also converts values to other types if specified.
         * @param message ResRank
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRank, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRank to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRank
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqMailList. */
    interface IReqMailList {
    }

    /** Represents a ReqMailList. */
    class ReqMailList implements IReqMailList {

        /**
         * Constructs a new ReqMailList.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqMailList);

        /**
         * Creates a new ReqMailList instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqMailList instance
         */
        public static create(properties?: tutorial.IReqMailList): tutorial.ReqMailList;

        /**
         * Encodes the specified ReqMailList message. Does not implicitly {@link tutorial.ReqMailList.verify|verify} messages.
         * @param message ReqMailList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqMailList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqMailList message, length delimited. Does not implicitly {@link tutorial.ReqMailList.verify|verify} messages.
         * @param message ReqMailList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqMailList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqMailList message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqMailList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqMailList;

        /**
         * Decodes a ReqMailList message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqMailList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqMailList;

        /**
         * Verifies a ReqMailList message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqMailList message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqMailList
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqMailList;

        /**
         * Creates a plain object from a ReqMailList message. Also converts values to other types if specified.
         * @param message ReqMailList
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqMailList, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqMailList to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqMailList
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResMailList. */
    interface IResMailList {

        /** ResMailList MailList */
        MailList?: ({ [k: string]: tutorial.IMailInfo }|null);
    }

    /** Represents a ResMailList. */
    class ResMailList implements IResMailList {

        /**
         * Constructs a new ResMailList.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResMailList);

        /** ResMailList MailList. */
        public MailList: { [k: string]: tutorial.IMailInfo };

        /**
         * Creates a new ResMailList instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResMailList instance
         */
        public static create(properties?: tutorial.IResMailList): tutorial.ResMailList;

        /**
         * Encodes the specified ResMailList message. Does not implicitly {@link tutorial.ResMailList.verify|verify} messages.
         * @param message ResMailList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResMailList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResMailList message, length delimited. Does not implicitly {@link tutorial.ResMailList.verify|verify} messages.
         * @param message ResMailList message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResMailList, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResMailList message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResMailList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResMailList;

        /**
         * Decodes a ResMailList message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResMailList
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResMailList;

        /**
         * Verifies a ResMailList message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResMailList message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResMailList
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResMailList;

        /**
         * Creates a plain object from a ResMailList message. Also converts values to other types if specified.
         * @param message ResMailList
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResMailList, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResMailList to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResMailList
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a MailInfo. */
    interface IMailInfo {

        /** MailInfo Id */
        Id?: (number|null);

        /** MailInfo Title */
        Title?: (string|null);

        /** MailInfo Content */
        Content?: (string|null);

        /** MailInfo Time */
        Time?: (number|null);

        /** MailInfo Status */
        Status?: (number|null);

        /** MailInfo Items */
        Items?: (tutorial.IItemInfo[]|null);
    }

    /** Represents a MailInfo. */
    class MailInfo implements IMailInfo {

        /**
         * Constructs a new MailInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IMailInfo);

        /** MailInfo Id. */
        public Id: number;

        /** MailInfo Title. */
        public Title: string;

        /** MailInfo Content. */
        public Content: string;

        /** MailInfo Time. */
        public Time: number;

        /** MailInfo Status. */
        public Status: number;

        /** MailInfo Items. */
        public Items: tutorial.IItemInfo[];

        /**
         * Creates a new MailInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns MailInfo instance
         */
        public static create(properties?: tutorial.IMailInfo): tutorial.MailInfo;

        /**
         * Encodes the specified MailInfo message. Does not implicitly {@link tutorial.MailInfo.verify|verify} messages.
         * @param message MailInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IMailInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified MailInfo message, length delimited. Does not implicitly {@link tutorial.MailInfo.verify|verify} messages.
         * @param message MailInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IMailInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a MailInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns MailInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.MailInfo;

        /**
         * Decodes a MailInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns MailInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.MailInfo;

        /**
         * Verifies a MailInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a MailInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns MailInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.MailInfo;

        /**
         * Creates a plain object from a MailInfo message. Also converts values to other types if specified.
         * @param message MailInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.MailInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this MailInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for MailInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a MailNotify. */
    interface IMailNotify {

        /** MailNotify Info */
        Info?: (tutorial.IMailInfo|null);
    }

    /** Represents a MailNotify. */
    class MailNotify implements IMailNotify {

        /**
         * Constructs a new MailNotify.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IMailNotify);

        /** MailNotify Info. */
        public Info?: (tutorial.IMailInfo|null);

        /**
         * Creates a new MailNotify instance using the specified properties.
         * @param [properties] Properties to set
         * @returns MailNotify instance
         */
        public static create(properties?: tutorial.IMailNotify): tutorial.MailNotify;

        /**
         * Encodes the specified MailNotify message. Does not implicitly {@link tutorial.MailNotify.verify|verify} messages.
         * @param message MailNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IMailNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified MailNotify message, length delimited. Does not implicitly {@link tutorial.MailNotify.verify|verify} messages.
         * @param message MailNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IMailNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a MailNotify message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns MailNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.MailNotify;

        /**
         * Decodes a MailNotify message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns MailNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.MailNotify;

        /**
         * Verifies a MailNotify message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a MailNotify message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns MailNotify
         */
        public static fromObject(object: { [k: string]: any }): tutorial.MailNotify;

        /**
         * Creates a plain object from a MailNotify message. Also converts values to other types if specified.
         * @param message MailNotify
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.MailNotify, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this MailNotify to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for MailNotify
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqReadMail. */
    interface IReqReadMail {

        /** ReqReadMail Id */
        Id?: (number|null);
    }

    /** Represents a ReqReadMail. */
    class ReqReadMail implements IReqReadMail {

        /**
         * Constructs a new ReqReadMail.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqReadMail);

        /** ReqReadMail Id. */
        public Id: number;

        /**
         * Creates a new ReqReadMail instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqReadMail instance
         */
        public static create(properties?: tutorial.IReqReadMail): tutorial.ReqReadMail;

        /**
         * Encodes the specified ReqReadMail message. Does not implicitly {@link tutorial.ReqReadMail.verify|verify} messages.
         * @param message ReqReadMail message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqReadMail, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqReadMail message, length delimited. Does not implicitly {@link tutorial.ReqReadMail.verify|verify} messages.
         * @param message ReqReadMail message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqReadMail, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqReadMail message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqReadMail
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqReadMail;

        /**
         * Decodes a ReqReadMail message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqReadMail
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqReadMail;

        /**
         * Verifies a ReqReadMail message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqReadMail message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqReadMail
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqReadMail;

        /**
         * Creates a plain object from a ReqReadMail message. Also converts values to other types if specified.
         * @param message ReqReadMail
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqReadMail, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqReadMail to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqReadMail
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResReadMail. */
    interface IResReadMail {

        /** ResReadMail Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResReadMail Msg */
        Msg?: (string|null);

        /** ResReadMail Id */
        Id?: (number|null);
    }

    /** Represents a ResReadMail. */
    class ResReadMail implements IResReadMail {

        /**
         * Constructs a new ResReadMail.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResReadMail);

        /** ResReadMail Code. */
        public Code: tutorial.RES_CODE;

        /** ResReadMail Msg. */
        public Msg: string;

        /** ResReadMail Id. */
        public Id: number;

        /**
         * Creates a new ResReadMail instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResReadMail instance
         */
        public static create(properties?: tutorial.IResReadMail): tutorial.ResReadMail;

        /**
         * Encodes the specified ResReadMail message. Does not implicitly {@link tutorial.ResReadMail.verify|verify} messages.
         * @param message ResReadMail message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResReadMail, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResReadMail message, length delimited. Does not implicitly {@link tutorial.ResReadMail.verify|verify} messages.
         * @param message ResReadMail message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResReadMail, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResReadMail message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResReadMail
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResReadMail;

        /**
         * Decodes a ResReadMail message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResReadMail
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResReadMail;

        /**
         * Verifies a ResReadMail message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResReadMail message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResReadMail
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResReadMail;

        /**
         * Creates a plain object from a ResReadMail message. Also converts values to other types if specified.
         * @param message ResReadMail
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResReadMail, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResReadMail to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResReadMail
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetMailReward. */
    interface IReqGetMailReward {

        /** ReqGetMailReward Id */
        Id?: (number|null);
    }

    /** Represents a ReqGetMailReward. */
    class ReqGetMailReward implements IReqGetMailReward {

        /**
         * Constructs a new ReqGetMailReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetMailReward);

        /** ReqGetMailReward Id. */
        public Id: number;

        /**
         * Creates a new ReqGetMailReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetMailReward instance
         */
        public static create(properties?: tutorial.IReqGetMailReward): tutorial.ReqGetMailReward;

        /**
         * Encodes the specified ReqGetMailReward message. Does not implicitly {@link tutorial.ReqGetMailReward.verify|verify} messages.
         * @param message ReqGetMailReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetMailReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetMailReward message, length delimited. Does not implicitly {@link tutorial.ReqGetMailReward.verify|verify} messages.
         * @param message ReqGetMailReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetMailReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetMailReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetMailReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetMailReward;

        /**
         * Decodes a ReqGetMailReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetMailReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetMailReward;

        /**
         * Verifies a ReqGetMailReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetMailReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetMailReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetMailReward;

        /**
         * Creates a plain object from a ReqGetMailReward message. Also converts values to other types if specified.
         * @param message ReqGetMailReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetMailReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetMailReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetMailReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetMailReward. */
    interface IResGetMailReward {

        /** ResGetMailReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGetMailReward Msg */
        Msg?: (string|null);

        /** ResGetMailReward Id */
        Id?: (number|null);
    }

    /** Represents a ResGetMailReward. */
    class ResGetMailReward implements IResGetMailReward {

        /**
         * Constructs a new ResGetMailReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetMailReward);

        /** ResGetMailReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResGetMailReward Msg. */
        public Msg: string;

        /** ResGetMailReward Id. */
        public Id: number;

        /**
         * Creates a new ResGetMailReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetMailReward instance
         */
        public static create(properties?: tutorial.IResGetMailReward): tutorial.ResGetMailReward;

        /**
         * Encodes the specified ResGetMailReward message. Does not implicitly {@link tutorial.ResGetMailReward.verify|verify} messages.
         * @param message ResGetMailReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetMailReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetMailReward message, length delimited. Does not implicitly {@link tutorial.ResGetMailReward.verify|verify} messages.
         * @param message ResGetMailReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetMailReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetMailReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetMailReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetMailReward;

        /**
         * Decodes a ResGetMailReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetMailReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetMailReward;

        /**
         * Verifies a ResGetMailReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetMailReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetMailReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetMailReward;

        /**
         * Creates a plain object from a ResGetMailReward message. Also converts values to other types if specified.
         * @param message ResGetMailReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetMailReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetMailReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetMailReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqDeleteMail. */
    interface IReqDeleteMail {

        /** ReqDeleteMail Id */
        Id?: (number|null);
    }

    /** Represents a ReqDeleteMail. */
    class ReqDeleteMail implements IReqDeleteMail {

        /**
         * Constructs a new ReqDeleteMail.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqDeleteMail);

        /** ReqDeleteMail Id. */
        public Id: number;

        /**
         * Creates a new ReqDeleteMail instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqDeleteMail instance
         */
        public static create(properties?: tutorial.IReqDeleteMail): tutorial.ReqDeleteMail;

        /**
         * Encodes the specified ReqDeleteMail message. Does not implicitly {@link tutorial.ReqDeleteMail.verify|verify} messages.
         * @param message ReqDeleteMail message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqDeleteMail, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqDeleteMail message, length delimited. Does not implicitly {@link tutorial.ReqDeleteMail.verify|verify} messages.
         * @param message ReqDeleteMail message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqDeleteMail, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqDeleteMail message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqDeleteMail
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqDeleteMail;

        /**
         * Decodes a ReqDeleteMail message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqDeleteMail
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqDeleteMail;

        /**
         * Verifies a ReqDeleteMail message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqDeleteMail message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqDeleteMail
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqDeleteMail;

        /**
         * Creates a plain object from a ReqDeleteMail message. Also converts values to other types if specified.
         * @param message ReqDeleteMail
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqDeleteMail, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqDeleteMail to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqDeleteMail
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResDeleteMail. */
    interface IResDeleteMail {

        /** ResDeleteMail Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResDeleteMail Msg */
        Msg?: (string|null);

        /** ResDeleteMail Id */
        Id?: (number|null);
    }

    /** Represents a ResDeleteMail. */
    class ResDeleteMail implements IResDeleteMail {

        /**
         * Constructs a new ResDeleteMail.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResDeleteMail);

        /** ResDeleteMail Code. */
        public Code: tutorial.RES_CODE;

        /** ResDeleteMail Msg. */
        public Msg: string;

        /** ResDeleteMail Id. */
        public Id: number;

        /**
         * Creates a new ResDeleteMail instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResDeleteMail instance
         */
        public static create(properties?: tutorial.IResDeleteMail): tutorial.ResDeleteMail;

        /**
         * Encodes the specified ResDeleteMail message. Does not implicitly {@link tutorial.ResDeleteMail.verify|verify} messages.
         * @param message ResDeleteMail message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResDeleteMail, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResDeleteMail message, length delimited. Does not implicitly {@link tutorial.ResDeleteMail.verify|verify} messages.
         * @param message ResDeleteMail message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResDeleteMail, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResDeleteMail message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResDeleteMail
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResDeleteMail;

        /**
         * Decodes a ResDeleteMail message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResDeleteMail
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResDeleteMail;

        /**
         * Verifies a ResDeleteMail message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResDeleteMail message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResDeleteMail
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResDeleteMail;

        /**
         * Creates a plain object from a ResDeleteMail message. Also converts values to other types if specified.
         * @param message ResDeleteMail
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResDeleteMail, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResDeleteMail to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResDeleteMail
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResCharge. */
    interface IResCharge {

        /** ResCharge Charge */
        Charge?: (number|null);

        /** ResCharge Total */
        Total?: (number|null);

        /** ResCharge First */
        First?: (number[]|null);

        /** ResCharge SpecialShop */
        SpecialShop?: ({ [k: string]: tutorial.IResSpecialShop }|null);

        /** ResCharge FreeShop */
        FreeShop?: (number|null);

        /** ResCharge ChessShop */
        ChessShop?: ({ [k: string]: tutorial.IResChessShop }|null);

        /** ResCharge Gift */
        Gift?: ({ [k: string]: number }|null);

        /** ResCharge Ad */
        Ad?: (boolean|null);
    }

    /** Represents a ResCharge. */
    class ResCharge implements IResCharge {

        /**
         * Constructs a new ResCharge.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResCharge);

        /** ResCharge Charge. */
        public Charge: number;

        /** ResCharge Total. */
        public Total: number;

        /** ResCharge First. */
        public First: number[];

        /** ResCharge SpecialShop. */
        public SpecialShop: { [k: string]: tutorial.IResSpecialShop };

        /** ResCharge FreeShop. */
        public FreeShop: number;

        /** ResCharge ChessShop. */
        public ChessShop: { [k: string]: tutorial.IResChessShop };

        /** ResCharge Gift. */
        public Gift: { [k: string]: number };

        /** ResCharge Ad. */
        public Ad: boolean;

        /**
         * Creates a new ResCharge instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResCharge instance
         */
        public static create(properties?: tutorial.IResCharge): tutorial.ResCharge;

        /**
         * Encodes the specified ResCharge message. Does not implicitly {@link tutorial.ResCharge.verify|verify} messages.
         * @param message ResCharge message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResCharge, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResCharge message, length delimited. Does not implicitly {@link tutorial.ResCharge.verify|verify} messages.
         * @param message ResCharge message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResCharge, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResCharge message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResCharge
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResCharge;

        /**
         * Decodes a ResCharge message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResCharge
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResCharge;

        /**
         * Verifies a ResCharge message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResCharge message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResCharge
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResCharge;

        /**
         * Creates a plain object from a ResCharge message. Also converts values to other types if specified.
         * @param message ResCharge
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResCharge, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResCharge to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResCharge
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSpecialShop. */
    interface IResSpecialShop {

        /** ResSpecialShop Grade */
        Grade?: (number|null);

        /** ResSpecialShop Count */
        Count?: (number|null);
    }

    /** Represents a ResSpecialShop. */
    class ResSpecialShop implements IResSpecialShop {

        /**
         * Constructs a new ResSpecialShop.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSpecialShop);

        /** ResSpecialShop Grade. */
        public Grade: number;

        /** ResSpecialShop Count. */
        public Count: number;

        /**
         * Creates a new ResSpecialShop instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSpecialShop instance
         */
        public static create(properties?: tutorial.IResSpecialShop): tutorial.ResSpecialShop;

        /**
         * Encodes the specified ResSpecialShop message. Does not implicitly {@link tutorial.ResSpecialShop.verify|verify} messages.
         * @param message ResSpecialShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSpecialShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSpecialShop message, length delimited. Does not implicitly {@link tutorial.ResSpecialShop.verify|verify} messages.
         * @param message ResSpecialShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSpecialShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSpecialShop message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSpecialShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSpecialShop;

        /**
         * Decodes a ResSpecialShop message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSpecialShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSpecialShop;

        /**
         * Verifies a ResSpecialShop message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSpecialShop message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSpecialShop
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSpecialShop;

        /**
         * Creates a plain object from a ResSpecialShop message. Also converts values to other types if specified.
         * @param message ResSpecialShop
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSpecialShop, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSpecialShop to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSpecialShop
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResChessShop. */
    interface IResChessShop {

        /** ResChessShop Diamond */
        Diamond?: (number|null);

        /** ResChessShop Count */
        Count?: (number|null);

        /** ResChessShop ChessId */
        ChessId?: (number|null);
    }

    /** Represents a ResChessShop. */
    class ResChessShop implements IResChessShop {

        /**
         * Constructs a new ResChessShop.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResChessShop);

        /** ResChessShop Diamond. */
        public Diamond: number;

        /** ResChessShop Count. */
        public Count: number;

        /** ResChessShop ChessId. */
        public ChessId: number;

        /**
         * Creates a new ResChessShop instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResChessShop instance
         */
        public static create(properties?: tutorial.IResChessShop): tutorial.ResChessShop;

        /**
         * Encodes the specified ResChessShop message. Does not implicitly {@link tutorial.ResChessShop.verify|verify} messages.
         * @param message ResChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResChessShop message, length delimited. Does not implicitly {@link tutorial.ResChessShop.verify|verify} messages.
         * @param message ResChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResChessShop message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResChessShop;

        /**
         * Decodes a ResChessShop message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResChessShop;

        /**
         * Verifies a ResChessShop message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResChessShop message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResChessShop
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResChessShop;

        /**
         * Creates a plain object from a ResChessShop message. Also converts values to other types if specified.
         * @param message ResChessShop
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResChessShop, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResChessShop to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResChessShop
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFreeShop. */
    interface IReqFreeShop {
    }

    /** Represents a ReqFreeShop. */
    class ReqFreeShop implements IReqFreeShop {

        /**
         * Constructs a new ReqFreeShop.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFreeShop);

        /**
         * Creates a new ReqFreeShop instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFreeShop instance
         */
        public static create(properties?: tutorial.IReqFreeShop): tutorial.ReqFreeShop;

        /**
         * Encodes the specified ReqFreeShop message. Does not implicitly {@link tutorial.ReqFreeShop.verify|verify} messages.
         * @param message ReqFreeShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFreeShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFreeShop message, length delimited. Does not implicitly {@link tutorial.ReqFreeShop.verify|verify} messages.
         * @param message ReqFreeShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFreeShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFreeShop message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFreeShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFreeShop;

        /**
         * Decodes a ReqFreeShop message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFreeShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFreeShop;

        /**
         * Verifies a ReqFreeShop message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFreeShop message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFreeShop
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFreeShop;

        /**
         * Creates a plain object from a ReqFreeShop message. Also converts values to other types if specified.
         * @param message ReqFreeShop
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFreeShop, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFreeShop to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFreeShop
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFreeShop. */
    interface IResFreeShop {

        /** ResFreeShop Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResFreeShop Msg */
        Msg?: (string|null);
    }

    /** Represents a ResFreeShop. */
    class ResFreeShop implements IResFreeShop {

        /**
         * Constructs a new ResFreeShop.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFreeShop);

        /** ResFreeShop Code. */
        public Code: tutorial.RES_CODE;

        /** ResFreeShop Msg. */
        public Msg: string;

        /**
         * Creates a new ResFreeShop instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFreeShop instance
         */
        public static create(properties?: tutorial.IResFreeShop): tutorial.ResFreeShop;

        /**
         * Encodes the specified ResFreeShop message. Does not implicitly {@link tutorial.ResFreeShop.verify|verify} messages.
         * @param message ResFreeShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFreeShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFreeShop message, length delimited. Does not implicitly {@link tutorial.ResFreeShop.verify|verify} messages.
         * @param message ResFreeShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFreeShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFreeShop message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFreeShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFreeShop;

        /**
         * Decodes a ResFreeShop message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFreeShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFreeShop;

        /**
         * Verifies a ResFreeShop message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFreeShop message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFreeShop
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFreeShop;

        /**
         * Creates a plain object from a ResFreeShop message. Also converts values to other types if specified.
         * @param message ResFreeShop
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFreeShop, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFreeShop to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFreeShop
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqBuyChessShop. */
    interface IReqBuyChessShop {

        /** ReqBuyChessShop Id */
        Id?: (number|null);
    }

    /** Represents a ReqBuyChessShop. */
    class ReqBuyChessShop implements IReqBuyChessShop {

        /**
         * Constructs a new ReqBuyChessShop.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqBuyChessShop);

        /** ReqBuyChessShop Id. */
        public Id: number;

        /**
         * Creates a new ReqBuyChessShop instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqBuyChessShop instance
         */
        public static create(properties?: tutorial.IReqBuyChessShop): tutorial.ReqBuyChessShop;

        /**
         * Encodes the specified ReqBuyChessShop message. Does not implicitly {@link tutorial.ReqBuyChessShop.verify|verify} messages.
         * @param message ReqBuyChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqBuyChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqBuyChessShop message, length delimited. Does not implicitly {@link tutorial.ReqBuyChessShop.verify|verify} messages.
         * @param message ReqBuyChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqBuyChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqBuyChessShop message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqBuyChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqBuyChessShop;

        /**
         * Decodes a ReqBuyChessShop message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqBuyChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqBuyChessShop;

        /**
         * Verifies a ReqBuyChessShop message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqBuyChessShop message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqBuyChessShop
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqBuyChessShop;

        /**
         * Creates a plain object from a ReqBuyChessShop message. Also converts values to other types if specified.
         * @param message ReqBuyChessShop
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqBuyChessShop, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqBuyChessShop to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqBuyChessShop
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResBuyChessShop. */
    interface IResBuyChessShop {

        /** ResBuyChessShop Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResBuyChessShop Msg */
        Msg?: (string|null);
    }

    /** Represents a ResBuyChessShop. */
    class ResBuyChessShop implements IResBuyChessShop {

        /**
         * Constructs a new ResBuyChessShop.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResBuyChessShop);

        /** ResBuyChessShop Code. */
        public Code: tutorial.RES_CODE;

        /** ResBuyChessShop Msg. */
        public Msg: string;

        /**
         * Creates a new ResBuyChessShop instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResBuyChessShop instance
         */
        public static create(properties?: tutorial.IResBuyChessShop): tutorial.ResBuyChessShop;

        /**
         * Encodes the specified ResBuyChessShop message. Does not implicitly {@link tutorial.ResBuyChessShop.verify|verify} messages.
         * @param message ResBuyChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResBuyChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResBuyChessShop message, length delimited. Does not implicitly {@link tutorial.ResBuyChessShop.verify|verify} messages.
         * @param message ResBuyChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResBuyChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResBuyChessShop message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResBuyChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResBuyChessShop;

        /**
         * Decodes a ResBuyChessShop message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResBuyChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResBuyChessShop;

        /**
         * Verifies a ResBuyChessShop message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResBuyChessShop message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResBuyChessShop
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResBuyChessShop;

        /**
         * Creates a plain object from a ResBuyChessShop message. Also converts values to other types if specified.
         * @param message ResBuyChessShop
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResBuyChessShop, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResBuyChessShop to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResBuyChessShop
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqBuyChessShop2. */
    interface IReqBuyChessShop2 {

        /** ReqBuyChessShop2 Id */
        Id?: (number|null);

        /** ReqBuyChessShop2 mChessData */
        mChessData?: ({ [k: string]: number }|null);
    }

    /** Represents a ReqBuyChessShop2. */
    class ReqBuyChessShop2 implements IReqBuyChessShop2 {

        /**
         * Constructs a new ReqBuyChessShop2.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqBuyChessShop2);

        /** ReqBuyChessShop2 Id. */
        public Id: number;

        /** ReqBuyChessShop2 mChessData. */
        public mChessData: { [k: string]: number };

        /**
         * Creates a new ReqBuyChessShop2 instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqBuyChessShop2 instance
         */
        public static create(properties?: tutorial.IReqBuyChessShop2): tutorial.ReqBuyChessShop2;

        /**
         * Encodes the specified ReqBuyChessShop2 message. Does not implicitly {@link tutorial.ReqBuyChessShop2.verify|verify} messages.
         * @param message ReqBuyChessShop2 message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqBuyChessShop2, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqBuyChessShop2 message, length delimited. Does not implicitly {@link tutorial.ReqBuyChessShop2.verify|verify} messages.
         * @param message ReqBuyChessShop2 message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqBuyChessShop2, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqBuyChessShop2 message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqBuyChessShop2
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqBuyChessShop2;

        /**
         * Decodes a ReqBuyChessShop2 message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqBuyChessShop2
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqBuyChessShop2;

        /**
         * Verifies a ReqBuyChessShop2 message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqBuyChessShop2 message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqBuyChessShop2
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqBuyChessShop2;

        /**
         * Creates a plain object from a ReqBuyChessShop2 message. Also converts values to other types if specified.
         * @param message ReqBuyChessShop2
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqBuyChessShop2, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqBuyChessShop2 to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqBuyChessShop2
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResBuyChessShop2. */
    interface IResBuyChessShop2 {

        /** ResBuyChessShop2 Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResBuyChessShop2 Msg */
        Msg?: (string|null);
    }

    /** Represents a ResBuyChessShop2. */
    class ResBuyChessShop2 implements IResBuyChessShop2 {

        /**
         * Constructs a new ResBuyChessShop2.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResBuyChessShop2);

        /** ResBuyChessShop2 Code. */
        public Code: tutorial.RES_CODE;

        /** ResBuyChessShop2 Msg. */
        public Msg: string;

        /**
         * Creates a new ResBuyChessShop2 instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResBuyChessShop2 instance
         */
        public static create(properties?: tutorial.IResBuyChessShop2): tutorial.ResBuyChessShop2;

        /**
         * Encodes the specified ResBuyChessShop2 message. Does not implicitly {@link tutorial.ResBuyChessShop2.verify|verify} messages.
         * @param message ResBuyChessShop2 message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResBuyChessShop2, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResBuyChessShop2 message, length delimited. Does not implicitly {@link tutorial.ResBuyChessShop2.verify|verify} messages.
         * @param message ResBuyChessShop2 message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResBuyChessShop2, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResBuyChessShop2 message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResBuyChessShop2
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResBuyChessShop2;

        /**
         * Decodes a ResBuyChessShop2 message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResBuyChessShop2
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResBuyChessShop2;

        /**
         * Verifies a ResBuyChessShop2 message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResBuyChessShop2 message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResBuyChessShop2
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResBuyChessShop2;

        /**
         * Creates a plain object from a ResBuyChessShop2 message. Also converts values to other types if specified.
         * @param message ResBuyChessShop2
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResBuyChessShop2, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResBuyChessShop2 to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResBuyChessShop2
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRefreshChessShop. */
    interface IReqRefreshChessShop {
    }

    /** Represents a ReqRefreshChessShop. */
    class ReqRefreshChessShop implements IReqRefreshChessShop {

        /**
         * Constructs a new ReqRefreshChessShop.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRefreshChessShop);

        /**
         * Creates a new ReqRefreshChessShop instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRefreshChessShop instance
         */
        public static create(properties?: tutorial.IReqRefreshChessShop): tutorial.ReqRefreshChessShop;

        /**
         * Encodes the specified ReqRefreshChessShop message. Does not implicitly {@link tutorial.ReqRefreshChessShop.verify|verify} messages.
         * @param message ReqRefreshChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRefreshChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRefreshChessShop message, length delimited. Does not implicitly {@link tutorial.ReqRefreshChessShop.verify|verify} messages.
         * @param message ReqRefreshChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRefreshChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRefreshChessShop message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRefreshChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRefreshChessShop;

        /**
         * Decodes a ReqRefreshChessShop message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRefreshChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRefreshChessShop;

        /**
         * Verifies a ReqRefreshChessShop message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRefreshChessShop message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRefreshChessShop
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRefreshChessShop;

        /**
         * Creates a plain object from a ReqRefreshChessShop message. Also converts values to other types if specified.
         * @param message ReqRefreshChessShop
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRefreshChessShop, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRefreshChessShop to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRefreshChessShop
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRefreshChessShop. */
    interface IResRefreshChessShop {

        /** ResRefreshChessShop Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResRefreshChessShop Msg */
        Msg?: (string|null);
    }

    /** Represents a ResRefreshChessShop. */
    class ResRefreshChessShop implements IResRefreshChessShop {

        /**
         * Constructs a new ResRefreshChessShop.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRefreshChessShop);

        /** ResRefreshChessShop Code. */
        public Code: tutorial.RES_CODE;

        /** ResRefreshChessShop Msg. */
        public Msg: string;

        /**
         * Creates a new ResRefreshChessShop instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRefreshChessShop instance
         */
        public static create(properties?: tutorial.IResRefreshChessShop): tutorial.ResRefreshChessShop;

        /**
         * Encodes the specified ResRefreshChessShop message. Does not implicitly {@link tutorial.ResRefreshChessShop.verify|verify} messages.
         * @param message ResRefreshChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRefreshChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRefreshChessShop message, length delimited. Does not implicitly {@link tutorial.ResRefreshChessShop.verify|verify} messages.
         * @param message ResRefreshChessShop message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRefreshChessShop, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRefreshChessShop message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRefreshChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRefreshChessShop;

        /**
         * Decodes a ResRefreshChessShop message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRefreshChessShop
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRefreshChessShop;

        /**
         * Verifies a ResRefreshChessShop message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRefreshChessShop message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRefreshChessShop
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRefreshChessShop;

        /**
         * Creates a plain object from a ResRefreshChessShop message. Also converts values to other types if specified.
         * @param message ResRefreshChessShop
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRefreshChessShop, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRefreshChessShop to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRefreshChessShop
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqEndless. */
    interface IReqEndless {
    }

    /** Represents a ReqEndless. */
    class ReqEndless implements IReqEndless {

        /**
         * Constructs a new ReqEndless.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqEndless);

        /**
         * Creates a new ReqEndless instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqEndless instance
         */
        public static create(properties?: tutorial.IReqEndless): tutorial.ReqEndless;

        /**
         * Encodes the specified ReqEndless message. Does not implicitly {@link tutorial.ReqEndless.verify|verify} messages.
         * @param message ReqEndless message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqEndless, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqEndless message, length delimited. Does not implicitly {@link tutorial.ReqEndless.verify|verify} messages.
         * @param message ReqEndless message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqEndless, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqEndless message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqEndless
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqEndless;

        /**
         * Decodes a ReqEndless message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqEndless
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqEndless;

        /**
         * Verifies a ReqEndless message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqEndless message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqEndless
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqEndless;

        /**
         * Creates a plain object from a ReqEndless message. Also converts values to other types if specified.
         * @param message ReqEndless
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqEndless, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqEndless to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqEndless
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResEndless. */
    interface IResEndless {

        /** ResEndless Id */
        Id?: (number|null);

        /** ResEndless EndlessList */
        EndlessList?: ({ [k: string]: tutorial.IResEndlessInfo }|null);
    }

    /** Represents a ResEndless. */
    class ResEndless implements IResEndless {

        /**
         * Constructs a new ResEndless.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResEndless);

        /** ResEndless Id. */
        public Id: number;

        /** ResEndless EndlessList. */
        public EndlessList: { [k: string]: tutorial.IResEndlessInfo };

        /**
         * Creates a new ResEndless instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResEndless instance
         */
        public static create(properties?: tutorial.IResEndless): tutorial.ResEndless;

        /**
         * Encodes the specified ResEndless message. Does not implicitly {@link tutorial.ResEndless.verify|verify} messages.
         * @param message ResEndless message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResEndless, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResEndless message, length delimited. Does not implicitly {@link tutorial.ResEndless.verify|verify} messages.
         * @param message ResEndless message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResEndless, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResEndless message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResEndless
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResEndless;

        /**
         * Decodes a ResEndless message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResEndless
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResEndless;

        /**
         * Verifies a ResEndless message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResEndless message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResEndless
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResEndless;

        /**
         * Creates a plain object from a ResEndless message. Also converts values to other types if specified.
         * @param message ResEndless
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResEndless, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResEndless to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResEndless
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResEndlessInfo. */
    interface IResEndlessInfo {

        /** ResEndlessInfo ChargeId */
        ChargeId?: (number|null);

        /** ResEndlessInfo Type */
        Type?: (number|null);

        /** ResEndlessInfo Items */
        Items?: (tutorial.IItemInfo[]|null);
    }

    /** Represents a ResEndlessInfo. */
    class ResEndlessInfo implements IResEndlessInfo {

        /**
         * Constructs a new ResEndlessInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResEndlessInfo);

        /** ResEndlessInfo ChargeId. */
        public ChargeId: number;

        /** ResEndlessInfo Type. */
        public Type: number;

        /** ResEndlessInfo Items. */
        public Items: tutorial.IItemInfo[];

        /**
         * Creates a new ResEndlessInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResEndlessInfo instance
         */
        public static create(properties?: tutorial.IResEndlessInfo): tutorial.ResEndlessInfo;

        /**
         * Encodes the specified ResEndlessInfo message. Does not implicitly {@link tutorial.ResEndlessInfo.verify|verify} messages.
         * @param message ResEndlessInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResEndlessInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResEndlessInfo message, length delimited. Does not implicitly {@link tutorial.ResEndlessInfo.verify|verify} messages.
         * @param message ResEndlessInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResEndlessInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResEndlessInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResEndlessInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResEndlessInfo;

        /**
         * Decodes a ResEndlessInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResEndlessInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResEndlessInfo;

        /**
         * Verifies a ResEndlessInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResEndlessInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResEndlessInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResEndlessInfo;

        /**
         * Creates a plain object from a ResEndlessInfo message. Also converts values to other types if specified.
         * @param message ResEndlessInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResEndlessInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResEndlessInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResEndlessInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqEndlessReward. */
    interface IReqEndlessReward {
    }

    /** Represents a ReqEndlessReward. */
    class ReqEndlessReward implements IReqEndlessReward {

        /**
         * Constructs a new ReqEndlessReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqEndlessReward);

        /**
         * Creates a new ReqEndlessReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqEndlessReward instance
         */
        public static create(properties?: tutorial.IReqEndlessReward): tutorial.ReqEndlessReward;

        /**
         * Encodes the specified ReqEndlessReward message. Does not implicitly {@link tutorial.ReqEndlessReward.verify|verify} messages.
         * @param message ReqEndlessReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqEndlessReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqEndlessReward message, length delimited. Does not implicitly {@link tutorial.ReqEndlessReward.verify|verify} messages.
         * @param message ReqEndlessReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqEndlessReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqEndlessReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqEndlessReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqEndlessReward;

        /**
         * Decodes a ReqEndlessReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqEndlessReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqEndlessReward;

        /**
         * Verifies a ReqEndlessReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqEndlessReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqEndlessReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqEndlessReward;

        /**
         * Creates a plain object from a ReqEndlessReward message. Also converts values to other types if specified.
         * @param message ReqEndlessReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqEndlessReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqEndlessReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqEndlessReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResEndlessReward. */
    interface IResEndlessReward {

        /** ResEndlessReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResEndlessReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResEndlessReward. */
    class ResEndlessReward implements IResEndlessReward {

        /**
         * Constructs a new ResEndlessReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResEndlessReward);

        /** ResEndlessReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResEndlessReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResEndlessReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResEndlessReward instance
         */
        public static create(properties?: tutorial.IResEndlessReward): tutorial.ResEndlessReward;

        /**
         * Encodes the specified ResEndlessReward message. Does not implicitly {@link tutorial.ResEndlessReward.verify|verify} messages.
         * @param message ResEndlessReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResEndlessReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResEndlessReward message, length delimited. Does not implicitly {@link tutorial.ResEndlessReward.verify|verify} messages.
         * @param message ResEndlessReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResEndlessReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResEndlessReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResEndlessReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResEndlessReward;

        /**
         * Decodes a ResEndlessReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResEndlessReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResEndlessReward;

        /**
         * Verifies a ResEndlessReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResEndlessReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResEndlessReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResEndlessReward;

        /**
         * Creates a plain object from a ResEndlessReward message. Also converts values to other types if specified.
         * @param message ResEndlessReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResEndlessReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResEndlessReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResEndlessReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPiggyBank. */
    interface IResPiggyBank {

        /** ResPiggyBank Type */
        Type?: (number|null);

        /** ResPiggyBank Diamond */
        Diamond?: (number|null);

        /** ResPiggyBank Count */
        Count?: (number|null);

        /** ResPiggyBank EndTime */
        EndTime?: (number|null);
    }

    /** Represents a ResPiggyBank. */
    class ResPiggyBank implements IResPiggyBank {

        /**
         * Constructs a new ResPiggyBank.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPiggyBank);

        /** ResPiggyBank Type. */
        public Type: number;

        /** ResPiggyBank Diamond. */
        public Diamond: number;

        /** ResPiggyBank Count. */
        public Count: number;

        /** ResPiggyBank EndTime. */
        public EndTime: number;

        /**
         * Creates a new ResPiggyBank instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPiggyBank instance
         */
        public static create(properties?: tutorial.IResPiggyBank): tutorial.ResPiggyBank;

        /**
         * Encodes the specified ResPiggyBank message. Does not implicitly {@link tutorial.ResPiggyBank.verify|verify} messages.
         * @param message ResPiggyBank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPiggyBank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPiggyBank message, length delimited. Does not implicitly {@link tutorial.ResPiggyBank.verify|verify} messages.
         * @param message ResPiggyBank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPiggyBank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPiggyBank message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPiggyBank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPiggyBank;

        /**
         * Decodes a ResPiggyBank message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPiggyBank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPiggyBank;

        /**
         * Verifies a ResPiggyBank message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPiggyBank message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPiggyBank
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPiggyBank;

        /**
         * Creates a plain object from a ResPiggyBank message. Also converts values to other types if specified.
         * @param message ResPiggyBank
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPiggyBank, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPiggyBank to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPiggyBank
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPiggyBankReward. */
    interface IReqPiggyBankReward {
    }

    /** Represents a ReqPiggyBankReward. */
    class ReqPiggyBankReward implements IReqPiggyBankReward {

        /**
         * Constructs a new ReqPiggyBankReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPiggyBankReward);

        /**
         * Creates a new ReqPiggyBankReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPiggyBankReward instance
         */
        public static create(properties?: tutorial.IReqPiggyBankReward): tutorial.ReqPiggyBankReward;

        /**
         * Encodes the specified ReqPiggyBankReward message. Does not implicitly {@link tutorial.ReqPiggyBankReward.verify|verify} messages.
         * @param message ReqPiggyBankReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPiggyBankReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPiggyBankReward message, length delimited. Does not implicitly {@link tutorial.ReqPiggyBankReward.verify|verify} messages.
         * @param message ReqPiggyBankReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPiggyBankReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPiggyBankReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPiggyBankReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPiggyBankReward;

        /**
         * Decodes a ReqPiggyBankReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPiggyBankReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPiggyBankReward;

        /**
         * Verifies a ReqPiggyBankReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPiggyBankReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPiggyBankReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPiggyBankReward;

        /**
         * Creates a plain object from a ReqPiggyBankReward message. Also converts values to other types if specified.
         * @param message ReqPiggyBankReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPiggyBankReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPiggyBankReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPiggyBankReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPiggyBankReward. */
    interface IResPiggyBankReward {

        /** ResPiggyBankReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPiggyBankReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResPiggyBankReward. */
    class ResPiggyBankReward implements IResPiggyBankReward {

        /**
         * Constructs a new ResPiggyBankReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPiggyBankReward);

        /** ResPiggyBankReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResPiggyBankReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResPiggyBankReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPiggyBankReward instance
         */
        public static create(properties?: tutorial.IResPiggyBankReward): tutorial.ResPiggyBankReward;

        /**
         * Encodes the specified ResPiggyBankReward message. Does not implicitly {@link tutorial.ResPiggyBankReward.verify|verify} messages.
         * @param message ResPiggyBankReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPiggyBankReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPiggyBankReward message, length delimited. Does not implicitly {@link tutorial.ResPiggyBankReward.verify|verify} messages.
         * @param message ResPiggyBankReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPiggyBankReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPiggyBankReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPiggyBankReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPiggyBankReward;

        /**
         * Decodes a ResPiggyBankReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPiggyBankReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPiggyBankReward;

        /**
         * Verifies a ResPiggyBankReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPiggyBankReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPiggyBankReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPiggyBankReward;

        /**
         * Creates a plain object from a ResPiggyBankReward message. Also converts values to other types if specified.
         * @param message ResPiggyBankReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPiggyBankReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPiggyBankReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPiggyBankReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqCreateOrderSn. */
    interface IReqCreateOrderSn {

        /** ReqCreateOrderSn ChargeId */
        ChargeId?: (number|null);

        /** ReqCreateOrderSn PlatForm */
        PlatForm?: (string|null);

        /** ReqCreateOrderSn channel */
        channel?: (string|null);
    }

    /** Represents a ReqCreateOrderSn. */
    class ReqCreateOrderSn implements IReqCreateOrderSn {

        /**
         * Constructs a new ReqCreateOrderSn.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqCreateOrderSn);

        /** ReqCreateOrderSn ChargeId. */
        public ChargeId: number;

        /** ReqCreateOrderSn PlatForm. */
        public PlatForm: string;

        /** ReqCreateOrderSn channel. */
        public channel: string;

        /**
         * Creates a new ReqCreateOrderSn instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqCreateOrderSn instance
         */
        public static create(properties?: tutorial.IReqCreateOrderSn): tutorial.ReqCreateOrderSn;

        /**
         * Encodes the specified ReqCreateOrderSn message. Does not implicitly {@link tutorial.ReqCreateOrderSn.verify|verify} messages.
         * @param message ReqCreateOrderSn message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqCreateOrderSn, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqCreateOrderSn message, length delimited. Does not implicitly {@link tutorial.ReqCreateOrderSn.verify|verify} messages.
         * @param message ReqCreateOrderSn message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqCreateOrderSn, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqCreateOrderSn message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqCreateOrderSn
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqCreateOrderSn;

        /**
         * Decodes a ReqCreateOrderSn message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqCreateOrderSn
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqCreateOrderSn;

        /**
         * Verifies a ReqCreateOrderSn message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqCreateOrderSn message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqCreateOrderSn
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqCreateOrderSn;

        /**
         * Creates a plain object from a ReqCreateOrderSn message. Also converts values to other types if specified.
         * @param message ReqCreateOrderSn
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqCreateOrderSn, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqCreateOrderSn to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqCreateOrderSn
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResCreateOrderSn. */
    interface IResCreateOrderSn {

        /** ResCreateOrderSn OrderSn */
        OrderSn?: (string|null);
    }

    /** Represents a ResCreateOrderSn. */
    class ResCreateOrderSn implements IResCreateOrderSn {

        /**
         * Constructs a new ResCreateOrderSn.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResCreateOrderSn);

        /** ResCreateOrderSn OrderSn. */
        public OrderSn: string;

        /**
         * Creates a new ResCreateOrderSn instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResCreateOrderSn instance
         */
        public static create(properties?: tutorial.IResCreateOrderSn): tutorial.ResCreateOrderSn;

        /**
         * Encodes the specified ResCreateOrderSn message. Does not implicitly {@link tutorial.ResCreateOrderSn.verify|verify} messages.
         * @param message ResCreateOrderSn message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResCreateOrderSn, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResCreateOrderSn message, length delimited. Does not implicitly {@link tutorial.ResCreateOrderSn.verify|verify} messages.
         * @param message ResCreateOrderSn message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResCreateOrderSn, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResCreateOrderSn message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResCreateOrderSn
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResCreateOrderSn;

        /**
         * Decodes a ResCreateOrderSn message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResCreateOrderSn
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResCreateOrderSn;

        /**
         * Verifies a ResCreateOrderSn message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResCreateOrderSn message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResCreateOrderSn
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResCreateOrderSn;

        /**
         * Creates a plain object from a ResCreateOrderSn message. Also converts values to other types if specified.
         * @param message ResCreateOrderSn
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResCreateOrderSn, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResCreateOrderSn to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResCreateOrderSn
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqShippingOrder. */
    interface IReqShippingOrder {

        /** ReqShippingOrder OrderSn */
        OrderSn?: (string|null);

        /** ReqShippingOrder PayOrderSn */
        PayOrderSn?: (string|null);

        /** ReqShippingOrder Status */
        Status?: (number|null);
    }

    /** Represents a ReqShippingOrder. */
    class ReqShippingOrder implements IReqShippingOrder {

        /**
         * Constructs a new ReqShippingOrder.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqShippingOrder);

        /** ReqShippingOrder OrderSn. */
        public OrderSn: string;

        /** ReqShippingOrder PayOrderSn. */
        public PayOrderSn: string;

        /** ReqShippingOrder Status. */
        public Status: number;

        /**
         * Creates a new ReqShippingOrder instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqShippingOrder instance
         */
        public static create(properties?: tutorial.IReqShippingOrder): tutorial.ReqShippingOrder;

        /**
         * Encodes the specified ReqShippingOrder message. Does not implicitly {@link tutorial.ReqShippingOrder.verify|verify} messages.
         * @param message ReqShippingOrder message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqShippingOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqShippingOrder message, length delimited. Does not implicitly {@link tutorial.ReqShippingOrder.verify|verify} messages.
         * @param message ReqShippingOrder message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqShippingOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqShippingOrder message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqShippingOrder
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqShippingOrder;

        /**
         * Decodes a ReqShippingOrder message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqShippingOrder
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqShippingOrder;

        /**
         * Verifies a ReqShippingOrder message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqShippingOrder message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqShippingOrder
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqShippingOrder;

        /**
         * Creates a plain object from a ReqShippingOrder message. Also converts values to other types if specified.
         * @param message ReqShippingOrder
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqShippingOrder, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqShippingOrder to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqShippingOrder
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResShippingOrder. */
    interface IResShippingOrder {

        /** ResShippingOrder Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResShippingOrder Msg */
        Msg?: (string|null);
    }

    /** Represents a ResShippingOrder. */
    class ResShippingOrder implements IResShippingOrder {

        /**
         * Constructs a new ResShippingOrder.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResShippingOrder);

        /** ResShippingOrder Code. */
        public Code: tutorial.RES_CODE;

        /** ResShippingOrder Msg. */
        public Msg: string;

        /**
         * Creates a new ResShippingOrder instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResShippingOrder instance
         */
        public static create(properties?: tutorial.IResShippingOrder): tutorial.ResShippingOrder;

        /**
         * Encodes the specified ResShippingOrder message. Does not implicitly {@link tutorial.ResShippingOrder.verify|verify} messages.
         * @param message ResShippingOrder message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResShippingOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResShippingOrder message, length delimited. Does not implicitly {@link tutorial.ResShippingOrder.verify|verify} messages.
         * @param message ResShippingOrder message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResShippingOrder, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResShippingOrder message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResShippingOrder
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResShippingOrder;

        /**
         * Decodes a ResShippingOrder message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResShippingOrder
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResShippingOrder;

        /**
         * Verifies a ResShippingOrder message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResShippingOrder message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResShippingOrder
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResShippingOrder;

        /**
         * Creates a plain object from a ResShippingOrder message. Also converts values to other types if specified.
         * @param message ResShippingOrder
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResShippingOrder, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResShippingOrder to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResShippingOrder
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqChampship. */
    interface IReqChampship {
    }

    /** Represents a ReqChampship. */
    class ReqChampship implements IReqChampship {

        /**
         * Constructs a new ReqChampship.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqChampship);

        /**
         * Creates a new ReqChampship instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqChampship instance
         */
        public static create(properties?: tutorial.IReqChampship): tutorial.ReqChampship;

        /**
         * Encodes the specified ReqChampship message. Does not implicitly {@link tutorial.ReqChampship.verify|verify} messages.
         * @param message ReqChampship message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqChampship, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqChampship message, length delimited. Does not implicitly {@link tutorial.ReqChampship.verify|verify} messages.
         * @param message ReqChampship message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqChampship, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqChampship message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqChampship
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqChampship;

        /**
         * Decodes a ReqChampship message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqChampship
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqChampship;

        /**
         * Verifies a ReqChampship message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqChampship message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqChampship
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqChampship;

        /**
         * Creates a plain object from a ReqChampship message. Also converts values to other types if specified.
         * @param message ReqChampship
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqChampship, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqChampship to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqChampship
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResChampship. */
    interface IResChampship {

        /** ResChampship Score */
        Score?: (number|null);

        /** ResChampship Reward */
        Reward?: (number|null);

        /** ResChampship EndTime */
        EndTime?: (number|null);

        /** ResChampship Period */
        Period?: (number|null);

        /** ResChampship Rank */
        Rank?: (number|null);

        /** ResChampship RankReward */
        RankReward?: (number|null);

        /** ResChampship Status */
        Status?: (number|null);
    }

    /** Represents a ResChampship. */
    class ResChampship implements IResChampship {

        /**
         * Constructs a new ResChampship.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResChampship);

        /** ResChampship Score. */
        public Score: number;

        /** ResChampship Reward. */
        public Reward: number;

        /** ResChampship EndTime. */
        public EndTime: number;

        /** ResChampship Period. */
        public Period: number;

        /** ResChampship Rank. */
        public Rank: number;

        /** ResChampship RankReward. */
        public RankReward: number;

        /** ResChampship Status. */
        public Status: number;

        /**
         * Creates a new ResChampship instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResChampship instance
         */
        public static create(properties?: tutorial.IResChampship): tutorial.ResChampship;

        /**
         * Encodes the specified ResChampship message. Does not implicitly {@link tutorial.ResChampship.verify|verify} messages.
         * @param message ResChampship message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResChampship, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResChampship message, length delimited. Does not implicitly {@link tutorial.ResChampship.verify|verify} messages.
         * @param message ResChampship message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResChampship, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResChampship message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResChampship
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResChampship;

        /**
         * Decodes a ResChampship message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResChampship
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResChampship;

        /**
         * Verifies a ResChampship message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResChampship message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResChampship
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResChampship;

        /**
         * Creates a plain object from a ResChampship message. Also converts values to other types if specified.
         * @param message ResChampship
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResChampship, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResChampship to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResChampship
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqChampshipReward. */
    interface IReqChampshipReward {
    }

    /** Represents a ReqChampshipReward. */
    class ReqChampshipReward implements IReqChampshipReward {

        /**
         * Constructs a new ReqChampshipReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqChampshipReward);

        /**
         * Creates a new ReqChampshipReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqChampshipReward instance
         */
        public static create(properties?: tutorial.IReqChampshipReward): tutorial.ReqChampshipReward;

        /**
         * Encodes the specified ReqChampshipReward message. Does not implicitly {@link tutorial.ReqChampshipReward.verify|verify} messages.
         * @param message ReqChampshipReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqChampshipReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqChampshipReward message, length delimited. Does not implicitly {@link tutorial.ReqChampshipReward.verify|verify} messages.
         * @param message ReqChampshipReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqChampshipReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqChampshipReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqChampshipReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqChampshipReward;

        /**
         * Decodes a ReqChampshipReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqChampshipReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqChampshipReward;

        /**
         * Verifies a ReqChampshipReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqChampshipReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqChampshipReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqChampshipReward;

        /**
         * Creates a plain object from a ReqChampshipReward message. Also converts values to other types if specified.
         * @param message ReqChampshipReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqChampshipReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqChampshipReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqChampshipReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResChampshipReward. */
    interface IResChampshipReward {

        /** ResChampshipReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResChampshipReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResChampshipReward. */
    class ResChampshipReward implements IResChampshipReward {

        /**
         * Constructs a new ResChampshipReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResChampshipReward);

        /** ResChampshipReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResChampshipReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResChampshipReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResChampshipReward instance
         */
        public static create(properties?: tutorial.IResChampshipReward): tutorial.ResChampshipReward;

        /**
         * Encodes the specified ResChampshipReward message. Does not implicitly {@link tutorial.ResChampshipReward.verify|verify} messages.
         * @param message ResChampshipReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResChampshipReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResChampshipReward message, length delimited. Does not implicitly {@link tutorial.ResChampshipReward.verify|verify} messages.
         * @param message ResChampshipReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResChampshipReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResChampshipReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResChampshipReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResChampshipReward;

        /**
         * Decodes a ResChampshipReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResChampshipReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResChampshipReward;

        /**
         * Verifies a ResChampshipReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResChampshipReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResChampshipReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResChampshipReward;

        /**
         * Creates a plain object from a ResChampshipReward message. Also converts values to other types if specified.
         * @param message ResChampshipReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResChampshipReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResChampshipReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResChampshipReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqChampshipRankReward. */
    interface IReqChampshipRankReward {
    }

    /** Represents a ReqChampshipRankReward. */
    class ReqChampshipRankReward implements IReqChampshipRankReward {

        /**
         * Constructs a new ReqChampshipRankReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqChampshipRankReward);

        /**
         * Creates a new ReqChampshipRankReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqChampshipRankReward instance
         */
        public static create(properties?: tutorial.IReqChampshipRankReward): tutorial.ReqChampshipRankReward;

        /**
         * Encodes the specified ReqChampshipRankReward message. Does not implicitly {@link tutorial.ReqChampshipRankReward.verify|verify} messages.
         * @param message ReqChampshipRankReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqChampshipRankReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqChampshipRankReward message, length delimited. Does not implicitly {@link tutorial.ReqChampshipRankReward.verify|verify} messages.
         * @param message ReqChampshipRankReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqChampshipRankReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqChampshipRankReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqChampshipRankReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqChampshipRankReward;

        /**
         * Decodes a ReqChampshipRankReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqChampshipRankReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqChampshipRankReward;

        /**
         * Verifies a ReqChampshipRankReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqChampshipRankReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqChampshipRankReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqChampshipRankReward;

        /**
         * Creates a plain object from a ReqChampshipRankReward message. Also converts values to other types if specified.
         * @param message ReqChampshipRankReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqChampshipRankReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqChampshipRankReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqChampshipRankReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResChampshipRankReward. */
    interface IResChampshipRankReward {

        /** ResChampshipRankReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResChampshipRankReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResChampshipRankReward. */
    class ResChampshipRankReward implements IResChampshipRankReward {

        /**
         * Constructs a new ResChampshipRankReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResChampshipRankReward);

        /** ResChampshipRankReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResChampshipRankReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResChampshipRankReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResChampshipRankReward instance
         */
        public static create(properties?: tutorial.IResChampshipRankReward): tutorial.ResChampshipRankReward;

        /**
         * Encodes the specified ResChampshipRankReward message. Does not implicitly {@link tutorial.ResChampshipRankReward.verify|verify} messages.
         * @param message ResChampshipRankReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResChampshipRankReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResChampshipRankReward message, length delimited. Does not implicitly {@link tutorial.ResChampshipRankReward.verify|verify} messages.
         * @param message ResChampshipRankReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResChampshipRankReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResChampshipRankReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResChampshipRankReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResChampshipRankReward;

        /**
         * Decodes a ResChampshipRankReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResChampshipRankReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResChampshipRankReward;

        /**
         * Verifies a ResChampshipRankReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResChampshipRankReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResChampshipRankReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResChampshipRankReward;

        /**
         * Creates a plain object from a ResChampshipRankReward message. Also converts values to other types if specified.
         * @param message ResChampshipRankReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResChampshipRankReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResChampshipRankReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResChampshipRankReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqChampshipRank. */
    interface IReqChampshipRank {
    }

    /** Represents a ReqChampshipRank. */
    class ReqChampshipRank implements IReqChampshipRank {

        /**
         * Constructs a new ReqChampshipRank.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqChampshipRank);

        /**
         * Creates a new ReqChampshipRank instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqChampshipRank instance
         */
        public static create(properties?: tutorial.IReqChampshipRank): tutorial.ReqChampshipRank;

        /**
         * Encodes the specified ReqChampshipRank message. Does not implicitly {@link tutorial.ReqChampshipRank.verify|verify} messages.
         * @param message ReqChampshipRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqChampshipRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqChampshipRank message, length delimited. Does not implicitly {@link tutorial.ReqChampshipRank.verify|verify} messages.
         * @param message ReqChampshipRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqChampshipRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqChampshipRank message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqChampshipRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqChampshipRank;

        /**
         * Decodes a ReqChampshipRank message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqChampshipRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqChampshipRank;

        /**
         * Verifies a ReqChampshipRank message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqChampshipRank message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqChampshipRank
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqChampshipRank;

        /**
         * Creates a plain object from a ReqChampshipRank message. Also converts values to other types if specified.
         * @param message ReqChampshipRank
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqChampshipRank, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqChampshipRank to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqChampshipRank
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResChampshipRank. */
    interface IResChampshipRank {

        /** ResChampshipRank RankList */
        RankList?: ({ [k: string]: tutorial.IResPlayerRank }|null);

        /** ResChampshipRank MyRank */
        MyRank?: (number|null);

        /** ResChampshipRank MyScore */
        MyScore?: (number|null);
    }

    /** Represents a ResChampshipRank. */
    class ResChampshipRank implements IResChampshipRank {

        /**
         * Constructs a new ResChampshipRank.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResChampshipRank);

        /** ResChampshipRank RankList. */
        public RankList: { [k: string]: tutorial.IResPlayerRank };

        /** ResChampshipRank MyRank. */
        public MyRank: number;

        /** ResChampshipRank MyScore. */
        public MyScore: number;

        /**
         * Creates a new ResChampshipRank instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResChampshipRank instance
         */
        public static create(properties?: tutorial.IResChampshipRank): tutorial.ResChampshipRank;

        /**
         * Encodes the specified ResChampshipRank message. Does not implicitly {@link tutorial.ResChampshipRank.verify|verify} messages.
         * @param message ResChampshipRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResChampshipRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResChampshipRank message, length delimited. Does not implicitly {@link tutorial.ResChampshipRank.verify|verify} messages.
         * @param message ResChampshipRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResChampshipRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResChampshipRank message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResChampshipRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResChampshipRank;

        /**
         * Decodes a ResChampshipRank message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResChampshipRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResChampshipRank;

        /**
         * Verifies a ResChampshipRank message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResChampshipRank message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResChampshipRank
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResChampshipRank;

        /**
         * Creates a plain object from a ResChampshipRank message. Also converts values to other types if specified.
         * @param message ResChampshipRank
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResChampshipRank, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResChampshipRank to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResChampshipRank
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqChampshipPreRank. */
    interface IReqChampshipPreRank {
    }

    /** Represents a ReqChampshipPreRank. */
    class ReqChampshipPreRank implements IReqChampshipPreRank {

        /**
         * Constructs a new ReqChampshipPreRank.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqChampshipPreRank);

        /**
         * Creates a new ReqChampshipPreRank instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqChampshipPreRank instance
         */
        public static create(properties?: tutorial.IReqChampshipPreRank): tutorial.ReqChampshipPreRank;

        /**
         * Encodes the specified ReqChampshipPreRank message. Does not implicitly {@link tutorial.ReqChampshipPreRank.verify|verify} messages.
         * @param message ReqChampshipPreRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqChampshipPreRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqChampshipPreRank message, length delimited. Does not implicitly {@link tutorial.ReqChampshipPreRank.verify|verify} messages.
         * @param message ReqChampshipPreRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqChampshipPreRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqChampshipPreRank message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqChampshipPreRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqChampshipPreRank;

        /**
         * Decodes a ReqChampshipPreRank message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqChampshipPreRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqChampshipPreRank;

        /**
         * Verifies a ReqChampshipPreRank message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqChampshipPreRank message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqChampshipPreRank
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqChampshipPreRank;

        /**
         * Creates a plain object from a ReqChampshipPreRank message. Also converts values to other types if specified.
         * @param message ReqChampshipPreRank
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqChampshipPreRank, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqChampshipPreRank to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqChampshipPreRank
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResChampshipPreRank. */
    interface IResChampshipPreRank {

        /** ResChampshipPreRank RankList */
        RankList?: ({ [k: string]: tutorial.IResPlayerRank }|null);

        /** ResChampshipPreRank MyRank */
        MyRank?: (number|null);

        /** ResChampshipPreRank MyScore */
        MyScore?: (number|null);
    }

    /** Represents a ResChampshipPreRank. */
    class ResChampshipPreRank implements IResChampshipPreRank {

        /**
         * Constructs a new ResChampshipPreRank.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResChampshipPreRank);

        /** ResChampshipPreRank RankList. */
        public RankList: { [k: string]: tutorial.IResPlayerRank };

        /** ResChampshipPreRank MyRank. */
        public MyRank: number;

        /** ResChampshipPreRank MyScore. */
        public MyScore: number;

        /**
         * Creates a new ResChampshipPreRank instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResChampshipPreRank instance
         */
        public static create(properties?: tutorial.IResChampshipPreRank): tutorial.ResChampshipPreRank;

        /**
         * Encodes the specified ResChampshipPreRank message. Does not implicitly {@link tutorial.ResChampshipPreRank.verify|verify} messages.
         * @param message ResChampshipPreRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResChampshipPreRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResChampshipPreRank message, length delimited. Does not implicitly {@link tutorial.ResChampshipPreRank.verify|verify} messages.
         * @param message ResChampshipPreRank message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResChampshipPreRank, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResChampshipPreRank message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResChampshipPreRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResChampshipPreRank;

        /**
         * Decodes a ResChampshipPreRank message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResChampshipPreRank
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResChampshipPreRank;

        /**
         * Verifies a ResChampshipPreRank message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResChampshipPreRank message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResChampshipPreRank
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResChampshipPreRank;

        /**
         * Creates a plain object from a ResChampshipPreRank message. Also converts values to other types if specified.
         * @param message ResChampshipPreRank
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResChampshipPreRank, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResChampshipPreRank to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResChampshipPreRank
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResNotifyCard. */
    interface IResNotifyCard {

        /** ResNotifyCard Card */
        Card?: ({ [k: string]: number }|null);

        /** ResNotifyCard Master */
        Master?: ({ [k: string]: number }|null);

        /** ResNotifyCard ExStar */
        ExStar?: (number|null);
    }

    /** Represents a ResNotifyCard. */
    class ResNotifyCard implements IResNotifyCard {

        /**
         * Constructs a new ResNotifyCard.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResNotifyCard);

        /** ResNotifyCard Card. */
        public Card: { [k: string]: number };

        /** ResNotifyCard Master. */
        public Master: { [k: string]: number };

        /** ResNotifyCard ExStar. */
        public ExStar: number;

        /**
         * Creates a new ResNotifyCard instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResNotifyCard instance
         */
        public static create(properties?: tutorial.IResNotifyCard): tutorial.ResNotifyCard;

        /**
         * Encodes the specified ResNotifyCard message. Does not implicitly {@link tutorial.ResNotifyCard.verify|verify} messages.
         * @param message ResNotifyCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResNotifyCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResNotifyCard message, length delimited. Does not implicitly {@link tutorial.ResNotifyCard.verify|verify} messages.
         * @param message ResNotifyCard message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResNotifyCard, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResNotifyCard message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResNotifyCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResNotifyCard;

        /**
         * Decodes a ResNotifyCard message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResNotifyCard
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResNotifyCard;

        /**
         * Verifies a ResNotifyCard message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResNotifyCard message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResNotifyCard
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResNotifyCard;

        /**
         * Creates a plain object from a ResNotifyCard message. Also converts values to other types if specified.
         * @param message ResNotifyCard
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResNotifyCard, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResNotifyCard to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResNotifyCard
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSetFacebookUrl. */
    interface IReqSetFacebookUrl {

        /** ReqSetFacebookUrl Url */
        Url?: (string|null);
    }

    /** Represents a ReqSetFacebookUrl. */
    class ReqSetFacebookUrl implements IReqSetFacebookUrl {

        /**
         * Constructs a new ReqSetFacebookUrl.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSetFacebookUrl);

        /** ReqSetFacebookUrl Url. */
        public Url: string;

        /**
         * Creates a new ReqSetFacebookUrl instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSetFacebookUrl instance
         */
        public static create(properties?: tutorial.IReqSetFacebookUrl): tutorial.ReqSetFacebookUrl;

        /**
         * Encodes the specified ReqSetFacebookUrl message. Does not implicitly {@link tutorial.ReqSetFacebookUrl.verify|verify} messages.
         * @param message ReqSetFacebookUrl message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSetFacebookUrl, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSetFacebookUrl message, length delimited. Does not implicitly {@link tutorial.ReqSetFacebookUrl.verify|verify} messages.
         * @param message ReqSetFacebookUrl message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSetFacebookUrl, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSetFacebookUrl message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSetFacebookUrl
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSetFacebookUrl;

        /**
         * Decodes a ReqSetFacebookUrl message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSetFacebookUrl
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSetFacebookUrl;

        /**
         * Verifies a ReqSetFacebookUrl message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSetFacebookUrl message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSetFacebookUrl
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSetFacebookUrl;

        /**
         * Creates a plain object from a ReqSetFacebookUrl message. Also converts values to other types if specified.
         * @param message ReqSetFacebookUrl
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSetFacebookUrl, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSetFacebookUrl to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSetFacebookUrl
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSetFacebookUrl. */
    interface IResSetFacebookUrl {

        /** ResSetFacebookUrl Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResSetFacebookUrl Msg */
        Msg?: (string|null);
    }

    /** Represents a ResSetFacebookUrl. */
    class ResSetFacebookUrl implements IResSetFacebookUrl {

        /**
         * Constructs a new ResSetFacebookUrl.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSetFacebookUrl);

        /** ResSetFacebookUrl Code. */
        public Code: tutorial.RES_CODE;

        /** ResSetFacebookUrl Msg. */
        public Msg: string;

        /**
         * Creates a new ResSetFacebookUrl instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSetFacebookUrl instance
         */
        public static create(properties?: tutorial.IResSetFacebookUrl): tutorial.ResSetFacebookUrl;

        /**
         * Encodes the specified ResSetFacebookUrl message. Does not implicitly {@link tutorial.ResSetFacebookUrl.verify|verify} messages.
         * @param message ResSetFacebookUrl message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSetFacebookUrl, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSetFacebookUrl message, length delimited. Does not implicitly {@link tutorial.ResSetFacebookUrl.verify|verify} messages.
         * @param message ResSetFacebookUrl message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSetFacebookUrl, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSetFacebookUrl message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSetFacebookUrl
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSetFacebookUrl;

        /**
         * Decodes a ResSetFacebookUrl message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSetFacebookUrl
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSetFacebookUrl;

        /**
         * Verifies a ResSetFacebookUrl message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSetFacebookUrl message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSetFacebookUrl
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSetFacebookUrl;

        /**
         * Creates a plain object from a ResSetFacebookUrl message. Also converts values to other types if specified.
         * @param message ResSetFacebookUrl
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSetFacebookUrl, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSetFacebookUrl to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSetFacebookUrl
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqInviteFriendData. */
    interface IReqInviteFriendData {

        /** ReqInviteFriendData dwUin */
        dwUin?: (number|null);
    }

    /** Represents a ReqInviteFriendData. */
    class ReqInviteFriendData implements IReqInviteFriendData {

        /**
         * Constructs a new ReqInviteFriendData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqInviteFriendData);

        /** ReqInviteFriendData dwUin. */
        public dwUin: number;

        /**
         * Creates a new ReqInviteFriendData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqInviteFriendData instance
         */
        public static create(properties?: tutorial.IReqInviteFriendData): tutorial.ReqInviteFriendData;

        /**
         * Encodes the specified ReqInviteFriendData message. Does not implicitly {@link tutorial.ReqInviteFriendData.verify|verify} messages.
         * @param message ReqInviteFriendData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqInviteFriendData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqInviteFriendData message, length delimited. Does not implicitly {@link tutorial.ReqInviteFriendData.verify|verify} messages.
         * @param message ReqInviteFriendData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqInviteFriendData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqInviteFriendData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqInviteFriendData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqInviteFriendData;

        /**
         * Decodes a ReqInviteFriendData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqInviteFriendData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqInviteFriendData;

        /**
         * Verifies a ReqInviteFriendData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqInviteFriendData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqInviteFriendData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqInviteFriendData;

        /**
         * Creates a plain object from a ReqInviteFriendData message. Also converts values to other types if specified.
         * @param message ReqInviteFriendData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqInviteFriendData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqInviteFriendData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqInviteFriendData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResInviteFriendData. */
    interface IResInviteFriendData {

        /** ResInviteFriendData IdLists */
        IdLists?: (number[]|null);

        /** ResInviteFriendData GetIndex */
        GetIndex?: (number|null);
    }

    /** Represents a ResInviteFriendData. */
    class ResInviteFriendData implements IResInviteFriendData {

        /**
         * Constructs a new ResInviteFriendData.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResInviteFriendData);

        /** ResInviteFriendData IdLists. */
        public IdLists: number[];

        /** ResInviteFriendData GetIndex. */
        public GetIndex: number;

        /**
         * Creates a new ResInviteFriendData instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResInviteFriendData instance
         */
        public static create(properties?: tutorial.IResInviteFriendData): tutorial.ResInviteFriendData;

        /**
         * Encodes the specified ResInviteFriendData message. Does not implicitly {@link tutorial.ResInviteFriendData.verify|verify} messages.
         * @param message ResInviteFriendData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResInviteFriendData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResInviteFriendData message, length delimited. Does not implicitly {@link tutorial.ResInviteFriendData.verify|verify} messages.
         * @param message ResInviteFriendData message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResInviteFriendData, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResInviteFriendData message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResInviteFriendData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResInviteFriendData;

        /**
         * Decodes a ResInviteFriendData message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResInviteFriendData
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResInviteFriendData;

        /**
         * Verifies a ResInviteFriendData message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResInviteFriendData message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResInviteFriendData
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResInviteFriendData;

        /**
         * Creates a plain object from a ResInviteFriendData message. Also converts values to other types if specified.
         * @param message ResInviteFriendData
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResInviteFriendData, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResInviteFriendData to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResInviteFriendData
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqSelfInvited. */
    interface IReqSelfInvited {

        /** ReqSelfInvited InviterId */
        InviterId?: (number|null);
    }

    /** Represents a ReqSelfInvited. */
    class ReqSelfInvited implements IReqSelfInvited {

        /**
         * Constructs a new ReqSelfInvited.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqSelfInvited);

        /** ReqSelfInvited InviterId. */
        public InviterId: number;

        /**
         * Creates a new ReqSelfInvited instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqSelfInvited instance
         */
        public static create(properties?: tutorial.IReqSelfInvited): tutorial.ReqSelfInvited;

        /**
         * Encodes the specified ReqSelfInvited message. Does not implicitly {@link tutorial.ReqSelfInvited.verify|verify} messages.
         * @param message ReqSelfInvited message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqSelfInvited, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqSelfInvited message, length delimited. Does not implicitly {@link tutorial.ReqSelfInvited.verify|verify} messages.
         * @param message ReqSelfInvited message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqSelfInvited, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqSelfInvited message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqSelfInvited
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqSelfInvited;

        /**
         * Decodes a ReqSelfInvited message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqSelfInvited
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqSelfInvited;

        /**
         * Verifies a ReqSelfInvited message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqSelfInvited message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqSelfInvited
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqSelfInvited;

        /**
         * Creates a plain object from a ReqSelfInvited message. Also converts values to other types if specified.
         * @param message ReqSelfInvited
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqSelfInvited, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqSelfInvited to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqSelfInvited
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResSelfInvited. */
    interface IResSelfInvited {

        /** ResSelfInvited ResultCode */
        ResultCode?: (number|null);
    }

    /** Represents a ResSelfInvited. */
    class ResSelfInvited implements IResSelfInvited {

        /**
         * Constructs a new ResSelfInvited.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResSelfInvited);

        /** ResSelfInvited ResultCode. */
        public ResultCode: number;

        /**
         * Creates a new ResSelfInvited instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResSelfInvited instance
         */
        public static create(properties?: tutorial.IResSelfInvited): tutorial.ResSelfInvited;

        /**
         * Encodes the specified ResSelfInvited message. Does not implicitly {@link tutorial.ResSelfInvited.verify|verify} messages.
         * @param message ResSelfInvited message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResSelfInvited, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResSelfInvited message, length delimited. Does not implicitly {@link tutorial.ResSelfInvited.verify|verify} messages.
         * @param message ResSelfInvited message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResSelfInvited, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResSelfInvited message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResSelfInvited
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResSelfInvited;

        /**
         * Decodes a ResSelfInvited message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResSelfInvited
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResSelfInvited;

        /**
         * Verifies a ResSelfInvited message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResSelfInvited message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResSelfInvited
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResSelfInvited;

        /**
         * Creates a plain object from a ResSelfInvited message. Also converts values to other types if specified.
         * @param message ResSelfInvited
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResSelfInvited, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResSelfInvited to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResSelfInvited
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NotifyInvitedSuccess. */
    interface INotifyInvitedSuccess {

        /** NotifyInvitedSuccess ResultCode */
        ResultCode?: (number|null);

        /** NotifyInvitedSuccess IdLists */
        IdLists?: (number[]|null);
    }

    /** Represents a NotifyInvitedSuccess. */
    class NotifyInvitedSuccess implements INotifyInvitedSuccess {

        /**
         * Constructs a new NotifyInvitedSuccess.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INotifyInvitedSuccess);

        /** NotifyInvitedSuccess ResultCode. */
        public ResultCode: number;

        /** NotifyInvitedSuccess IdLists. */
        public IdLists: number[];

        /**
         * Creates a new NotifyInvitedSuccess instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NotifyInvitedSuccess instance
         */
        public static create(properties?: tutorial.INotifyInvitedSuccess): tutorial.NotifyInvitedSuccess;

        /**
         * Encodes the specified NotifyInvitedSuccess message. Does not implicitly {@link tutorial.NotifyInvitedSuccess.verify|verify} messages.
         * @param message NotifyInvitedSuccess message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INotifyInvitedSuccess, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NotifyInvitedSuccess message, length delimited. Does not implicitly {@link tutorial.NotifyInvitedSuccess.verify|verify} messages.
         * @param message NotifyInvitedSuccess message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INotifyInvitedSuccess, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NotifyInvitedSuccess message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NotifyInvitedSuccess
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NotifyInvitedSuccess;

        /**
         * Decodes a NotifyInvitedSuccess message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NotifyInvitedSuccess
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NotifyInvitedSuccess;

        /**
         * Verifies a NotifyInvitedSuccess message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NotifyInvitedSuccess message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NotifyInvitedSuccess
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NotifyInvitedSuccess;

        /**
         * Creates a plain object from a NotifyInvitedSuccess message. Also converts values to other types if specified.
         * @param message NotifyInvitedSuccess
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NotifyInvitedSuccess, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NotifyInvitedSuccess to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NotifyInvitedSuccess
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGetInviteReward. */
    interface IReqGetInviteReward {

        /** ReqGetInviteReward GetIndex */
        GetIndex?: (number|null);
    }

    /** Represents a ReqGetInviteReward. */
    class ReqGetInviteReward implements IReqGetInviteReward {

        /**
         * Constructs a new ReqGetInviteReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGetInviteReward);

        /** ReqGetInviteReward GetIndex. */
        public GetIndex: number;

        /**
         * Creates a new ReqGetInviteReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGetInviteReward instance
         */
        public static create(properties?: tutorial.IReqGetInviteReward): tutorial.ReqGetInviteReward;

        /**
         * Encodes the specified ReqGetInviteReward message. Does not implicitly {@link tutorial.ReqGetInviteReward.verify|verify} messages.
         * @param message ReqGetInviteReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGetInviteReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGetInviteReward message, length delimited. Does not implicitly {@link tutorial.ReqGetInviteReward.verify|verify} messages.
         * @param message ReqGetInviteReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGetInviteReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGetInviteReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGetInviteReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGetInviteReward;

        /**
         * Decodes a ReqGetInviteReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGetInviteReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGetInviteReward;

        /**
         * Verifies a ReqGetInviteReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGetInviteReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGetInviteReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGetInviteReward;

        /**
         * Creates a plain object from a ReqGetInviteReward message. Also converts values to other types if specified.
         * @param message ReqGetInviteReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGetInviteReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGetInviteReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGetInviteReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGetInviteReward. */
    interface IResGetInviteReward {

        /** ResGetInviteReward ResultCode */
        ResultCode?: (number|null);
    }

    /** Represents a ResGetInviteReward. */
    class ResGetInviteReward implements IResGetInviteReward {

        /**
         * Constructs a new ResGetInviteReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGetInviteReward);

        /** ResGetInviteReward ResultCode. */
        public ResultCode: number;

        /**
         * Creates a new ResGetInviteReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGetInviteReward instance
         */
        public static create(properties?: tutorial.IResGetInviteReward): tutorial.ResGetInviteReward;

        /**
         * Encodes the specified ResGetInviteReward message. Does not implicitly {@link tutorial.ResGetInviteReward.verify|verify} messages.
         * @param message ResGetInviteReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGetInviteReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGetInviteReward message, length delimited. Does not implicitly {@link tutorial.ResGetInviteReward.verify|verify} messages.
         * @param message ResGetInviteReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGetInviteReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGetInviteReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGetInviteReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGetInviteReward;

        /**
         * Decodes a ResGetInviteReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGetInviteReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGetInviteReward;

        /**
         * Verifies a ResGetInviteReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGetInviteReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGetInviteReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGetInviteReward;

        /**
         * Creates a plain object from a ResGetInviteReward message. Also converts values to other types if specified.
         * @param message ResGetInviteReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGetInviteReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGetInviteReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGetInviteReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqAutoAddInviteFriend. */
    interface IReqAutoAddInviteFriend {

        /** ReqAutoAddInviteFriend id */
        id?: (number|null);
    }

    /** Represents a ReqAutoAddInviteFriend. */
    class ReqAutoAddInviteFriend implements IReqAutoAddInviteFriend {

        /**
         * Constructs a new ReqAutoAddInviteFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqAutoAddInviteFriend);

        /** ReqAutoAddInviteFriend id. */
        public id: number;

        /**
         * Creates a new ReqAutoAddInviteFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqAutoAddInviteFriend instance
         */
        public static create(properties?: tutorial.IReqAutoAddInviteFriend): tutorial.ReqAutoAddInviteFriend;

        /**
         * Encodes the specified ReqAutoAddInviteFriend message. Does not implicitly {@link tutorial.ReqAutoAddInviteFriend.verify|verify} messages.
         * @param message ReqAutoAddInviteFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqAutoAddInviteFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqAutoAddInviteFriend message, length delimited. Does not implicitly {@link tutorial.ReqAutoAddInviteFriend.verify|verify} messages.
         * @param message ReqAutoAddInviteFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqAutoAddInviteFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqAutoAddInviteFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqAutoAddInviteFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqAutoAddInviteFriend;

        /**
         * Decodes a ReqAutoAddInviteFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqAutoAddInviteFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqAutoAddInviteFriend;

        /**
         * Verifies a ReqAutoAddInviteFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqAutoAddInviteFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqAutoAddInviteFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqAutoAddInviteFriend;

        /**
         * Creates a plain object from a ReqAutoAddInviteFriend message. Also converts values to other types if specified.
         * @param message ReqAutoAddInviteFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqAutoAddInviteFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqAutoAddInviteFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqAutoAddInviteFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResAutoAddInviteFriend. */
    interface IResAutoAddInviteFriend {

        /** ResAutoAddInviteFriend ResultCode */
        ResultCode?: (number|null);
    }

    /** Represents a ResAutoAddInviteFriend. */
    class ResAutoAddInviteFriend implements IResAutoAddInviteFriend {

        /**
         * Constructs a new ResAutoAddInviteFriend.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResAutoAddInviteFriend);

        /** ResAutoAddInviteFriend ResultCode. */
        public ResultCode: number;

        /**
         * Creates a new ResAutoAddInviteFriend instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResAutoAddInviteFriend instance
         */
        public static create(properties?: tutorial.IResAutoAddInviteFriend): tutorial.ResAutoAddInviteFriend;

        /**
         * Encodes the specified ResAutoAddInviteFriend message. Does not implicitly {@link tutorial.ResAutoAddInviteFriend.verify|verify} messages.
         * @param message ResAutoAddInviteFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResAutoAddInviteFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResAutoAddInviteFriend message, length delimited. Does not implicitly {@link tutorial.ResAutoAddInviteFriend.verify|verify} messages.
         * @param message ResAutoAddInviteFriend message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResAutoAddInviteFriend, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResAutoAddInviteFriend message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResAutoAddInviteFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResAutoAddInviteFriend;

        /**
         * Decodes a ResAutoAddInviteFriend message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResAutoAddInviteFriend
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResAutoAddInviteFriend;

        /**
         * Verifies a ResAutoAddInviteFriend message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResAutoAddInviteFriend message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResAutoAddInviteFriend
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResAutoAddInviteFriend;

        /**
         * Creates a plain object from a ResAutoAddInviteFriend message. Also converts values to other types if specified.
         * @param message ResAutoAddInviteFriend
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResAutoAddInviteFriend, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResAutoAddInviteFriend to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResAutoAddInviteFriend
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqMining. */
    interface IReqMining {
    }

    /** Represents a ReqMining. */
    class ReqMining implements IReqMining {

        /**
         * Constructs a new ReqMining.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqMining);

        /**
         * Creates a new ReqMining instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqMining instance
         */
        public static create(properties?: tutorial.IReqMining): tutorial.ReqMining;

        /**
         * Encodes the specified ReqMining message. Does not implicitly {@link tutorial.ReqMining.verify|verify} messages.
         * @param message ReqMining message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqMining, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqMining message, length delimited. Does not implicitly {@link tutorial.ReqMining.verify|verify} messages.
         * @param message ReqMining message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqMining, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqMining message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqMining
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqMining;

        /**
         * Decodes a ReqMining message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqMining
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqMining;

        /**
         * Verifies a ReqMining message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqMining message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqMining
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqMining;

        /**
         * Creates a plain object from a ReqMining message. Also converts values to other types if specified.
         * @param message ReqMining
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqMining, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqMining to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqMining
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResMining. */
    interface IResMining {

        /** ResMining Id */
        Id?: (number|null);

        /** ResMining Status */
        Status?: (number|null);

        /** ResMining EndTime */
        EndTime?: (number|null);

        /** ResMining Template */
        Template?: (number|null);

        /** ResMining Pass */
        Pass?: (number|null);

        /** ResMining Gem */
        Gem?: (number[]|null);

        /** ResMining Map */
        Map?: ({ [k: string]: string }|null);

        /** ResMining Mining */
        Mining?: (number|null);
    }

    /** Represents a ResMining. */
    class ResMining implements IResMining {

        /**
         * Constructs a new ResMining.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResMining);

        /** ResMining Id. */
        public Id: number;

        /** ResMining Status. */
        public Status: number;

        /** ResMining EndTime. */
        public EndTime: number;

        /** ResMining Template. */
        public Template: number;

        /** ResMining Pass. */
        public Pass: number;

        /** ResMining Gem. */
        public Gem: number[];

        /** ResMining Map. */
        public Map: { [k: string]: string };

        /** ResMining Mining. */
        public Mining: number;

        /**
         * Creates a new ResMining instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResMining instance
         */
        public static create(properties?: tutorial.IResMining): tutorial.ResMining;

        /**
         * Encodes the specified ResMining message. Does not implicitly {@link tutorial.ResMining.verify|verify} messages.
         * @param message ResMining message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResMining, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResMining message, length delimited. Does not implicitly {@link tutorial.ResMining.verify|verify} messages.
         * @param message ResMining message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResMining, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResMining message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResMining
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResMining;

        /**
         * Decodes a ResMining message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResMining
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResMining;

        /**
         * Verifies a ResMining message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResMining message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResMining
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResMining;

        /**
         * Creates a plain object from a ResMining message. Also converts values to other types if specified.
         * @param message ResMining
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResMining, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResMining to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResMining
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqMiningTake. */
    interface IReqMiningTake {

        /** ReqMiningTake Map */
        Map?: ({ [k: string]: string }|null);

        /** ReqMiningTake Gem */
        Gem?: (number|null);
    }

    /** Represents a ReqMiningTake. */
    class ReqMiningTake implements IReqMiningTake {

        /**
         * Constructs a new ReqMiningTake.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqMiningTake);

        /** ReqMiningTake Map. */
        public Map: { [k: string]: string };

        /** ReqMiningTake Gem. */
        public Gem: number;

        /**
         * Creates a new ReqMiningTake instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqMiningTake instance
         */
        public static create(properties?: tutorial.IReqMiningTake): tutorial.ReqMiningTake;

        /**
         * Encodes the specified ReqMiningTake message. Does not implicitly {@link tutorial.ReqMiningTake.verify|verify} messages.
         * @param message ReqMiningTake message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqMiningTake, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqMiningTake message, length delimited. Does not implicitly {@link tutorial.ReqMiningTake.verify|verify} messages.
         * @param message ReqMiningTake message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqMiningTake, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqMiningTake message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqMiningTake
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqMiningTake;

        /**
         * Decodes a ReqMiningTake message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqMiningTake
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqMiningTake;

        /**
         * Verifies a ReqMiningTake message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqMiningTake message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqMiningTake
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqMiningTake;

        /**
         * Creates a plain object from a ReqMiningTake message. Also converts values to other types if specified.
         * @param message ReqMiningTake
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqMiningTake, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqMiningTake to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqMiningTake
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResMiningTake. */
    interface IResMiningTake {

        /** ResMiningTake Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResMiningTake Msg */
        Msg?: (string|null);
    }

    /** Represents a ResMiningTake. */
    class ResMiningTake implements IResMiningTake {

        /**
         * Constructs a new ResMiningTake.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResMiningTake);

        /** ResMiningTake Code. */
        public Code: tutorial.RES_CODE;

        /** ResMiningTake Msg. */
        public Msg: string;

        /**
         * Creates a new ResMiningTake instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResMiningTake instance
         */
        public static create(properties?: tutorial.IResMiningTake): tutorial.ResMiningTake;

        /**
         * Encodes the specified ResMiningTake message. Does not implicitly {@link tutorial.ResMiningTake.verify|verify} messages.
         * @param message ResMiningTake message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResMiningTake, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResMiningTake message, length delimited. Does not implicitly {@link tutorial.ResMiningTake.verify|verify} messages.
         * @param message ResMiningTake message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResMiningTake, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResMiningTake message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResMiningTake
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResMiningTake;

        /**
         * Decodes a ResMiningTake message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResMiningTake
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResMiningTake;

        /**
         * Verifies a ResMiningTake message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResMiningTake message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResMiningTake
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResMiningTake;

        /**
         * Creates a plain object from a ResMiningTake message. Also converts values to other types if specified.
         * @param message ResMiningTake
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResMiningTake, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResMiningTake to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResMiningTake
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqMiningReward. */
    interface IReqMiningReward {
    }

    /** Represents a ReqMiningReward. */
    class ReqMiningReward implements IReqMiningReward {

        /**
         * Constructs a new ReqMiningReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqMiningReward);

        /**
         * Creates a new ReqMiningReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqMiningReward instance
         */
        public static create(properties?: tutorial.IReqMiningReward): tutorial.ReqMiningReward;

        /**
         * Encodes the specified ReqMiningReward message. Does not implicitly {@link tutorial.ReqMiningReward.verify|verify} messages.
         * @param message ReqMiningReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqMiningReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqMiningReward message, length delimited. Does not implicitly {@link tutorial.ReqMiningReward.verify|verify} messages.
         * @param message ReqMiningReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqMiningReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqMiningReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqMiningReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqMiningReward;

        /**
         * Decodes a ReqMiningReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqMiningReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqMiningReward;

        /**
         * Verifies a ReqMiningReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqMiningReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqMiningReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqMiningReward;

        /**
         * Creates a plain object from a ReqMiningReward message. Also converts values to other types if specified.
         * @param message ReqMiningReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqMiningReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqMiningReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqMiningReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResMiningReward. */
    interface IResMiningReward {

        /** ResMiningReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResMiningReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResMiningReward. */
    class ResMiningReward implements IResMiningReward {

        /**
         * Constructs a new ResMiningReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResMiningReward);

        /** ResMiningReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResMiningReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResMiningReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResMiningReward instance
         */
        public static create(properties?: tutorial.IResMiningReward): tutorial.ResMiningReward;

        /**
         * Encodes the specified ResMiningReward message. Does not implicitly {@link tutorial.ResMiningReward.verify|verify} messages.
         * @param message ResMiningReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResMiningReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResMiningReward message, length delimited. Does not implicitly {@link tutorial.ResMiningReward.verify|verify} messages.
         * @param message ResMiningReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResMiningReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResMiningReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResMiningReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResMiningReward;

        /**
         * Decodes a ResMiningReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResMiningReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResMiningReward;

        /**
         * Verifies a ResMiningReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResMiningReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResMiningReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResMiningReward;

        /**
         * Creates a plain object from a ResMiningReward message. Also converts values to other types if specified.
         * @param message ResMiningReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResMiningReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResMiningReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResMiningReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResActRed. */
    interface IResActRed {

        /** ResActRed Red */
        Red?: ({ [k: string]: number }|null);
    }

    /** Represents a ResActRed. */
    class ResActRed implements IResActRed {

        /**
         * Constructs a new ResActRed.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResActRed);

        /** ResActRed Red. */
        public Red: { [k: string]: number };

        /**
         * Creates a new ResActRed instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResActRed instance
         */
        public static create(properties?: tutorial.IResActRed): tutorial.ResActRed;

        /**
         * Encodes the specified ResActRed message. Does not implicitly {@link tutorial.ResActRed.verify|verify} messages.
         * @param message ResActRed message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResActRed, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResActRed message, length delimited. Does not implicitly {@link tutorial.ResActRed.verify|verify} messages.
         * @param message ResActRed message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResActRed, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResActRed message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResActRed
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResActRed;

        /**
         * Decodes a ResActRed message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResActRed
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResActRed;

        /**
         * Verifies a ResActRed message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResActRed message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResActRed
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResActRed;

        /**
         * Creates a plain object from a ResActRed message. Also converts values to other types if specified.
         * @param message ResActRed
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResActRed, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResActRed to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResActRed
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NotifyActRed. */
    interface INotifyActRed {

        /** NotifyActRed Id */
        Id?: (number|null);

        /** NotifyActRed Red */
        Red?: (number|null);
    }

    /** Represents a NotifyActRed. */
    class NotifyActRed implements INotifyActRed {

        /**
         * Constructs a new NotifyActRed.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INotifyActRed);

        /** NotifyActRed Id. */
        public Id: number;

        /** NotifyActRed Red. */
        public Red: number;

        /**
         * Creates a new NotifyActRed instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NotifyActRed instance
         */
        public static create(properties?: tutorial.INotifyActRed): tutorial.NotifyActRed;

        /**
         * Encodes the specified NotifyActRed message. Does not implicitly {@link tutorial.NotifyActRed.verify|verify} messages.
         * @param message NotifyActRed message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INotifyActRed, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NotifyActRed message, length delimited. Does not implicitly {@link tutorial.NotifyActRed.verify|verify} messages.
         * @param message NotifyActRed message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INotifyActRed, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NotifyActRed message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NotifyActRed
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NotifyActRed;

        /**
         * Decodes a NotifyActRed message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NotifyActRed
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NotifyActRed;

        /**
         * Verifies a NotifyActRed message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NotifyActRed message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NotifyActRed
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NotifyActRed;

        /**
         * Creates a plain object from a NotifyActRed message. Also converts values to other types if specified.
         * @param message NotifyActRed
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NotifyActRed, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NotifyActRed to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NotifyActRed
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an ActivityNotify. */
    interface IActivityNotify {

        /** ActivityNotify Info */
        Info?: (tutorial.IActivityInfo|null);
    }

    /** Represents an ActivityNotify. */
    class ActivityNotify implements IActivityNotify {

        /**
         * Constructs a new ActivityNotify.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IActivityNotify);

        /** ActivityNotify Info. */
        public Info?: (tutorial.IActivityInfo|null);

        /**
         * Creates a new ActivityNotify instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ActivityNotify instance
         */
        public static create(properties?: tutorial.IActivityNotify): tutorial.ActivityNotify;

        /**
         * Encodes the specified ActivityNotify message. Does not implicitly {@link tutorial.ActivityNotify.verify|verify} messages.
         * @param message ActivityNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IActivityNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ActivityNotify message, length delimited. Does not implicitly {@link tutorial.ActivityNotify.verify|verify} messages.
         * @param message ActivityNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IActivityNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an ActivityNotify message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ActivityNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ActivityNotify;

        /**
         * Decodes an ActivityNotify message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ActivityNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ActivityNotify;

        /**
         * Verifies an ActivityNotify message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an ActivityNotify message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ActivityNotify
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ActivityNotify;

        /**
         * Creates a plain object from an ActivityNotify message. Also converts values to other types if specified.
         * @param message ActivityNotify
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ActivityNotify, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ActivityNotify to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ActivityNotify
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResItem. */
    interface IResItem {

        /** ResItem Item */
        Item?: ({ [k: string]: number }|null);
    }

    /** Represents a ResItem. */
    class ResItem implements IResItem {

        /**
         * Constructs a new ResItem.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResItem);

        /** ResItem Item. */
        public Item: { [k: string]: number };

        /**
         * Creates a new ResItem instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResItem instance
         */
        public static create(properties?: tutorial.IResItem): tutorial.ResItem;

        /**
         * Encodes the specified ResItem message. Does not implicitly {@link tutorial.ResItem.verify|verify} messages.
         * @param message ResItem message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResItem, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResItem message, length delimited. Does not implicitly {@link tutorial.ResItem.verify|verify} messages.
         * @param message ResItem message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResItem, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResItem message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResItem;

        /**
         * Decodes a ResItem message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResItem
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResItem;

        /**
         * Verifies a ResItem message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResItem message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResItem
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResItem;

        /**
         * Creates a plain object from a ResItem message. Also converts values to other types if specified.
         * @param message ResItem
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResItem, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResItem to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResItem
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an ItemNotify. */
    interface IItemNotify {

        /** ItemNotify Item */
        Item?: ({ [k: string]: number }|null);
    }

    /** Represents an ItemNotify. */
    class ItemNotify implements IItemNotify {

        /**
         * Constructs a new ItemNotify.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IItemNotify);

        /** ItemNotify Item. */
        public Item: { [k: string]: number };

        /**
         * Creates a new ItemNotify instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ItemNotify instance
         */
        public static create(properties?: tutorial.IItemNotify): tutorial.ItemNotify;

        /**
         * Encodes the specified ItemNotify message. Does not implicitly {@link tutorial.ItemNotify.verify|verify} messages.
         * @param message ItemNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IItemNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ItemNotify message, length delimited. Does not implicitly {@link tutorial.ItemNotify.verify|verify} messages.
         * @param message ItemNotify message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IItemNotify, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an ItemNotify message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ItemNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ItemNotify;

        /**
         * Decodes an ItemNotify message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ItemNotify
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ItemNotify;

        /**
         * Verifies an ItemNotify message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an ItemNotify message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ItemNotify
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ItemNotify;

        /**
         * Creates a plain object from an ItemNotify message. Also converts values to other types if specified.
         * @param message ItemNotify
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ItemNotify, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ItemNotify to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ItemNotify
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGuessColor. */
    interface IReqGuessColor {
    }

    /** Represents a ReqGuessColor. */
    class ReqGuessColor implements IReqGuessColor {

        /**
         * Constructs a new ReqGuessColor.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGuessColor);

        /**
         * Creates a new ReqGuessColor instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGuessColor instance
         */
        public static create(properties?: tutorial.IReqGuessColor): tutorial.ReqGuessColor;

        /**
         * Encodes the specified ReqGuessColor message. Does not implicitly {@link tutorial.ReqGuessColor.verify|verify} messages.
         * @param message ReqGuessColor message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGuessColor, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGuessColor message, length delimited. Does not implicitly {@link tutorial.ReqGuessColor.verify|verify} messages.
         * @param message ReqGuessColor message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGuessColor, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGuessColor message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGuessColor
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGuessColor;

        /**
         * Decodes a ReqGuessColor message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGuessColor
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGuessColor;

        /**
         * Verifies a ReqGuessColor message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGuessColor message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGuessColor
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGuessColor;

        /**
         * Creates a plain object from a ReqGuessColor message. Also converts values to other types if specified.
         * @param message ReqGuessColor
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGuessColor, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGuessColor to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGuessColor
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGuessColor. */
    interface IResGuessColor {

        /** ResGuessColor Id */
        Id?: (number|null);

        /** ResGuessColor Status */
        Status?: (number|null);

        /** ResGuessColor EndTime */
        EndTime?: (number|null);

        /** ResGuessColor Template */
        Template?: (number|null);

        /** ResGuessColor Pass */
        Pass?: (number|null);

        /** ResGuessColor Color */
        Color?: (number[]|null);

        /** ResGuessColor Pos */
        Pos?: (number[]|null);

        /** ResGuessColor Opponent */
        Opponent?: (tutorial.Iopponent|null);
    }

    /** Represents a ResGuessColor. */
    class ResGuessColor implements IResGuessColor {

        /**
         * Constructs a new ResGuessColor.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGuessColor);

        /** ResGuessColor Id. */
        public Id: number;

        /** ResGuessColor Status. */
        public Status: number;

        /** ResGuessColor EndTime. */
        public EndTime: number;

        /** ResGuessColor Template. */
        public Template: number;

        /** ResGuessColor Pass. */
        public Pass: number;

        /** ResGuessColor Color. */
        public Color: number[];

        /** ResGuessColor Pos. */
        public Pos: number[];

        /** ResGuessColor Opponent. */
        public Opponent?: (tutorial.Iopponent|null);

        /**
         * Creates a new ResGuessColor instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGuessColor instance
         */
        public static create(properties?: tutorial.IResGuessColor): tutorial.ResGuessColor;

        /**
         * Encodes the specified ResGuessColor message. Does not implicitly {@link tutorial.ResGuessColor.verify|verify} messages.
         * @param message ResGuessColor message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGuessColor, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGuessColor message, length delimited. Does not implicitly {@link tutorial.ResGuessColor.verify|verify} messages.
         * @param message ResGuessColor message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGuessColor, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGuessColor message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGuessColor
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGuessColor;

        /**
         * Decodes a ResGuessColor message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGuessColor
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGuessColor;

        /**
         * Verifies a ResGuessColor message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGuessColor message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGuessColor
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGuessColor;

        /**
         * Creates a plain object from a ResGuessColor message. Also converts values to other types if specified.
         * @param message ResGuessColor
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGuessColor, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGuessColor to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGuessColor
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of an opponent. */
    interface Iopponent {

        /** opponent Name */
        Name?: (string|null);

        /** opponent Face */
        Face?: (number|null);

        /** opponent Avatar */
        Avatar?: (number|null);

        /** opponent Progress */
        Progress?: (number|null);
    }

    /** Represents an opponent. */
    class opponent implements Iopponent {

        /**
         * Constructs a new opponent.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.Iopponent);

        /** opponent Name. */
        public Name: string;

        /** opponent Face. */
        public Face: number;

        /** opponent Avatar. */
        public Avatar: number;

        /** opponent Progress. */
        public Progress: number;

        /**
         * Creates a new opponent instance using the specified properties.
         * @param [properties] Properties to set
         * @returns opponent instance
         */
        public static create(properties?: tutorial.Iopponent): tutorial.opponent;

        /**
         * Encodes the specified opponent message. Does not implicitly {@link tutorial.opponent.verify|verify} messages.
         * @param message opponent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.Iopponent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified opponent message, length delimited. Does not implicitly {@link tutorial.opponent.verify|verify} messages.
         * @param message opponent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.Iopponent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes an opponent message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns opponent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.opponent;

        /**
         * Decodes an opponent message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns opponent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.opponent;

        /**
         * Verifies an opponent message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates an opponent message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns opponent
         */
        public static fromObject(object: { [k: string]: any }): tutorial.opponent;

        /**
         * Creates a plain object from an opponent message. Also converts values to other types if specified.
         * @param message opponent
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.opponent, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this opponent to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for opponent
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGuessColorTake. */
    interface IReqGuessColorTake {

        /** ReqGuessColorTake Map */
        Map?: ({ [k: string]: number }|null);
    }

    /** Represents a ReqGuessColorTake. */
    class ReqGuessColorTake implements IReqGuessColorTake {

        /**
         * Constructs a new ReqGuessColorTake.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGuessColorTake);

        /** ReqGuessColorTake Map. */
        public Map: { [k: string]: number };

        /**
         * Creates a new ReqGuessColorTake instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGuessColorTake instance
         */
        public static create(properties?: tutorial.IReqGuessColorTake): tutorial.ReqGuessColorTake;

        /**
         * Encodes the specified ReqGuessColorTake message. Does not implicitly {@link tutorial.ReqGuessColorTake.verify|verify} messages.
         * @param message ReqGuessColorTake message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGuessColorTake, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGuessColorTake message, length delimited. Does not implicitly {@link tutorial.ReqGuessColorTake.verify|verify} messages.
         * @param message ReqGuessColorTake message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGuessColorTake, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGuessColorTake message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGuessColorTake
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGuessColorTake;

        /**
         * Decodes a ReqGuessColorTake message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGuessColorTake
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGuessColorTake;

        /**
         * Verifies a ReqGuessColorTake message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGuessColorTake message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGuessColorTake
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGuessColorTake;

        /**
         * Creates a plain object from a ReqGuessColorTake message. Also converts values to other types if specified.
         * @param message ReqGuessColorTake
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGuessColorTake, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGuessColorTake to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGuessColorTake
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGuessColorTake. */
    interface IResGuessColorTake {

        /** ResGuessColorTake Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGuessColorTake Msg */
        Msg?: (string|null);
    }

    /** Represents a ResGuessColorTake. */
    class ResGuessColorTake implements IResGuessColorTake {

        /**
         * Constructs a new ResGuessColorTake.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGuessColorTake);

        /** ResGuessColorTake Code. */
        public Code: tutorial.RES_CODE;

        /** ResGuessColorTake Msg. */
        public Msg: string;

        /**
         * Creates a new ResGuessColorTake instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGuessColorTake instance
         */
        public static create(properties?: tutorial.IResGuessColorTake): tutorial.ResGuessColorTake;

        /**
         * Encodes the specified ResGuessColorTake message. Does not implicitly {@link tutorial.ResGuessColorTake.verify|verify} messages.
         * @param message ResGuessColorTake message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGuessColorTake, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGuessColorTake message, length delimited. Does not implicitly {@link tutorial.ResGuessColorTake.verify|verify} messages.
         * @param message ResGuessColorTake message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGuessColorTake, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGuessColorTake message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGuessColorTake
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGuessColorTake;

        /**
         * Decodes a ResGuessColorTake message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGuessColorTake
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGuessColorTake;

        /**
         * Verifies a ResGuessColorTake message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGuessColorTake message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGuessColorTake
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGuessColorTake;

        /**
         * Creates a plain object from a ResGuessColorTake message. Also converts values to other types if specified.
         * @param message ResGuessColorTake
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGuessColorTake, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGuessColorTake to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGuessColorTake
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqGuessColorReward. */
    interface IReqGuessColorReward {
    }

    /** Represents a ReqGuessColorReward. */
    class ReqGuessColorReward implements IReqGuessColorReward {

        /**
         * Constructs a new ReqGuessColorReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqGuessColorReward);

        /**
         * Creates a new ReqGuessColorReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqGuessColorReward instance
         */
        public static create(properties?: tutorial.IReqGuessColorReward): tutorial.ReqGuessColorReward;

        /**
         * Encodes the specified ReqGuessColorReward message. Does not implicitly {@link tutorial.ReqGuessColorReward.verify|verify} messages.
         * @param message ReqGuessColorReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqGuessColorReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqGuessColorReward message, length delimited. Does not implicitly {@link tutorial.ReqGuessColorReward.verify|verify} messages.
         * @param message ReqGuessColorReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqGuessColorReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqGuessColorReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqGuessColorReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqGuessColorReward;

        /**
         * Decodes a ReqGuessColorReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqGuessColorReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqGuessColorReward;

        /**
         * Verifies a ReqGuessColorReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqGuessColorReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqGuessColorReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqGuessColorReward;

        /**
         * Creates a plain object from a ReqGuessColorReward message. Also converts values to other types if specified.
         * @param message ReqGuessColorReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqGuessColorReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqGuessColorReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqGuessColorReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResGuessColorReward. */
    interface IResGuessColorReward {

        /** ResGuessColorReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResGuessColorReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResGuessColorReward. */
    class ResGuessColorReward implements IResGuessColorReward {

        /**
         * Constructs a new ResGuessColorReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResGuessColorReward);

        /** ResGuessColorReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResGuessColorReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResGuessColorReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResGuessColorReward instance
         */
        public static create(properties?: tutorial.IResGuessColorReward): tutorial.ResGuessColorReward;

        /**
         * Encodes the specified ResGuessColorReward message. Does not implicitly {@link tutorial.ResGuessColorReward.verify|verify} messages.
         * @param message ResGuessColorReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResGuessColorReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResGuessColorReward message, length delimited. Does not implicitly {@link tutorial.ResGuessColorReward.verify|verify} messages.
         * @param message ResGuessColorReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResGuessColorReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResGuessColorReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResGuessColorReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResGuessColorReward;

        /**
         * Decodes a ResGuessColorReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResGuessColorReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResGuessColorReward;

        /**
         * Verifies a ResGuessColorReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResGuessColorReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResGuessColorReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResGuessColorReward;

        /**
         * Creates a plain object from a ResGuessColorReward message. Also converts values to other types if specified.
         * @param message ResGuessColorReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResGuessColorReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResGuessColorReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResGuessColorReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRace. */
    interface IReqRace {
    }

    /** Represents a ReqRace. */
    class ReqRace implements IReqRace {

        /**
         * Constructs a new ReqRace.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRace);

        /**
         * Creates a new ReqRace instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRace instance
         */
        public static create(properties?: tutorial.IReqRace): tutorial.ReqRace;

        /**
         * Encodes the specified ReqRace message. Does not implicitly {@link tutorial.ReqRace.verify|verify} messages.
         * @param message ReqRace message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRace, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRace message, length delimited. Does not implicitly {@link tutorial.ReqRace.verify|verify} messages.
         * @param message ReqRace message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRace, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRace message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRace
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRace;

        /**
         * Decodes a ReqRace message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRace
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRace;

        /**
         * Verifies a ReqRace message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRace message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRace
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRace;

        /**
         * Creates a plain object from a ReqRace message. Also converts values to other types if specified.
         * @param message ReqRace
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRace, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRace to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRace
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRace. */
    interface IResRace {

        /** ResRace Id */
        Id?: (number|null);

        /** ResRace Status */
        Status?: (number|null);

        /** ResRace EndTime */
        EndTime?: (number|null);

        /** ResRace Template */
        Template?: (number|null);

        /** ResRace Pass */
        Pass?: (number|null);

        /** ResRace GameStartTime */
        GameStartTime?: (number|null);

        /** ResRace GameEndTime */
        GameEndTime?: (number|null);

        /** ResRace Progress */
        Progress?: (number|null);

        /** ResRace Opponent */
        Opponent?: (tutorial.Iraceopponent[]|null);
    }

    /** Represents a ResRace. */
    class ResRace implements IResRace {

        /**
         * Constructs a new ResRace.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRace);

        /** ResRace Id. */
        public Id: number;

        /** ResRace Status. */
        public Status: number;

        /** ResRace EndTime. */
        public EndTime: number;

        /** ResRace Template. */
        public Template: number;

        /** ResRace Pass. */
        public Pass: number;

        /** ResRace GameStartTime. */
        public GameStartTime: number;

        /** ResRace GameEndTime. */
        public GameEndTime: number;

        /** ResRace Progress. */
        public Progress: number;

        /** ResRace Opponent. */
        public Opponent: tutorial.Iraceopponent[];

        /**
         * Creates a new ResRace instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRace instance
         */
        public static create(properties?: tutorial.IResRace): tutorial.ResRace;

        /**
         * Encodes the specified ResRace message. Does not implicitly {@link tutorial.ResRace.verify|verify} messages.
         * @param message ResRace message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRace, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRace message, length delimited. Does not implicitly {@link tutorial.ResRace.verify|verify} messages.
         * @param message ResRace message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRace, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRace message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRace
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRace;

        /**
         * Decodes a ResRace message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRace
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRace;

        /**
         * Verifies a ResRace message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRace message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRace
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRace;

        /**
         * Creates a plain object from a ResRace message. Also converts values to other types if specified.
         * @param message ResRace
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRace, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRace to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRace
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a raceopponent. */
    interface Iraceopponent {

        /** raceopponent Id */
        Id?: (number|null);

        /** raceopponent Image */
        Image?: (number|null);

        /** raceopponent Progress */
        Progress?: (number|null);
    }

    /** Represents a raceopponent. */
    class raceopponent implements Iraceopponent {

        /**
         * Constructs a new raceopponent.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.Iraceopponent);

        /** raceopponent Id. */
        public Id: number;

        /** raceopponent Image. */
        public Image: number;

        /** raceopponent Progress. */
        public Progress: number;

        /**
         * Creates a new raceopponent instance using the specified properties.
         * @param [properties] Properties to set
         * @returns raceopponent instance
         */
        public static create(properties?: tutorial.Iraceopponent): tutorial.raceopponent;

        /**
         * Encodes the specified raceopponent message. Does not implicitly {@link tutorial.raceopponent.verify|verify} messages.
         * @param message raceopponent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.Iraceopponent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified raceopponent message, length delimited. Does not implicitly {@link tutorial.raceopponent.verify|verify} messages.
         * @param message raceopponent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.Iraceopponent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a raceopponent message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns raceopponent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.raceopponent;

        /**
         * Decodes a raceopponent message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns raceopponent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.raceopponent;

        /**
         * Verifies a raceopponent message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a raceopponent message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns raceopponent
         */
        public static fromObject(object: { [k: string]: any }): tutorial.raceopponent;

        /**
         * Creates a plain object from a raceopponent message. Also converts values to other types if specified.
         * @param message raceopponent
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.raceopponent, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this raceopponent to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for raceopponent
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRaceStart. */
    interface IReqRaceStart {
    }

    /** Represents a ReqRaceStart. */
    class ReqRaceStart implements IReqRaceStart {

        /**
         * Constructs a new ReqRaceStart.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRaceStart);

        /**
         * Creates a new ReqRaceStart instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRaceStart instance
         */
        public static create(properties?: tutorial.IReqRaceStart): tutorial.ReqRaceStart;

        /**
         * Encodes the specified ReqRaceStart message. Does not implicitly {@link tutorial.ReqRaceStart.verify|verify} messages.
         * @param message ReqRaceStart message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRaceStart, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRaceStart message, length delimited. Does not implicitly {@link tutorial.ReqRaceStart.verify|verify} messages.
         * @param message ReqRaceStart message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRaceStart, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRaceStart message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRaceStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRaceStart;

        /**
         * Decodes a ReqRaceStart message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRaceStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRaceStart;

        /**
         * Verifies a ReqRaceStart message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRaceStart message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRaceStart
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRaceStart;

        /**
         * Creates a plain object from a ReqRaceStart message. Also converts values to other types if specified.
         * @param message ReqRaceStart
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRaceStart, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRaceStart to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRaceStart
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRaceStart. */
    interface IResRaceStart {

        /** ResRaceStart Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResRaceStart Msg */
        Msg?: (string|null);
    }

    /** Represents a ResRaceStart. */
    class ResRaceStart implements IResRaceStart {

        /**
         * Constructs a new ResRaceStart.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRaceStart);

        /** ResRaceStart Code. */
        public Code: tutorial.RES_CODE;

        /** ResRaceStart Msg. */
        public Msg: string;

        /**
         * Creates a new ResRaceStart instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRaceStart instance
         */
        public static create(properties?: tutorial.IResRaceStart): tutorial.ResRaceStart;

        /**
         * Encodes the specified ResRaceStart message. Does not implicitly {@link tutorial.ResRaceStart.verify|verify} messages.
         * @param message ResRaceStart message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRaceStart, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRaceStart message, length delimited. Does not implicitly {@link tutorial.ResRaceStart.verify|verify} messages.
         * @param message ResRaceStart message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRaceStart, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRaceStart message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRaceStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRaceStart;

        /**
         * Decodes a ResRaceStart message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRaceStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRaceStart;

        /**
         * Verifies a ResRaceStart message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRaceStart message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRaceStart
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRaceStart;

        /**
         * Creates a plain object from a ResRaceStart message. Also converts values to other types if specified.
         * @param message ResRaceStart
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRaceStart, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRaceStart to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRaceStart
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqRaceReward. */
    interface IReqRaceReward {
    }

    /** Represents a ReqRaceReward. */
    class ReqRaceReward implements IReqRaceReward {

        /**
         * Constructs a new ReqRaceReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqRaceReward);

        /**
         * Creates a new ReqRaceReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqRaceReward instance
         */
        public static create(properties?: tutorial.IReqRaceReward): tutorial.ReqRaceReward;

        /**
         * Encodes the specified ReqRaceReward message. Does not implicitly {@link tutorial.ReqRaceReward.verify|verify} messages.
         * @param message ReqRaceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqRaceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqRaceReward message, length delimited. Does not implicitly {@link tutorial.ReqRaceReward.verify|verify} messages.
         * @param message ReqRaceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqRaceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqRaceReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqRaceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqRaceReward;

        /**
         * Decodes a ReqRaceReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqRaceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqRaceReward;

        /**
         * Verifies a ReqRaceReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqRaceReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqRaceReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqRaceReward;

        /**
         * Creates a plain object from a ReqRaceReward message. Also converts values to other types if specified.
         * @param message ReqRaceReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqRaceReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqRaceReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqRaceReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResRaceReward. */
    interface IResRaceReward {

        /** ResRaceReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResRaceReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResRaceReward. */
    class ResRaceReward implements IResRaceReward {

        /**
         * Constructs a new ResRaceReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResRaceReward);

        /** ResRaceReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResRaceReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResRaceReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResRaceReward instance
         */
        public static create(properties?: tutorial.IResRaceReward): tutorial.ResRaceReward;

        /**
         * Encodes the specified ResRaceReward message. Does not implicitly {@link tutorial.ResRaceReward.verify|verify} messages.
         * @param message ResRaceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResRaceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResRaceReward message, length delimited. Does not implicitly {@link tutorial.ResRaceReward.verify|verify} messages.
         * @param message ResRaceReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResRaceReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResRaceReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResRaceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResRaceReward;

        /**
         * Decodes a ResRaceReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResRaceReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResRaceReward;

        /**
         * Verifies a ResRaceReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResRaceReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResRaceReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResRaceReward;

        /**
         * Creates a plain object from a ResRaceReward message. Also converts values to other types if specified.
         * @param message ResRaceReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResRaceReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResRaceReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResRaceReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroom. */
    interface IReqPlayroom {
    }

    /** Represents a ReqPlayroom. */
    class ReqPlayroom implements IReqPlayroom {

        /**
         * Constructs a new ReqPlayroom.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroom);

        /**
         * Creates a new ReqPlayroom instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroom instance
         */
        public static create(properties?: tutorial.IReqPlayroom): tutorial.ReqPlayroom;

        /**
         * Encodes the specified ReqPlayroom message. Does not implicitly {@link tutorial.ReqPlayroom.verify|verify} messages.
         * @param message ReqPlayroom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroom message, length delimited. Does not implicitly {@link tutorial.ReqPlayroom.verify|verify} messages.
         * @param message ReqPlayroom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroom message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroom;

        /**
         * Decodes a ReqPlayroom message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroom;

        /**
         * Verifies a ReqPlayroom message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroom message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroom
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroom;

        /**
         * Creates a plain object from a ReqPlayroom message. Also converts values to other types if specified.
         * @param message ReqPlayroom
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroom, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroom to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroom
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroom. */
    interface IResPlayroom {

        /** ResPlayroom status */
        status?: (number|null);

        /** ResPlayroom Items */
        Items?: (tutorial.IItemInfo[]|null);

        /** ResPlayroom Opponent */
        Opponent?: (tutorial.IRoomOpponent[]|null);

        /** ResPlayroom Friend */
        Friend?: (tutorial.IFriendRoom[]|null);

        /** ResPlayroom Playroom */
        Playroom?: ({ [k: string]: number }|null);

        /** ResPlayroom collect */
        collect?: (number[]|null);

        /** ResPlayroom Mood */
        Mood?: ({ [k: string]: number }|null);

        /** ResPlayroom LoseItem */
        LoseItem?: (tutorial.IItemInfo[]|null);

        /** ResPlayroom StartTime */
        StartTime?: (number|null);

        /** ResPlayroom WorkStatus */
        WorkStatus?: (number|null);

        /** ResPlayroom AllMood */
        AllMood?: (number|null);

        /** ResPlayroom Chip */
        Chip?: (number|null);

        /** ResPlayroom WorkOutline */
        WorkOutline?: (number|null);
    }

    /** Represents a ResPlayroom. */
    class ResPlayroom implements IResPlayroom {

        /**
         * Constructs a new ResPlayroom.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroom);

        /** ResPlayroom status. */
        public status: number;

        /** ResPlayroom Items. */
        public Items: tutorial.IItemInfo[];

        /** ResPlayroom Opponent. */
        public Opponent: tutorial.IRoomOpponent[];

        /** ResPlayroom Friend. */
        public Friend: tutorial.IFriendRoom[];

        /** ResPlayroom Playroom. */
        public Playroom: { [k: string]: number };

        /** ResPlayroom collect. */
        public collect: number[];

        /** ResPlayroom Mood. */
        public Mood: { [k: string]: number };

        /** ResPlayroom LoseItem. */
        public LoseItem: tutorial.IItemInfo[];

        /** ResPlayroom StartTime. */
        public StartTime: number;

        /** ResPlayroom WorkStatus. */
        public WorkStatus: number;

        /** ResPlayroom AllMood. */
        public AllMood: number;

        /** ResPlayroom Chip. */
        public Chip: number;

        /** ResPlayroom WorkOutline. */
        public WorkOutline: number;

        /**
         * Creates a new ResPlayroom instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroom instance
         */
        public static create(properties?: tutorial.IResPlayroom): tutorial.ResPlayroom;

        /**
         * Encodes the specified ResPlayroom message. Does not implicitly {@link tutorial.ResPlayroom.verify|verify} messages.
         * @param message ResPlayroom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroom message, length delimited. Does not implicitly {@link tutorial.ResPlayroom.verify|verify} messages.
         * @param message ResPlayroom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroom message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroom;

        /**
         * Decodes a ResPlayroom message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroom;

        /**
         * Verifies a ResPlayroom message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroom message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroom
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroom;

        /**
         * Creates a plain object from a ResPlayroom message. Also converts values to other types if specified.
         * @param message ResPlayroom
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroom, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroom to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroom
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomWrokOutline. */
    interface IReqPlayroomWrokOutline {
    }

    /** Represents a ReqPlayroomWrokOutline. */
    class ReqPlayroomWrokOutline implements IReqPlayroomWrokOutline {

        /**
         * Constructs a new ReqPlayroomWrokOutline.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomWrokOutline);

        /**
         * Creates a new ReqPlayroomWrokOutline instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomWrokOutline instance
         */
        public static create(properties?: tutorial.IReqPlayroomWrokOutline): tutorial.ReqPlayroomWrokOutline;

        /**
         * Encodes the specified ReqPlayroomWrokOutline message. Does not implicitly {@link tutorial.ReqPlayroomWrokOutline.verify|verify} messages.
         * @param message ReqPlayroomWrokOutline message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomWrokOutline, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomWrokOutline message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomWrokOutline.verify|verify} messages.
         * @param message ReqPlayroomWrokOutline message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomWrokOutline, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomWrokOutline message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomWrokOutline
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomWrokOutline;

        /**
         * Decodes a ReqPlayroomWrokOutline message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomWrokOutline
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomWrokOutline;

        /**
         * Verifies a ReqPlayroomWrokOutline message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomWrokOutline message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomWrokOutline
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomWrokOutline;

        /**
         * Creates a plain object from a ReqPlayroomWrokOutline message. Also converts values to other types if specified.
         * @param message ReqPlayroomWrokOutline
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomWrokOutline, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomWrokOutline to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomWrokOutline
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomWrokOutline. */
    interface IResPlayroomWrokOutline {

        /** ResPlayroomWrokOutline Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomWrokOutline Msg */
        Msg?: (string|null);
    }

    /** Represents a ResPlayroomWrokOutline. */
    class ResPlayroomWrokOutline implements IResPlayroomWrokOutline {

        /**
         * Constructs a new ResPlayroomWrokOutline.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomWrokOutline);

        /** ResPlayroomWrokOutline Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomWrokOutline Msg. */
        public Msg: string;

        /**
         * Creates a new ResPlayroomWrokOutline instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomWrokOutline instance
         */
        public static create(properties?: tutorial.IResPlayroomWrokOutline): tutorial.ResPlayroomWrokOutline;

        /**
         * Encodes the specified ResPlayroomWrokOutline message. Does not implicitly {@link tutorial.ResPlayroomWrokOutline.verify|verify} messages.
         * @param message ResPlayroomWrokOutline message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomWrokOutline, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomWrokOutline message, length delimited. Does not implicitly {@link tutorial.ResPlayroomWrokOutline.verify|verify} messages.
         * @param message ResPlayroomWrokOutline message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomWrokOutline, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomWrokOutline message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomWrokOutline
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomWrokOutline;

        /**
         * Decodes a ResPlayroomWrokOutline message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomWrokOutline
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomWrokOutline;

        /**
         * Verifies a ResPlayroomWrokOutline message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomWrokOutline message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomWrokOutline
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomWrokOutline;

        /**
         * Creates a plain object from a ResPlayroomWrokOutline message. Also converts values to other types if specified.
         * @param message ResPlayroomWrokOutline
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomWrokOutline, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomWrokOutline to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomWrokOutline
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NofiPlayroomStatus. */
    interface INofiPlayroomStatus {

        /** NofiPlayroomStatus WorkOutline */
        WorkOutline?: (number|null);
    }

    /** Represents a NofiPlayroomStatus. */
    class NofiPlayroomStatus implements INofiPlayroomStatus {

        /**
         * Constructs a new NofiPlayroomStatus.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INofiPlayroomStatus);

        /** NofiPlayroomStatus WorkOutline. */
        public WorkOutline: number;

        /**
         * Creates a new NofiPlayroomStatus instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NofiPlayroomStatus instance
         */
        public static create(properties?: tutorial.INofiPlayroomStatus): tutorial.NofiPlayroomStatus;

        /**
         * Encodes the specified NofiPlayroomStatus message. Does not implicitly {@link tutorial.NofiPlayroomStatus.verify|verify} messages.
         * @param message NofiPlayroomStatus message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INofiPlayroomStatus, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NofiPlayroomStatus message, length delimited. Does not implicitly {@link tutorial.NofiPlayroomStatus.verify|verify} messages.
         * @param message NofiPlayroomStatus message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INofiPlayroomStatus, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NofiPlayroomStatus message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NofiPlayroomStatus
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NofiPlayroomStatus;

        /**
         * Decodes a NofiPlayroomStatus message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NofiPlayroomStatus
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NofiPlayroomStatus;

        /**
         * Verifies a NofiPlayroomStatus message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NofiPlayroomStatus message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NofiPlayroomStatus
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NofiPlayroomStatus;

        /**
         * Creates a plain object from a NofiPlayroomStatus message. Also converts values to other types if specified.
         * @param message NofiPlayroomStatus
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NofiPlayroomStatus, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NofiPlayroomStatus to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NofiPlayroomStatus
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NotifyPlayroomWork. */
    interface INotifyPlayroomWork {

        /** NotifyPlayroomWork StartTime */
        StartTime?: (number|null);

        /** NotifyPlayroomWork WorkStatus */
        WorkStatus?: (number|null);
    }

    /** Represents a NotifyPlayroomWork. */
    class NotifyPlayroomWork implements INotifyPlayroomWork {

        /**
         * Constructs a new NotifyPlayroomWork.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INotifyPlayroomWork);

        /** NotifyPlayroomWork StartTime. */
        public StartTime: number;

        /** NotifyPlayroomWork WorkStatus. */
        public WorkStatus: number;

        /**
         * Creates a new NotifyPlayroomWork instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NotifyPlayroomWork instance
         */
        public static create(properties?: tutorial.INotifyPlayroomWork): tutorial.NotifyPlayroomWork;

        /**
         * Encodes the specified NotifyPlayroomWork message. Does not implicitly {@link tutorial.NotifyPlayroomWork.verify|verify} messages.
         * @param message NotifyPlayroomWork message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INotifyPlayroomWork, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NotifyPlayroomWork message, length delimited. Does not implicitly {@link tutorial.NotifyPlayroomWork.verify|verify} messages.
         * @param message NotifyPlayroomWork message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INotifyPlayroomWork, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NotifyPlayroomWork message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NotifyPlayroomWork
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NotifyPlayroomWork;

        /**
         * Decodes a NotifyPlayroomWork message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NotifyPlayroomWork
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NotifyPlayroomWork;

        /**
         * Verifies a NotifyPlayroomWork message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NotifyPlayroomWork message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NotifyPlayroomWork
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NotifyPlayroomWork;

        /**
         * Creates a plain object from a NotifyPlayroomWork message. Also converts values to other types if specified.
         * @param message NotifyPlayroomWork
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NotifyPlayroomWork, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NotifyPlayroomWork to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NotifyPlayroomWork
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NotifyPlayroomLose. */
    interface INotifyPlayroomLose {

        /** NotifyPlayroomLose LoseItem */
        LoseItem?: (tutorial.IItemInfo[]|null);

        /** NotifyPlayroomLose Chip */
        Chip?: (number|null);
    }

    /** Represents a NotifyPlayroomLose. */
    class NotifyPlayroomLose implements INotifyPlayroomLose {

        /**
         * Constructs a new NotifyPlayroomLose.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INotifyPlayroomLose);

        /** NotifyPlayroomLose LoseItem. */
        public LoseItem: tutorial.IItemInfo[];

        /** NotifyPlayroomLose Chip. */
        public Chip: number;

        /**
         * Creates a new NotifyPlayroomLose instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NotifyPlayroomLose instance
         */
        public static create(properties?: tutorial.INotifyPlayroomLose): tutorial.NotifyPlayroomLose;

        /**
         * Encodes the specified NotifyPlayroomLose message. Does not implicitly {@link tutorial.NotifyPlayroomLose.verify|verify} messages.
         * @param message NotifyPlayroomLose message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INotifyPlayroomLose, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NotifyPlayroomLose message, length delimited. Does not implicitly {@link tutorial.NotifyPlayroomLose.verify|verify} messages.
         * @param message NotifyPlayroomLose message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INotifyPlayroomLose, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NotifyPlayroomLose message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NotifyPlayroomLose
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NotifyPlayroomLose;

        /**
         * Decodes a NotifyPlayroomLose message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NotifyPlayroomLose
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NotifyPlayroomLose;

        /**
         * Verifies a NotifyPlayroomLose message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NotifyPlayroomLose message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NotifyPlayroomLose
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NotifyPlayroomLose;

        /**
         * Creates a plain object from a NotifyPlayroomLose message. Also converts values to other types if specified.
         * @param message NotifyPlayroomLose
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NotifyPlayroomLose, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NotifyPlayroomLose to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NotifyPlayroomLose
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a NotifyPlayroomMood. */
    interface INotifyPlayroomMood {

        /** NotifyPlayroomMood AllMood */
        AllMood?: (number|null);

        /** NotifyPlayroomMood Mood */
        Mood?: ({ [k: string]: number }|null);
    }

    /** Represents a NotifyPlayroomMood. */
    class NotifyPlayroomMood implements INotifyPlayroomMood {

        /**
         * Constructs a new NotifyPlayroomMood.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.INotifyPlayroomMood);

        /** NotifyPlayroomMood AllMood. */
        public AllMood: number;

        /** NotifyPlayroomMood Mood. */
        public Mood: { [k: string]: number };

        /**
         * Creates a new NotifyPlayroomMood instance using the specified properties.
         * @param [properties] Properties to set
         * @returns NotifyPlayroomMood instance
         */
        public static create(properties?: tutorial.INotifyPlayroomMood): tutorial.NotifyPlayroomMood;

        /**
         * Encodes the specified NotifyPlayroomMood message. Does not implicitly {@link tutorial.NotifyPlayroomMood.verify|verify} messages.
         * @param message NotifyPlayroomMood message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.INotifyPlayroomMood, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified NotifyPlayroomMood message, length delimited. Does not implicitly {@link tutorial.NotifyPlayroomMood.verify|verify} messages.
         * @param message NotifyPlayroomMood message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.INotifyPlayroomMood, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a NotifyPlayroomMood message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns NotifyPlayroomMood
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.NotifyPlayroomMood;

        /**
         * Decodes a NotifyPlayroomMood message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns NotifyPlayroomMood
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.NotifyPlayroomMood;

        /**
         * Verifies a NotifyPlayroomMood message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a NotifyPlayroomMood message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns NotifyPlayroomMood
         */
        public static fromObject(object: { [k: string]: any }): tutorial.NotifyPlayroomMood;

        /**
         * Creates a plain object from a NotifyPlayroomMood message. Also converts values to other types if specified.
         * @param message NotifyPlayroomMood
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.NotifyPlayroomMood, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this NotifyPlayroomMood to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for NotifyPlayroomMood
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a FriendRoom. */
    interface IFriendRoom {

        /** FriendRoom Uid */
        Uid?: (number|null);

        /** FriendRoom Name */
        Name?: (string|null);

        /** FriendRoom Face */
        Face?: (number|null);

        /** FriendRoom Avatar */
        Avatar?: (number|null);

        /** FriendRoom Times */
        Times?: (number|null);
    }

    /** Represents a FriendRoom. */
    class FriendRoom implements IFriendRoom {

        /**
         * Constructs a new FriendRoom.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IFriendRoom);

        /** FriendRoom Uid. */
        public Uid: number;

        /** FriendRoom Name. */
        public Name: string;

        /** FriendRoom Face. */
        public Face: number;

        /** FriendRoom Avatar. */
        public Avatar: number;

        /** FriendRoom Times. */
        public Times: number;

        /**
         * Creates a new FriendRoom instance using the specified properties.
         * @param [properties] Properties to set
         * @returns FriendRoom instance
         */
        public static create(properties?: tutorial.IFriendRoom): tutorial.FriendRoom;

        /**
         * Encodes the specified FriendRoom message. Does not implicitly {@link tutorial.FriendRoom.verify|verify} messages.
         * @param message FriendRoom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IFriendRoom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified FriendRoom message, length delimited. Does not implicitly {@link tutorial.FriendRoom.verify|verify} messages.
         * @param message FriendRoom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IFriendRoom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a FriendRoom message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns FriendRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.FriendRoom;

        /**
         * Decodes a FriendRoom message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns FriendRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.FriendRoom;

        /**
         * Verifies a FriendRoom message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a FriendRoom message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns FriendRoom
         */
        public static fromObject(object: { [k: string]: any }): tutorial.FriendRoom;

        /**
         * Creates a plain object from a FriendRoom message. Also converts values to other types if specified.
         * @param message FriendRoom
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.FriendRoom, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this FriendRoom to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for FriendRoom
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a RoomOpponent. */
    interface IRoomOpponent {

        /** RoomOpponent Uid */
        Uid?: (number|null);

        /** RoomOpponent Name */
        Name?: (string|null);

        /** RoomOpponent Face */
        Face?: (number|null);

        /** RoomOpponent Avatar */
        Avatar?: (number|null);

        /** RoomOpponent LastTime */
        LastTime?: (number|null);
    }

    /** Represents a RoomOpponent. */
    class RoomOpponent implements IRoomOpponent {

        /**
         * Constructs a new RoomOpponent.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IRoomOpponent);

        /** RoomOpponent Uid. */
        public Uid: number;

        /** RoomOpponent Name. */
        public Name: string;

        /** RoomOpponent Face. */
        public Face: number;

        /** RoomOpponent Avatar. */
        public Avatar: number;

        /** RoomOpponent LastTime. */
        public LastTime: number;

        /**
         * Creates a new RoomOpponent instance using the specified properties.
         * @param [properties] Properties to set
         * @returns RoomOpponent instance
         */
        public static create(properties?: tutorial.IRoomOpponent): tutorial.RoomOpponent;

        /**
         * Encodes the specified RoomOpponent message. Does not implicitly {@link tutorial.RoomOpponent.verify|verify} messages.
         * @param message RoomOpponent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IRoomOpponent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified RoomOpponent message, length delimited. Does not implicitly {@link tutorial.RoomOpponent.verify|verify} messages.
         * @param message RoomOpponent message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IRoomOpponent, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a RoomOpponent message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns RoomOpponent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.RoomOpponent;

        /**
         * Decodes a RoomOpponent message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns RoomOpponent
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.RoomOpponent;

        /**
         * Verifies a RoomOpponent message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a RoomOpponent message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns RoomOpponent
         */
        public static fromObject(object: { [k: string]: any }): tutorial.RoomOpponent;

        /**
         * Creates a plain object from a RoomOpponent message. Also converts values to other types if specified.
         * @param message RoomOpponent
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.RoomOpponent, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this RoomOpponent to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for RoomOpponent
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomInfo. */
    interface IReqPlayroomInfo {

        /** ReqPlayroomInfo Uid */
        Uid?: (number|null);
    }

    /** Represents a ReqPlayroomInfo. */
    class ReqPlayroomInfo implements IReqPlayroomInfo {

        /**
         * Constructs a new ReqPlayroomInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomInfo);

        /** ReqPlayroomInfo Uid. */
        public Uid: number;

        /**
         * Creates a new ReqPlayroomInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomInfo instance
         */
        public static create(properties?: tutorial.IReqPlayroomInfo): tutorial.ReqPlayroomInfo;

        /**
         * Encodes the specified ReqPlayroomInfo message. Does not implicitly {@link tutorial.ReqPlayroomInfo.verify|verify} messages.
         * @param message ReqPlayroomInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomInfo message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomInfo.verify|verify} messages.
         * @param message ReqPlayroomInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomInfo;

        /**
         * Decodes a ReqPlayroomInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomInfo;

        /**
         * Verifies a ReqPlayroomInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomInfo;

        /**
         * Creates a plain object from a ReqPlayroomInfo message. Also converts values to other types if specified.
         * @param message ReqPlayroomInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomInfo. */
    interface IResPlayroomInfo {

        /** ResPlayroomInfo Uid */
        Uid?: (number|null);

        /** ResPlayroomInfo name */
        name?: (string|null);

        /** ResPlayroomInfo Face */
        Face?: (number|null);

        /** ResPlayroomInfo Avatar */
        Avatar?: (number|null);

        /** ResPlayroomInfo Playroom */
        Playroom?: ({ [k: string]: number }|null);

        /** ResPlayroomInfo GameId */
        GameId?: (number|null);

        /** ResPlayroomInfo Items */
        Items?: ({ [k: string]: tutorial.IItemInfo }|null);

        /** ResPlayroomInfo Status */
        Status?: (number|null);

        /** ResPlayroomInfo defense */
        defense?: (boolean|null);

        /** ResPlayroomInfo flip */
        flip?: ({ [k: string]: number }|null);

        /** ResPlayroomInfo Chip */
        Chip?: (number|null);

        /** ResPlayroomInfo PetName */
        PetName?: (string|null);
    }

    /** Represents a ResPlayroomInfo. */
    class ResPlayroomInfo implements IResPlayroomInfo {

        /**
         * Constructs a new ResPlayroomInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomInfo);

        /** ResPlayroomInfo Uid. */
        public Uid: number;

        /** ResPlayroomInfo name. */
        public name: string;

        /** ResPlayroomInfo Face. */
        public Face: number;

        /** ResPlayroomInfo Avatar. */
        public Avatar: number;

        /** ResPlayroomInfo Playroom. */
        public Playroom: { [k: string]: number };

        /** ResPlayroomInfo GameId. */
        public GameId: number;

        /** ResPlayroomInfo Items. */
        public Items: { [k: string]: tutorial.IItemInfo };

        /** ResPlayroomInfo Status. */
        public Status: number;

        /** ResPlayroomInfo defense. */
        public defense: boolean;

        /** ResPlayroomInfo flip. */
        public flip: { [k: string]: number };

        /** ResPlayroomInfo Chip. */
        public Chip: number;

        /** ResPlayroomInfo PetName. */
        public PetName: string;

        /**
         * Creates a new ResPlayroomInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomInfo instance
         */
        public static create(properties?: tutorial.IResPlayroomInfo): tutorial.ResPlayroomInfo;

        /**
         * Encodes the specified ResPlayroomInfo message. Does not implicitly {@link tutorial.ResPlayroomInfo.verify|verify} messages.
         * @param message ResPlayroomInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomInfo message, length delimited. Does not implicitly {@link tutorial.ResPlayroomInfo.verify|verify} messages.
         * @param message ResPlayroomInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomInfo;

        /**
         * Decodes a ResPlayroomInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomInfo;

        /**
         * Verifies a ResPlayroomInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomInfo;

        /**
         * Creates a plain object from a ResPlayroomInfo message. Also converts values to other types if specified.
         * @param message ResPlayroomInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomFlip. */
    interface IReqPlayroomFlip {

        /** ReqPlayroomFlip Id */
        Id?: (number|null);
    }

    /** Represents a ReqPlayroomFlip. */
    class ReqPlayroomFlip implements IReqPlayroomFlip {

        /**
         * Constructs a new ReqPlayroomFlip.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomFlip);

        /** ReqPlayroomFlip Id. */
        public Id: number;

        /**
         * Creates a new ReqPlayroomFlip instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomFlip instance
         */
        public static create(properties?: tutorial.IReqPlayroomFlip): tutorial.ReqPlayroomFlip;

        /**
         * Encodes the specified ReqPlayroomFlip message. Does not implicitly {@link tutorial.ReqPlayroomFlip.verify|verify} messages.
         * @param message ReqPlayroomFlip message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomFlip, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomFlip message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomFlip.verify|verify} messages.
         * @param message ReqPlayroomFlip message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomFlip, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomFlip message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomFlip
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomFlip;

        /**
         * Decodes a ReqPlayroomFlip message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomFlip
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomFlip;

        /**
         * Verifies a ReqPlayroomFlip message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomFlip message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomFlip
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomFlip;

        /**
         * Creates a plain object from a ReqPlayroomFlip message. Also converts values to other types if specified.
         * @param message ReqPlayroomFlip
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomFlip, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomFlip to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomFlip
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomFlip. */
    interface IResPlayroomFlip {

        /** ResPlayroomFlip Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomFlip Msg */
        Msg?: (string|null);

        /** ResPlayroomFlip Id */
        Id?: (number|null);

        /** ResPlayroomFlip CardId */
        CardId?: (number|null);
    }

    /** Represents a ResPlayroomFlip. */
    class ResPlayroomFlip implements IResPlayroomFlip {

        /**
         * Constructs a new ResPlayroomFlip.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomFlip);

        /** ResPlayroomFlip Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomFlip Msg. */
        public Msg: string;

        /** ResPlayroomFlip Id. */
        public Id: number;

        /** ResPlayroomFlip CardId. */
        public CardId: number;

        /**
         * Creates a new ResPlayroomFlip instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomFlip instance
         */
        public static create(properties?: tutorial.IResPlayroomFlip): tutorial.ResPlayroomFlip;

        /**
         * Encodes the specified ResPlayroomFlip message. Does not implicitly {@link tutorial.ResPlayroomFlip.verify|verify} messages.
         * @param message ResPlayroomFlip message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomFlip, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomFlip message, length delimited. Does not implicitly {@link tutorial.ResPlayroomFlip.verify|verify} messages.
         * @param message ResPlayroomFlip message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomFlip, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomFlip message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomFlip
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomFlip;

        /**
         * Decodes a ResPlayroomFlip message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomFlip
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomFlip;

        /**
         * Verifies a ResPlayroomFlip message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomFlip message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomFlip
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomFlip;

        /**
         * Creates a plain object from a ResPlayroomFlip message. Also converts values to other types if specified.
         * @param message ResPlayroomFlip
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomFlip, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomFlip to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomFlip
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomGame. */
    interface IReqPlayroomGame {

        /** ReqPlayroomGame Type */
        Type?: (number|null);
    }

    /** Represents a ReqPlayroomGame. */
    class ReqPlayroomGame implements IReqPlayroomGame {

        /**
         * Constructs a new ReqPlayroomGame.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomGame);

        /** ReqPlayroomGame Type. */
        public Type: number;

        /**
         * Creates a new ReqPlayroomGame instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomGame instance
         */
        public static create(properties?: tutorial.IReqPlayroomGame): tutorial.ReqPlayroomGame;

        /**
         * Encodes the specified ReqPlayroomGame message. Does not implicitly {@link tutorial.ReqPlayroomGame.verify|verify} messages.
         * @param message ReqPlayroomGame message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomGame, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomGame message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomGame.verify|verify} messages.
         * @param message ReqPlayroomGame message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomGame, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomGame message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomGame
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomGame;

        /**
         * Decodes a ReqPlayroomGame message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomGame
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomGame;

        /**
         * Verifies a ReqPlayroomGame message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomGame message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomGame
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomGame;

        /**
         * Creates a plain object from a ReqPlayroomGame message. Also converts values to other types if specified.
         * @param message ReqPlayroomGame
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomGame, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomGame to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomGame
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomGame. */
    interface IResPlayroomGame {

        /** ResPlayroomGame Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomGame Msg */
        Msg?: (string|null);

        /** ResPlayroomGame Type */
        Type?: (number|null);

        /** ResPlayroomGame Items */
        Items?: ({ [k: string]: tutorial.IItemInfo }|null);
    }

    /** Represents a ResPlayroomGame. */
    class ResPlayroomGame implements IResPlayroomGame {

        /**
         * Constructs a new ResPlayroomGame.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomGame);

        /** ResPlayroomGame Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomGame Msg. */
        public Msg: string;

        /** ResPlayroomGame Type. */
        public Type: number;

        /** ResPlayroomGame Items. */
        public Items: { [k: string]: tutorial.IItemInfo };

        /**
         * Creates a new ResPlayroomGame instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomGame instance
         */
        public static create(properties?: tutorial.IResPlayroomGame): tutorial.ResPlayroomGame;

        /**
         * Encodes the specified ResPlayroomGame message. Does not implicitly {@link tutorial.ResPlayroomGame.verify|verify} messages.
         * @param message ResPlayroomGame message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomGame, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomGame message, length delimited. Does not implicitly {@link tutorial.ResPlayroomGame.verify|verify} messages.
         * @param message ResPlayroomGame message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomGame, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomGame message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomGame
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomGame;

        /**
         * Decodes a ResPlayroomGame message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomGame
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomGame;

        /**
         * Verifies a ResPlayroomGame message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomGame message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomGame
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomGame;

        /**
         * Creates a plain object from a ResPlayroomGame message. Also converts values to other types if specified.
         * @param message ResPlayroomGame
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomGame, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomGame to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomGame
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomInteract. */
    interface IReqPlayroomInteract {

        /** ReqPlayroomInteract Id */
        Id?: (number|null);

        /** ReqPlayroomInteract Type */
        Type?: (number|null);
    }

    /** Represents a ReqPlayroomInteract. */
    class ReqPlayroomInteract implements IReqPlayroomInteract {

        /**
         * Constructs a new ReqPlayroomInteract.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomInteract);

        /** ReqPlayroomInteract Id. */
        public Id: number;

        /** ReqPlayroomInteract Type. */
        public Type: number;

        /**
         * Creates a new ReqPlayroomInteract instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomInteract instance
         */
        public static create(properties?: tutorial.IReqPlayroomInteract): tutorial.ReqPlayroomInteract;

        /**
         * Encodes the specified ReqPlayroomInteract message. Does not implicitly {@link tutorial.ReqPlayroomInteract.verify|verify} messages.
         * @param message ReqPlayroomInteract message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomInteract, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomInteract message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomInteract.verify|verify} messages.
         * @param message ReqPlayroomInteract message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomInteract, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomInteract message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomInteract
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomInteract;

        /**
         * Decodes a ReqPlayroomInteract message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomInteract
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomInteract;

        /**
         * Verifies a ReqPlayroomInteract message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomInteract message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomInteract
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomInteract;

        /**
         * Creates a plain object from a ReqPlayroomInteract message. Also converts values to other types if specified.
         * @param message ReqPlayroomInteract
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomInteract, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomInteract to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomInteract
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomInteract. */
    interface IResPlayroomInteract {

        /** ResPlayroomInteract Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomInteract Msg */
        Msg?: (string|null);
    }

    /** Represents a ResPlayroomInteract. */
    class ResPlayroomInteract implements IResPlayroomInteract {

        /**
         * Constructs a new ResPlayroomInteract.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomInteract);

        /** ResPlayroomInteract Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomInteract Msg. */
        public Msg: string;

        /**
         * Creates a new ResPlayroomInteract instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomInteract instance
         */
        public static create(properties?: tutorial.IResPlayroomInteract): tutorial.ResPlayroomInteract;

        /**
         * Encodes the specified ResPlayroomInteract message. Does not implicitly {@link tutorial.ResPlayroomInteract.verify|verify} messages.
         * @param message ResPlayroomInteract message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomInteract, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomInteract message, length delimited. Does not implicitly {@link tutorial.ResPlayroomInteract.verify|verify} messages.
         * @param message ResPlayroomInteract message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomInteract, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomInteract message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomInteract
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomInteract;

        /**
         * Decodes a ResPlayroomInteract message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomInteract
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomInteract;

        /**
         * Verifies a ResPlayroomInteract message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomInteract message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomInteract
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomInteract;

        /**
         * Creates a plain object from a ResPlayroomInteract message. Also converts values to other types if specified.
         * @param message ResPlayroomInteract
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomInteract, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomInteract to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomInteract
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomSetRoom. */
    interface IReqPlayroomSetRoom {

        /** ReqPlayroomSetRoom Playroom */
        Playroom?: ({ [k: string]: number }|null);
    }

    /** Represents a ReqPlayroomSetRoom. */
    class ReqPlayroomSetRoom implements IReqPlayroomSetRoom {

        /**
         * Constructs a new ReqPlayroomSetRoom.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomSetRoom);

        /** ReqPlayroomSetRoom Playroom. */
        public Playroom: { [k: string]: number };

        /**
         * Creates a new ReqPlayroomSetRoom instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomSetRoom instance
         */
        public static create(properties?: tutorial.IReqPlayroomSetRoom): tutorial.ReqPlayroomSetRoom;

        /**
         * Encodes the specified ReqPlayroomSetRoom message. Does not implicitly {@link tutorial.ReqPlayroomSetRoom.verify|verify} messages.
         * @param message ReqPlayroomSetRoom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomSetRoom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomSetRoom message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomSetRoom.verify|verify} messages.
         * @param message ReqPlayroomSetRoom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomSetRoom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomSetRoom message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomSetRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomSetRoom;

        /**
         * Decodes a ReqPlayroomSetRoom message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomSetRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomSetRoom;

        /**
         * Verifies a ReqPlayroomSetRoom message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomSetRoom message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomSetRoom
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomSetRoom;

        /**
         * Creates a plain object from a ReqPlayroomSetRoom message. Also converts values to other types if specified.
         * @param message ReqPlayroomSetRoom
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomSetRoom, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomSetRoom to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomSetRoom
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomSetRoom. */
    interface IResPlayroomSetRoom {

        /** ResPlayroomSetRoom Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomSetRoom Msg */
        Msg?: (string|null);
    }

    /** Represents a ResPlayroomSetRoom. */
    class ResPlayroomSetRoom implements IResPlayroomSetRoom {

        /**
         * Constructs a new ResPlayroomSetRoom.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomSetRoom);

        /** ResPlayroomSetRoom Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomSetRoom Msg. */
        public Msg: string;

        /**
         * Creates a new ResPlayroomSetRoom instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomSetRoom instance
         */
        public static create(properties?: tutorial.IResPlayroomSetRoom): tutorial.ResPlayroomSetRoom;

        /**
         * Encodes the specified ResPlayroomSetRoom message. Does not implicitly {@link tutorial.ResPlayroomSetRoom.verify|verify} messages.
         * @param message ResPlayroomSetRoom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomSetRoom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomSetRoom message, length delimited. Does not implicitly {@link tutorial.ResPlayroomSetRoom.verify|verify} messages.
         * @param message ResPlayroomSetRoom message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomSetRoom, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomSetRoom message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomSetRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomSetRoom;

        /**
         * Decodes a ResPlayroomSetRoom message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomSetRoom
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomSetRoom;

        /**
         * Verifies a ResPlayroomSetRoom message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomSetRoom message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomSetRoom
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomSetRoom;

        /**
         * Creates a plain object from a ResPlayroomSetRoom message. Also converts values to other types if specified.
         * @param message ResPlayroomSetRoom
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomSetRoom, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomSetRoom to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomSetRoom
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomSelectReward. */
    interface IReqPlayroomSelectReward {

        /** ReqPlayroomSelectReward Id */
        Id?: (number|null);
    }

    /** Represents a ReqPlayroomSelectReward. */
    class ReqPlayroomSelectReward implements IReqPlayroomSelectReward {

        /**
         * Constructs a new ReqPlayroomSelectReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomSelectReward);

        /** ReqPlayroomSelectReward Id. */
        public Id: number;

        /**
         * Creates a new ReqPlayroomSelectReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomSelectReward instance
         */
        public static create(properties?: tutorial.IReqPlayroomSelectReward): tutorial.ReqPlayroomSelectReward;

        /**
         * Encodes the specified ReqPlayroomSelectReward message. Does not implicitly {@link tutorial.ReqPlayroomSelectReward.verify|verify} messages.
         * @param message ReqPlayroomSelectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomSelectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomSelectReward message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomSelectReward.verify|verify} messages.
         * @param message ReqPlayroomSelectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomSelectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomSelectReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomSelectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomSelectReward;

        /**
         * Decodes a ReqPlayroomSelectReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomSelectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomSelectReward;

        /**
         * Verifies a ReqPlayroomSelectReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomSelectReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomSelectReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomSelectReward;

        /**
         * Creates a plain object from a ReqPlayroomSelectReward message. Also converts values to other types if specified.
         * @param message ReqPlayroomSelectReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomSelectReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomSelectReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomSelectReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomSelectReward. */
    interface IResPlayroomSelectReward {

        /** ResPlayroomSelectReward Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomSelectReward Msg */
        Msg?: (string|null);
    }

    /** Represents a ResPlayroomSelectReward. */
    class ResPlayroomSelectReward implements IResPlayroomSelectReward {

        /**
         * Constructs a new ResPlayroomSelectReward.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomSelectReward);

        /** ResPlayroomSelectReward Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomSelectReward Msg. */
        public Msg: string;

        /**
         * Creates a new ResPlayroomSelectReward instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomSelectReward instance
         */
        public static create(properties?: tutorial.IResPlayroomSelectReward): tutorial.ResPlayroomSelectReward;

        /**
         * Encodes the specified ResPlayroomSelectReward message. Does not implicitly {@link tutorial.ResPlayroomSelectReward.verify|verify} messages.
         * @param message ResPlayroomSelectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomSelectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomSelectReward message, length delimited. Does not implicitly {@link tutorial.ResPlayroomSelectReward.verify|verify} messages.
         * @param message ResPlayroomSelectReward message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomSelectReward, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomSelectReward message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomSelectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomSelectReward;

        /**
         * Decodes a ResPlayroomSelectReward message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomSelectReward
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomSelectReward;

        /**
         * Verifies a ResPlayroomSelectReward message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomSelectReward message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomSelectReward
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomSelectReward;

        /**
         * Creates a plain object from a ResPlayroomSelectReward message. Also converts values to other types if specified.
         * @param message ResPlayroomSelectReward
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomSelectReward, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomSelectReward to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomSelectReward
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomLose. */
    interface IReqPlayroomLose {
    }

    /** Represents a ReqPlayroomLose. */
    class ReqPlayroomLose implements IReqPlayroomLose {

        /**
         * Constructs a new ReqPlayroomLose.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomLose);

        /**
         * Creates a new ReqPlayroomLose instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomLose instance
         */
        public static create(properties?: tutorial.IReqPlayroomLose): tutorial.ReqPlayroomLose;

        /**
         * Encodes the specified ReqPlayroomLose message. Does not implicitly {@link tutorial.ReqPlayroomLose.verify|verify} messages.
         * @param message ReqPlayroomLose message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomLose, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomLose message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomLose.verify|verify} messages.
         * @param message ReqPlayroomLose message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomLose, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomLose message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomLose
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomLose;

        /**
         * Decodes a ReqPlayroomLose message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomLose
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomLose;

        /**
         * Verifies a ReqPlayroomLose message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomLose message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomLose
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomLose;

        /**
         * Creates a plain object from a ReqPlayroomLose message. Also converts values to other types if specified.
         * @param message ReqPlayroomLose
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomLose, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomLose to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomLose
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomLose. */
    interface IResPlayroomLose {

        /** ResPlayroomLose Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomLose Msg */
        Msg?: (string|null);
    }

    /** Represents a ResPlayroomLose. */
    class ResPlayroomLose implements IResPlayroomLose {

        /**
         * Constructs a new ResPlayroomLose.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomLose);

        /** ResPlayroomLose Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomLose Msg. */
        public Msg: string;

        /**
         * Creates a new ResPlayroomLose instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomLose instance
         */
        public static create(properties?: tutorial.IResPlayroomLose): tutorial.ResPlayroomLose;

        /**
         * Encodes the specified ResPlayroomLose message. Does not implicitly {@link tutorial.ResPlayroomLose.verify|verify} messages.
         * @param message ResPlayroomLose message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomLose, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomLose message, length delimited. Does not implicitly {@link tutorial.ResPlayroomLose.verify|verify} messages.
         * @param message ResPlayroomLose message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomLose, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomLose message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomLose
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomLose;

        /**
         * Decodes a ResPlayroomLose message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomLose
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomLose;

        /**
         * Verifies a ResPlayroomLose message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomLose message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomLose
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomLose;

        /**
         * Creates a plain object from a ResPlayroomLose message. Also converts values to other types if specified.
         * @param message ResPlayroomLose
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomLose, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomLose to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomLose
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomWork. */
    interface IReqPlayroomWork {
    }

    /** Represents a ReqPlayroomWork. */
    class ReqPlayroomWork implements IReqPlayroomWork {

        /**
         * Constructs a new ReqPlayroomWork.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomWork);

        /**
         * Creates a new ReqPlayroomWork instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomWork instance
         */
        public static create(properties?: tutorial.IReqPlayroomWork): tutorial.ReqPlayroomWork;

        /**
         * Encodes the specified ReqPlayroomWork message. Does not implicitly {@link tutorial.ReqPlayroomWork.verify|verify} messages.
         * @param message ReqPlayroomWork message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomWork, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomWork message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomWork.verify|verify} messages.
         * @param message ReqPlayroomWork message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomWork, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomWork message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomWork
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomWork;

        /**
         * Decodes a ReqPlayroomWork message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomWork
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomWork;

        /**
         * Verifies a ReqPlayroomWork message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomWork message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomWork
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomWork;

        /**
         * Creates a plain object from a ReqPlayroomWork message. Also converts values to other types if specified.
         * @param message ReqPlayroomWork
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomWork, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomWork to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomWork
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomWork. */
    interface IResPlayroomWork {

        /** ResPlayroomWork Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomWork Msg */
        Msg?: (string|null);
    }

    /** Represents a ResPlayroomWork. */
    class ResPlayroomWork implements IResPlayroomWork {

        /**
         * Constructs a new ResPlayroomWork.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomWork);

        /** ResPlayroomWork Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomWork Msg. */
        public Msg: string;

        /**
         * Creates a new ResPlayroomWork instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomWork instance
         */
        public static create(properties?: tutorial.IResPlayroomWork): tutorial.ResPlayroomWork;

        /**
         * Encodes the specified ResPlayroomWork message. Does not implicitly {@link tutorial.ResPlayroomWork.verify|verify} messages.
         * @param message ResPlayroomWork message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomWork, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomWork message, length delimited. Does not implicitly {@link tutorial.ResPlayroomWork.verify|verify} messages.
         * @param message ResPlayroomWork message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomWork, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomWork message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomWork
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomWork;

        /**
         * Decodes a ResPlayroomWork message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomWork
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomWork;

        /**
         * Verifies a ResPlayroomWork message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomWork message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomWork
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomWork;

        /**
         * Creates a plain object from a ResPlayroomWork message. Also converts values to other types if specified.
         * @param message ResPlayroomWork
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomWork, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomWork to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomWork
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomRest. */
    interface IReqPlayroomRest {
    }

    /** Represents a ReqPlayroomRest. */
    class ReqPlayroomRest implements IReqPlayroomRest {

        /**
         * Constructs a new ReqPlayroomRest.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomRest);

        /**
         * Creates a new ReqPlayroomRest instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomRest instance
         */
        public static create(properties?: tutorial.IReqPlayroomRest): tutorial.ReqPlayroomRest;

        /**
         * Encodes the specified ReqPlayroomRest message. Does not implicitly {@link tutorial.ReqPlayroomRest.verify|verify} messages.
         * @param message ReqPlayroomRest message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomRest, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomRest message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomRest.verify|verify} messages.
         * @param message ReqPlayroomRest message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomRest, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomRest message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomRest
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomRest;

        /**
         * Decodes a ReqPlayroomRest message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomRest
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomRest;

        /**
         * Verifies a ReqPlayroomRest message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomRest message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomRest
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomRest;

        /**
         * Creates a plain object from a ReqPlayroomRest message. Also converts values to other types if specified.
         * @param message ReqPlayroomRest
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomRest, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomRest to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomRest
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomRest. */
    interface IResPlayroomRest {

        /** ResPlayroomRest Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomRest Msg */
        Msg?: (string|null);
    }

    /** Represents a ResPlayroomRest. */
    class ResPlayroomRest implements IResPlayroomRest {

        /**
         * Constructs a new ResPlayroomRest.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomRest);

        /** ResPlayroomRest Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomRest Msg. */
        public Msg: string;

        /**
         * Creates a new ResPlayroomRest instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomRest instance
         */
        public static create(properties?: tutorial.IResPlayroomRest): tutorial.ResPlayroomRest;

        /**
         * Encodes the specified ResPlayroomRest message. Does not implicitly {@link tutorial.ResPlayroomRest.verify|verify} messages.
         * @param message ResPlayroomRest message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomRest, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomRest message, length delimited. Does not implicitly {@link tutorial.ResPlayroomRest.verify|verify} messages.
         * @param message ResPlayroomRest message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomRest, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomRest message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomRest
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomRest;

        /**
         * Decodes a ResPlayroomRest message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomRest
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomRest;

        /**
         * Verifies a ResPlayroomRest message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomRest message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomRest
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomRest;

        /**
         * Creates a plain object from a ResPlayroomRest message. Also converts values to other types if specified.
         * @param message ResPlayroomRest
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomRest, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomRest to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomRest
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomDraw. */
    interface IReqPlayroomDraw {
    }

    /** Represents a ReqPlayroomDraw. */
    class ReqPlayroomDraw implements IReqPlayroomDraw {

        /**
         * Constructs a new ReqPlayroomDraw.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomDraw);

        /**
         * Creates a new ReqPlayroomDraw instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomDraw instance
         */
        public static create(properties?: tutorial.IReqPlayroomDraw): tutorial.ReqPlayroomDraw;

        /**
         * Encodes the specified ReqPlayroomDraw message. Does not implicitly {@link tutorial.ReqPlayroomDraw.verify|verify} messages.
         * @param message ReqPlayroomDraw message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomDraw, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomDraw message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomDraw.verify|verify} messages.
         * @param message ReqPlayroomDraw message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomDraw, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomDraw message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomDraw
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomDraw;

        /**
         * Decodes a ReqPlayroomDraw message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomDraw
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomDraw;

        /**
         * Verifies a ReqPlayroomDraw message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomDraw message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomDraw
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomDraw;

        /**
         * Creates a plain object from a ReqPlayroomDraw message. Also converts values to other types if specified.
         * @param message ReqPlayroomDraw
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomDraw, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomDraw to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomDraw
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomDraw. */
    interface IResPlayroomDraw {

        /** ResPlayroomDraw Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomDraw Msg */
        Msg?: (string|null);

        /** ResPlayroomDraw Id */
        Id?: (number|null);
    }

    /** Represents a ResPlayroomDraw. */
    class ResPlayroomDraw implements IResPlayroomDraw {

        /**
         * Constructs a new ResPlayroomDraw.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomDraw);

        /** ResPlayroomDraw Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomDraw Msg. */
        public Msg: string;

        /** ResPlayroomDraw Id. */
        public Id: number;

        /**
         * Creates a new ResPlayroomDraw instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomDraw instance
         */
        public static create(properties?: tutorial.IResPlayroomDraw): tutorial.ResPlayroomDraw;

        /**
         * Encodes the specified ResPlayroomDraw message. Does not implicitly {@link tutorial.ResPlayroomDraw.verify|verify} messages.
         * @param message ResPlayroomDraw message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomDraw, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomDraw message, length delimited. Does not implicitly {@link tutorial.ResPlayroomDraw.verify|verify} messages.
         * @param message ResPlayroomDraw message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomDraw, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomDraw message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomDraw
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomDraw;

        /**
         * Decodes a ResPlayroomDraw message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomDraw
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomDraw;

        /**
         * Verifies a ResPlayroomDraw message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomDraw message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomDraw
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomDraw;

        /**
         * Creates a plain object from a ResPlayroomDraw message. Also converts values to other types if specified.
         * @param message ResPlayroomDraw
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomDraw, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomDraw to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomDraw
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqPlayroomChip. */
    interface IReqPlayroomChip {

        /** ReqPlayroomChip Num */
        Num?: (number|null);
    }

    /** Represents a ReqPlayroomChip. */
    class ReqPlayroomChip implements IReqPlayroomChip {

        /**
         * Constructs a new ReqPlayroomChip.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqPlayroomChip);

        /** ReqPlayroomChip Num. */
        public Num: number;

        /**
         * Creates a new ReqPlayroomChip instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqPlayroomChip instance
         */
        public static create(properties?: tutorial.IReqPlayroomChip): tutorial.ReqPlayroomChip;

        /**
         * Encodes the specified ReqPlayroomChip message. Does not implicitly {@link tutorial.ReqPlayroomChip.verify|verify} messages.
         * @param message ReqPlayroomChip message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqPlayroomChip, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqPlayroomChip message, length delimited. Does not implicitly {@link tutorial.ReqPlayroomChip.verify|verify} messages.
         * @param message ReqPlayroomChip message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqPlayroomChip, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqPlayroomChip message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqPlayroomChip
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqPlayroomChip;

        /**
         * Decodes a ReqPlayroomChip message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqPlayroomChip
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqPlayroomChip;

        /**
         * Verifies a ReqPlayroomChip message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqPlayroomChip message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqPlayroomChip
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqPlayroomChip;

        /**
         * Creates a plain object from a ReqPlayroomChip message. Also converts values to other types if specified.
         * @param message ReqPlayroomChip
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqPlayroomChip, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqPlayroomChip to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqPlayroomChip
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResPlayroomChip. */
    interface IResPlayroomChip {

        /** ResPlayroomChip Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResPlayroomChip Msg */
        Msg?: (string|null);
    }

    /** Represents a ResPlayroomChip. */
    class ResPlayroomChip implements IResPlayroomChip {

        /**
         * Constructs a new ResPlayroomChip.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResPlayroomChip);

        /** ResPlayroomChip Code. */
        public Code: tutorial.RES_CODE;

        /** ResPlayroomChip Msg. */
        public Msg: string;

        /**
         * Creates a new ResPlayroomChip instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResPlayroomChip instance
         */
        public static create(properties?: tutorial.IResPlayroomChip): tutorial.ResPlayroomChip;

        /**
         * Encodes the specified ResPlayroomChip message. Does not implicitly {@link tutorial.ResPlayroomChip.verify|verify} messages.
         * @param message ResPlayroomChip message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResPlayroomChip, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResPlayroomChip message, length delimited. Does not implicitly {@link tutorial.ResPlayroomChip.verify|verify} messages.
         * @param message ResPlayroomChip message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResPlayroomChip, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResPlayroomChip message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResPlayroomChip
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResPlayroomChip;

        /**
         * Decodes a ResPlayroomChip message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResPlayroomChip
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResPlayroomChip;

        /**
         * Verifies a ResPlayroomChip message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResPlayroomChip message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResPlayroomChip
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResPlayroomChip;

        /**
         * Creates a plain object from a ResPlayroomChip message. Also converts values to other types if specified.
         * @param message ResPlayroomChip
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResPlayroomChip, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResPlayroomChip to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResPlayroomChip
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFriendTreasure. */
    interface IReqFriendTreasure {
    }

    /** Represents a ReqFriendTreasure. */
    class ReqFriendTreasure implements IReqFriendTreasure {

        /**
         * Constructs a new ReqFriendTreasure.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFriendTreasure);

        /**
         * Creates a new ReqFriendTreasure instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFriendTreasure instance
         */
        public static create(properties?: tutorial.IReqFriendTreasure): tutorial.ReqFriendTreasure;

        /**
         * Encodes the specified ReqFriendTreasure message. Does not implicitly {@link tutorial.ReqFriendTreasure.verify|verify} messages.
         * @param message ReqFriendTreasure message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFriendTreasure, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFriendTreasure message, length delimited. Does not implicitly {@link tutorial.ReqFriendTreasure.verify|verify} messages.
         * @param message ReqFriendTreasure message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFriendTreasure, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFriendTreasure message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFriendTreasure
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFriendTreasure;

        /**
         * Decodes a ReqFriendTreasure message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFriendTreasure
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFriendTreasure;

        /**
         * Verifies a ReqFriendTreasure message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFriendTreasure message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFriendTreasure
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFriendTreasure;

        /**
         * Creates a plain object from a ReqFriendTreasure message. Also converts values to other types if specified.
         * @param message ReqFriendTreasure
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFriendTreasure, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFriendTreasure to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFriendTreasure
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendTreasure. */
    interface IResFriendTreasure {

        /** ResFriendTreasure Status */
        Status?: (number|null);

        /** ResFriendTreasure Star */
        Star?: (number|null);

        /** ResFriendTreasure Shift */
        Shift?: (number|null);

        /** ResFriendTreasure List */
        List?: (tutorial.ITreasureInfo[]|null);
    }

    /** Represents a ResFriendTreasure. */
    class ResFriendTreasure implements IResFriendTreasure {

        /**
         * Constructs a new ResFriendTreasure.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendTreasure);

        /** ResFriendTreasure Status. */
        public Status: number;

        /** ResFriendTreasure Star. */
        public Star: number;

        /** ResFriendTreasure Shift. */
        public Shift: number;

        /** ResFriendTreasure List. */
        public List: tutorial.ITreasureInfo[];

        /**
         * Creates a new ResFriendTreasure instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendTreasure instance
         */
        public static create(properties?: tutorial.IResFriendTreasure): tutorial.ResFriendTreasure;

        /**
         * Encodes the specified ResFriendTreasure message. Does not implicitly {@link tutorial.ResFriendTreasure.verify|verify} messages.
         * @param message ResFriendTreasure message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendTreasure, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendTreasure message, length delimited. Does not implicitly {@link tutorial.ResFriendTreasure.verify|verify} messages.
         * @param message ResFriendTreasure message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendTreasure, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendTreasure message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendTreasure
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendTreasure;

        /**
         * Decodes a ResFriendTreasure message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendTreasure
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendTreasure;

        /**
         * Verifies a ResFriendTreasure message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendTreasure message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendTreasure
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendTreasure;

        /**
         * Creates a plain object from a ResFriendTreasure message. Also converts values to other types if specified.
         * @param message ResFriendTreasure
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendTreasure, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendTreasure to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendTreasure
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a TreasureInfo. */
    interface ITreasureInfo {

        /** TreasureInfo Pos */
        Pos?: (number|null);

        /** TreasureInfo Type */
        Type?: (number|null);

        /** TreasureInfo Face */
        Face?: (number|null);

        /** TreasureInfo Avatar */
        Avatar?: (number|null);
    }

    /** Represents a TreasureInfo. */
    class TreasureInfo implements ITreasureInfo {

        /**
         * Constructs a new TreasureInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.ITreasureInfo);

        /** TreasureInfo Pos. */
        public Pos: number;

        /** TreasureInfo Type. */
        public Type: number;

        /** TreasureInfo Face. */
        public Face: number;

        /** TreasureInfo Avatar. */
        public Avatar: number;

        /**
         * Creates a new TreasureInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns TreasureInfo instance
         */
        public static create(properties?: tutorial.ITreasureInfo): tutorial.TreasureInfo;

        /**
         * Encodes the specified TreasureInfo message. Does not implicitly {@link tutorial.TreasureInfo.verify|verify} messages.
         * @param message TreasureInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.ITreasureInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified TreasureInfo message, length delimited. Does not implicitly {@link tutorial.TreasureInfo.verify|verify} messages.
         * @param message TreasureInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.ITreasureInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a TreasureInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns TreasureInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.TreasureInfo;

        /**
         * Decodes a TreasureInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns TreasureInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.TreasureInfo;

        /**
         * Verifies a TreasureInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a TreasureInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns TreasureInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.TreasureInfo;

        /**
         * Creates a plain object from a TreasureInfo message. Also converts values to other types if specified.
         * @param message TreasureInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.TreasureInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this TreasureInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for TreasureInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFriendTreasureStart. */
    interface IReqFriendTreasureStart {
    }

    /** Represents a ReqFriendTreasureStart. */
    class ReqFriendTreasureStart implements IReqFriendTreasureStart {

        /**
         * Constructs a new ReqFriendTreasureStart.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFriendTreasureStart);

        /**
         * Creates a new ReqFriendTreasureStart instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFriendTreasureStart instance
         */
        public static create(properties?: tutorial.IReqFriendTreasureStart): tutorial.ReqFriendTreasureStart;

        /**
         * Encodes the specified ReqFriendTreasureStart message. Does not implicitly {@link tutorial.ReqFriendTreasureStart.verify|verify} messages.
         * @param message ReqFriendTreasureStart message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFriendTreasureStart, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFriendTreasureStart message, length delimited. Does not implicitly {@link tutorial.ReqFriendTreasureStart.verify|verify} messages.
         * @param message ReqFriendTreasureStart message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFriendTreasureStart, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFriendTreasureStart message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFriendTreasureStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFriendTreasureStart;

        /**
         * Decodes a ReqFriendTreasureStart message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFriendTreasureStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFriendTreasureStart;

        /**
         * Verifies a ReqFriendTreasureStart message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFriendTreasureStart message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFriendTreasureStart
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFriendTreasureStart;

        /**
         * Creates a plain object from a ReqFriendTreasureStart message. Also converts values to other types if specified.
         * @param message ReqFriendTreasureStart
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFriendTreasureStart, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFriendTreasureStart to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFriendTreasureStart
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendTreasureStart. */
    interface IResFriendTreasureStart {

        /** ResFriendTreasureStart Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResFriendTreasureStart Msg */
        Msg?: (string|null);
    }

    /** Represents a ResFriendTreasureStart. */
    class ResFriendTreasureStart implements IResFriendTreasureStart {

        /**
         * Constructs a new ResFriendTreasureStart.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendTreasureStart);

        /** ResFriendTreasureStart Code. */
        public Code: tutorial.RES_CODE;

        /** ResFriendTreasureStart Msg. */
        public Msg: string;

        /**
         * Creates a new ResFriendTreasureStart instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendTreasureStart instance
         */
        public static create(properties?: tutorial.IResFriendTreasureStart): tutorial.ResFriendTreasureStart;

        /**
         * Encodes the specified ResFriendTreasureStart message. Does not implicitly {@link tutorial.ResFriendTreasureStart.verify|verify} messages.
         * @param message ResFriendTreasureStart message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendTreasureStart, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendTreasureStart message, length delimited. Does not implicitly {@link tutorial.ResFriendTreasureStart.verify|verify} messages.
         * @param message ResFriendTreasureStart message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendTreasureStart, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendTreasureStart message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendTreasureStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendTreasureStart;

        /**
         * Decodes a ResFriendTreasureStart message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendTreasureStart
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendTreasureStart;

        /**
         * Verifies a ResFriendTreasureStart message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendTreasureStart message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendTreasureStart
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendTreasureStart;

        /**
         * Creates a plain object from a ResFriendTreasureStart message. Also converts values to other types if specified.
         * @param message ResFriendTreasureStart
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendTreasureStart, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendTreasureStart to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendTreasureStart
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqFriendTreasureFilp. */
    interface IReqFriendTreasureFilp {
    }

    /** Represents a ReqFriendTreasureFilp. */
    class ReqFriendTreasureFilp implements IReqFriendTreasureFilp {

        /**
         * Constructs a new ReqFriendTreasureFilp.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqFriendTreasureFilp);

        /**
         * Creates a new ReqFriendTreasureFilp instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqFriendTreasureFilp instance
         */
        public static create(properties?: tutorial.IReqFriendTreasureFilp): tutorial.ReqFriendTreasureFilp;

        /**
         * Encodes the specified ReqFriendTreasureFilp message. Does not implicitly {@link tutorial.ReqFriendTreasureFilp.verify|verify} messages.
         * @param message ReqFriendTreasureFilp message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqFriendTreasureFilp, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqFriendTreasureFilp message, length delimited. Does not implicitly {@link tutorial.ReqFriendTreasureFilp.verify|verify} messages.
         * @param message ReqFriendTreasureFilp message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqFriendTreasureFilp, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqFriendTreasureFilp message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqFriendTreasureFilp
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqFriendTreasureFilp;

        /**
         * Decodes a ReqFriendTreasureFilp message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqFriendTreasureFilp
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqFriendTreasureFilp;

        /**
         * Verifies a ReqFriendTreasureFilp message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqFriendTreasureFilp message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqFriendTreasureFilp
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqFriendTreasureFilp;

        /**
         * Creates a plain object from a ReqFriendTreasureFilp message. Also converts values to other types if specified.
         * @param message ReqFriendTreasureFilp
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqFriendTreasureFilp, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqFriendTreasureFilp to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqFriendTreasureFilp
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendTreasureFilp. */
    interface IResFriendTreasureFilp {

        /** ResFriendTreasureFilp Code */
        Code?: (tutorial.RES_CODE|null);

        /** ResFriendTreasureFilp Msg */
        Msg?: (string|null);

        /** ResFriendTreasureFilp Pos */
        Pos?: (number|null);

        /** ResFriendTreasureFilp Type */
        Type?: (number|null);

        /** ResFriendTreasureFilp Face */
        Face?: (number|null);

        /** ResFriendTreasureFilp Avatar */
        Avatar?: (number|null);
    }

    /** Represents a ResFriendTreasureFilp. */
    class ResFriendTreasureFilp implements IResFriendTreasureFilp {

        /**
         * Constructs a new ResFriendTreasureFilp.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendTreasureFilp);

        /** ResFriendTreasureFilp Code. */
        public Code: tutorial.RES_CODE;

        /** ResFriendTreasureFilp Msg. */
        public Msg: string;

        /** ResFriendTreasureFilp Pos. */
        public Pos: number;

        /** ResFriendTreasureFilp Type. */
        public Type: number;

        /** ResFriendTreasureFilp Face. */
        public Face: number;

        /** ResFriendTreasureFilp Avatar. */
        public Avatar: number;

        /**
         * Creates a new ResFriendTreasureFilp instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendTreasureFilp instance
         */
        public static create(properties?: tutorial.IResFriendTreasureFilp): tutorial.ResFriendTreasureFilp;

        /**
         * Encodes the specified ResFriendTreasureFilp message. Does not implicitly {@link tutorial.ResFriendTreasureFilp.verify|verify} messages.
         * @param message ResFriendTreasureFilp message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendTreasureFilp, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendTreasureFilp message, length delimited. Does not implicitly {@link tutorial.ResFriendTreasureFilp.verify|verify} messages.
         * @param message ResFriendTreasureFilp message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendTreasureFilp, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendTreasureFilp message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendTreasureFilp
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendTreasureFilp;

        /**
         * Decodes a ResFriendTreasureFilp message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendTreasureFilp
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendTreasureFilp;

        /**
         * Verifies a ResFriendTreasureFilp message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendTreasureFilp message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendTreasureFilp
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendTreasureFilp;

        /**
         * Creates a plain object from a ResFriendTreasureFilp message. Also converts values to other types if specified.
         * @param message ResFriendTreasureFilp
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendTreasureFilp, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendTreasureFilp to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendTreasureFilp
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResFriendTreasureStar. */
    interface IResFriendTreasureStar {

        /** ResFriendTreasureStar Star */
        Star?: (number|null);
    }

    /** Represents a ResFriendTreasureStar. */
    class ResFriendTreasureStar implements IResFriendTreasureStar {

        /**
         * Constructs a new ResFriendTreasureStar.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResFriendTreasureStar);

        /** ResFriendTreasureStar Star. */
        public Star: number;

        /**
         * Creates a new ResFriendTreasureStar instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResFriendTreasureStar instance
         */
        public static create(properties?: tutorial.IResFriendTreasureStar): tutorial.ResFriendTreasureStar;

        /**
         * Encodes the specified ResFriendTreasureStar message. Does not implicitly {@link tutorial.ResFriendTreasureStar.verify|verify} messages.
         * @param message ResFriendTreasureStar message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResFriendTreasureStar, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResFriendTreasureStar message, length delimited. Does not implicitly {@link tutorial.ResFriendTreasureStar.verify|verify} messages.
         * @param message ResFriendTreasureStar message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResFriendTreasureStar, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResFriendTreasureStar message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResFriendTreasureStar
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResFriendTreasureStar;

        /**
         * Decodes a ResFriendTreasureStar message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResFriendTreasureStar
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResFriendTreasureStar;

        /**
         * Verifies a ResFriendTreasureStar message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResFriendTreasureStar message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResFriendTreasureStar
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResFriendTreasureStar;

        /**
         * Creates a plain object from a ResFriendTreasureStar message. Also converts values to other types if specified.
         * @param message ResFriendTreasureStar
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResFriendTreasureStar, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResFriendTreasureStar to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResFriendTreasureStar
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ReqAdminInfo. */
    interface IReqAdminInfo {

        /** ReqAdminInfo Uid */
        Uid?: (number|null);
    }

    /** Represents a ReqAdminInfo. */
    class ReqAdminInfo implements IReqAdminInfo {

        /**
         * Constructs a new ReqAdminInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IReqAdminInfo);

        /** ReqAdminInfo Uid. */
        public Uid: number;

        /**
         * Creates a new ReqAdminInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ReqAdminInfo instance
         */
        public static create(properties?: tutorial.IReqAdminInfo): tutorial.ReqAdminInfo;

        /**
         * Encodes the specified ReqAdminInfo message. Does not implicitly {@link tutorial.ReqAdminInfo.verify|verify} messages.
         * @param message ReqAdminInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IReqAdminInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ReqAdminInfo message, length delimited. Does not implicitly {@link tutorial.ReqAdminInfo.verify|verify} messages.
         * @param message ReqAdminInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IReqAdminInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ReqAdminInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ReqAdminInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ReqAdminInfo;

        /**
         * Decodes a ReqAdminInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ReqAdminInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ReqAdminInfo;

        /**
         * Verifies a ReqAdminInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ReqAdminInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ReqAdminInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ReqAdminInfo;

        /**
         * Creates a plain object from a ReqAdminInfo message. Also converts values to other types if specified.
         * @param message ReqAdminInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ReqAdminInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ReqAdminInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ReqAdminInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }

    /** Properties of a ResAdminInfo. */
    interface IResAdminInfo {

        /** ResAdminInfo info */
        info?: (string|null);
    }

    /** Represents a ResAdminInfo. */
    class ResAdminInfo implements IResAdminInfo {

        /**
         * Constructs a new ResAdminInfo.
         * @param [properties] Properties to set
         */
        constructor(properties?: tutorial.IResAdminInfo);

        /** ResAdminInfo info. */
        public info: string;

        /**
         * Creates a new ResAdminInfo instance using the specified properties.
         * @param [properties] Properties to set
         * @returns ResAdminInfo instance
         */
        public static create(properties?: tutorial.IResAdminInfo): tutorial.ResAdminInfo;

        /**
         * Encodes the specified ResAdminInfo message. Does not implicitly {@link tutorial.ResAdminInfo.verify|verify} messages.
         * @param message ResAdminInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encode(message: tutorial.IResAdminInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Encodes the specified ResAdminInfo message, length delimited. Does not implicitly {@link tutorial.ResAdminInfo.verify|verify} messages.
         * @param message ResAdminInfo message or plain object to encode
         * @param [writer] Writer to encode to
         * @returns Writer
         */
        public static encodeDelimited(message: tutorial.IResAdminInfo, writer?: $protobuf.Writer): $protobuf.Writer;

        /**
         * Decodes a ResAdminInfo message from the specified reader or buffer.
         * @param reader Reader or buffer to decode from
         * @param [length] Message length if known beforehand
         * @returns ResAdminInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): tutorial.ResAdminInfo;

        /**
         * Decodes a ResAdminInfo message from the specified reader or buffer, length delimited.
         * @param reader Reader or buffer to decode from
         * @returns ResAdminInfo
         * @throws {Error} If the payload is not a reader or valid buffer
         * @throws {$protobuf.util.ProtocolError} If required fields are missing
         */
        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): tutorial.ResAdminInfo;

        /**
         * Verifies a ResAdminInfo message.
         * @param message Plain object to verify
         * @returns `null` if valid, otherwise the reason why it is not
         */
        public static verify(message: { [k: string]: any }): (string|null);

        /**
         * Creates a ResAdminInfo message from a plain object. Also converts values to their respective internal types.
         * @param object Plain object
         * @returns ResAdminInfo
         */
        public static fromObject(object: { [k: string]: any }): tutorial.ResAdminInfo;

        /**
         * Creates a plain object from a ResAdminInfo message. Also converts values to other types if specified.
         * @param message ResAdminInfo
         * @param [options] Conversion options
         * @returns Plain object
         */
        public static toObject(message: tutorial.ResAdminInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

        /**
         * Converts this ResAdminInfo to JSON.
         * @returns JSON object
         */
        public toJSON(): { [k: string]: any };

        /**
         * Gets the default type url for ResAdminInfo
         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
         * @returns The default type url
         */
        public static getTypeUrl(typeUrlPrefix?: string): string;
    }
}
