<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: test_include.proto

namespace Bar;

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

class TestInclude extends \Google\Protobuf\Internal\Message
{
    private $a = 0;

    public function getA()
    {
        return $this->a;
    }

    public function setA($var)
    {
        GPBUtil::checkInt32($var);
        $this->a = $var;
    }

}

$pool = DescriptorPool::getGeneratedPool();

$pool->internalAddGeneratedFile(hex2bin(
    "0a3b0a12746573745f696e636c7564652e70726f746f120362617222180a" .
    "0b54657374496e636c75646512090a0161180120012805620670726f746f" .
    "33"
));

