403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.216.141
Web Server : Apache
System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/php/smarty3/sysplugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/php/smarty3/sysplugins/smarty_internal_templateparser.php
<?php

class TP_yyStackEntry
{
    public $stateno;       /* The state-number */
    public $major;         /* The major token value.  This is the code
                     ** number for the token at this stack level */
    public $minor; /* The user-supplied minor token value.  This
                     ** is the value of the token  */
};


// line 11 "./lexer/smarty_internal_templateparser.y"

/**
* Smarty Template Parser Class
*
* This is the template parser.
* It is generated from the smarty_internal_templateparser.y file
* 
* @author Uwe Tews <uwe.tews@googlemail.com>
*/
class Smarty_Internal_Templateparser
{
// line 23 "./lexer/smarty_internal_templateparser.y"

    const ERR1 = 'Security error: Call to private object member not allowed';
    const ERR2 = 'Security error: Call to dynamic object member not allowed';
    const ERR3 = 'PHP in template not allowed. Use SmartyBC to enable it';

    /**
     * result status
     *
     * @var bool
     */
    public $successful = true;

    /**
     * return value
     *
     * @var mixed
     */
    public $retvalue = 0;

    /**
     * @var
     */
    public $yymajor;

    /**
     * last index of array variable
     *
     * @var mixed
     */
    public $last_index;

    /**
     * last variable name
     *
     * @var string
     */
    public $last_variable;

    /**
     * root parse tree buffer
     *
     * @var Smarty_Internal_ParseTree_Template
     */
    public $root_buffer;

    /**
     * current parse tree object
     *
     * @var Smarty_Internal_ParseTree
     */
    public $current_buffer;

    /**
     * lexer object
     *
     * @var Smarty_Internal_Templatelexer
     */
    public $lex;

    /**
     * internal error flag
     *
     * @var bool
     */
    private $internalError = false;

    /**
     * {strip} status
     *
     * @var bool
     */
    public $strip = false;
    /**
     * compiler object
     *
     * @var Smarty_Internal_TemplateCompilerBase
     */
    public $compiler = null;

    /**
     * smarty object
     *
     * @var Smarty
     */
    public $smarty = null;

    /**
     * template object
     *
     * @var Smarty_Internal_Template
     */
    public $template = null;

    /**
     * block nesting level
     *
     * @var int
     */
    public $block_nesting_level = 0;

    /**
     * security object
     *
     * @var Smarty_Security
     */
    public $security = null;

    /**
     * template prefix array
     *
     * @var \Smarty_Internal_ParseTree[]
     */
    public $template_prefix = array();

    /**
     * template prefix array
     *
     * @var \Smarty_Internal_ParseTree[]
     */
    public $template_postfix = array();

    /**
     * constructor
     *
     * @param Smarty_Internal_Templatelexer        $lex
     * @param Smarty_Internal_TemplateCompilerBase $compiler
     */
    public function __construct(Smarty_Internal_Templatelexer $lex, Smarty_Internal_TemplateCompilerBase $compiler)
    {
        $this->lex = $lex;
        $this->compiler = $compiler;
        $this->template = $this->compiler->template;
        $this->smarty = $this->template->smarty;
        $this->security = isset($this->smarty->security_policy) ? $this->smarty->security_policy : false;
        $this->current_buffer = $this->root_buffer = new Smarty_Internal_ParseTree_Template();
    }

     /**
     * insert PHP code in current buffer
     *
     * @param string $code
     */
    public function insertPhpCode($code)
    {
        $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Tag($this, $code));
    }

    /**
     * error rundown
     *
     */
    public function errorRunDown()
    {
        while ($this->yystack !== array()) {
            $this->yy_pop_parser_stack();
        }
        if (is_resource($this->yyTraceFILE)) {
            fclose($this->yyTraceFILE);
        }
    }

    /**
     *  merge PHP code with prefix code and return parse tree tag object
     *
     * @param string $code
     *
     * @return Smarty_Internal_ParseTree_Tag
     */
    public function mergePrefixCode($code)
    {
        $tmp = '';
        foreach ($this->compiler->prefix_code as $preCode) {
            $tmp .= $preCode;
        }
        $this->compiler->prefix_code = array();
        $tmp .= $code;
        return new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp, true));
    }


    const TP_VERT                           =  1;
    const TP_COLON                          =  2;
    const TP_PHP                            =  3;
    const TP_TEXT                           =  4;
    const TP_STRIPON                        =  5;
    const TP_STRIPOFF                       =  6;
    const TP_LITERALSTART                   =  7;
    const TP_LITERALEND                     =  8;
    const TP_LITERAL                        =  9;
    const TP_SIMPELOUTPUT                   = 10;
    const TP_SIMPLETAG                      = 11;
    const TP_SMARTYBLOCKCHILDPARENT         = 12;
    const TP_LDEL                           = 13;
    const TP_RDEL                           = 14;
    const TP_DOLLARID                       = 15;
    const TP_EQUAL                          = 16;
    const TP_ID                             = 17;
    const TP_PTR                            = 18;
    const TP_LDELMAKENOCACHE                = 19;
    const TP_LDELIF                         = 20;
    const TP_LDELFOR                        = 21;
    const TP_SEMICOLON                      = 22;
    const TP_INCDEC                         = 23;
    const TP_TO                             = 24;
    const TP_STEP                           = 25;
    const TP_LDELFOREACH                    = 26;
    const TP_SPACE                          = 27;
    const TP_AS                             = 28;
    const TP_APTR                           = 29;
    const TP_LDELSETFILTER                  = 30;
    const TP_CLOSETAG                       = 31;
    const TP_LDELSLASH                      = 32;
    const TP_ATTR                           = 33;
    const TP_INTEGER                        = 34;
    const TP_COMMA                          = 35;
    const TP_OPENP                          = 36;
    const TP_CLOSEP                         = 37;
    const TP_MATH                           = 38;
    const TP_UNIMATH                        = 39;
    const TP_ISIN                           = 40;
    const TP_QMARK                          = 41;
    const TP_NOT                            = 42;
    const TP_TYPECAST                       = 43;
    const TP_HEX                            = 44;
    const TP_DOT                            = 45;
    const TP_INSTANCEOF                     = 46;
    const TP_SINGLEQUOTESTRING              = 47;
    const TP_DOUBLECOLON                    = 48;
    const TP_NAMESPACE                      = 49;
    const TP_AT                             = 50;
    const TP_HATCH                          = 51;
    const TP_OPENB                          = 52;
    const TP_CLOSEB                         = 53;
    const TP_DOLLAR                         = 54;
    const TP_LOGOP                          = 55;
    const TP_SLOGOP                         = 56;
    const TP_TLOGOP                         = 57;
    const TP_SINGLECOND                     = 58;
    const TP_ARRAYOPEN                      = 59;
    const TP_QUOTE                          = 60;
    const TP_BACKTICK                       = 61;
    const YY_NO_ACTION = 516;
    const YY_ACCEPT_ACTION = 515;
    const YY_ERROR_ACTION = 514;

    const YY_SZ_ACTTAB = 2042;
public static $yy_action = array(
    239,  240,  241,    1,   95,  127,  428,  185,  257,  207,
      6,   53,   44,   21,  275,  224,  105,  389,  428,  192,
    208,  254,  209,  312,  200,  389,   22,  389,   29,   41,
    389,   49,   42,   43,  268,  216,  389,  226,  389,  195,
    389,   52,    4,  315,  290,  383,  300,  227,  215,    5,
     50,    7,  239,  240,  241,    1,  192,   93,  383,   51,
    484,  207,    6,   53,  383,  515,   92,  428,  105,  350,
    192,   37,  208,  254,  209,  245,  214,  135,   22,  428,
    121,   41,  350,  259,   42,   43,  268,  216,  350,  272,
     94,  195,  168,   52,    4,  131,  290,  260,   90,  258,
    144,    5,   50,  288,  239,  240,  241,    1,  141,  129,
    302,  194,  206,  207,    6,   53,  290,  176,  249,   19,
    105,  184,  144,  264,  208,  254,  209,  192,  214,  261,
     22,   52,  250,   41,  290,   95,   42,   43,  268,  216,
    265,  272,  147,  195,  211,   52,    4,  131,  290,  222,
     55,  304,  249,    5,   50,  294,  239,  240,  241,    1,
    290,  129,  132,  186,  257,  207,    6,   53,  349,   12,
    133,  175,  105,  145,  349,  250,  208,  254,  209,  302,
    214,  206,   22,   52,  257,   41,  290,   49,   42,   43,
    268,  216,  134,  272,  228,  195,  250,   52,    4,  247,
    290,  230,  191,  349,  100,    5,   50,   49,  239,  240,
    241,    1,  257,  128,  310,  194,  349,  207,    6,   53,
    298,   13,  349,  121,  105,  292,  223,   14,  208,  254,
    209,  290,  214,   94,   11,   49,  262,   41,  171,  293,
     42,   43,  268,  216,  428,  272,  288,  195,  252,   52,
      4,   18,  290,  170,  293,  251,  428,    5,   50,  192,
    239,  240,  241,    1,   30,  129,  220,  181,  151,  207,
      6,   53,  385,  136,  192,    3,  105,   95,  170,  293,
    208,  254,  209,  249,  203,  385,   22,  382,  219,   41,
     17,  385,   42,   43,  268,  216,   14,  272,  149,  195,
    382,   52,    4,  322,  290,  290,  382,  108,  249,    5,
     50,  192,  239,  240,  241,    1,  143,  130,  104,  194,
    138,  207,    6,   53,  172,  293,  249,  175,  105,  238,
    100,  206,  208,  254,  209,  192,  214,   13,   22,   83,
    250,   41,  290,   14,   42,   43,  268,  216,   95,  272,
    228,  195,  252,   52,    4,   18,  290,  325,   99,  251,
    100,    5,   50,   84,  239,  240,  241,    1,   34,  129,
     95,  179,  228,  207,    6,   53,   27,  309,  108,  229,
    105,   15,  100,  428,  208,  254,  209,  280,  214,  150,
     22,  250,  212,   41,   89,  428,   42,   43,  268,  216,
    108,  272,  139,  195,  457,   52,    4,  457,  290,  165,
    257,  457,  249,    5,   50,  192,  239,  240,  241,    1,
    159,  129,  169,  194,  217,  207,    6,   53,  252,  162,
    249,   18,  105,   49,  176,  251,  208,  254,  209,  249,
    180,  262,   22,   26,  457,   41,  274,  152,   42,   43,
    268,  216,  256,  272,  122,  195,  457,   52,    4,  457,
    290,  163,  156,  457,  279,    5,   50,  175,  239,  240,
    241,    1,  122,  131,  166,  194,   16,  207,    6,   53,
    204,  189,  158,  324,  105,  210,  176,  253,  208,  254,
    209,  173,  214,  237,   20,  236,  237,   45,   37,  176,
     42,   43,  268,  216,  132,  272,  441,  195,  253,   52,
      4,   12,  290,  441,   33,    8,  429,    5,   50,   85,
    239,  240,  241,    1,  289,  131,   10,  194,  429,  207,
      6,   53,   25,  190,  291,    9,  105,  305,  109,   91,
    208,  254,  209,  441,  214,  164,   20,    9,  215,   41,
    441,  167,   42,   43,  268,  216,  311,  272,   25,  195,
    316,   52,    4,   32,  290,  308,   25,  103,  317,    5,
     50,  277,  205,  206,  244,  235,   86,  102,  153,  183,
     96,   82,  154,   39,   40,   38,   94,  146,  242,  266,
    243,   87,  215,  248,  271,  196,  273,  249,  278,  288,
    283,  284,  285,  286,  277,  205,  206,  244,  174,   86,
    102,  106,  182,   96,   62,  255,  176,  113,  263,   94,
    267,  269,  266,  270,  215,   23,    7,  271,  196,  273,
    287,  278,  288,  231,  232,  233,  234,  125,   54,  155,
    239,  240,  241,    1,  157,  160,  225,   34,  313,  207,
      6,   53,  314,  323,  326,  249,  105,   44,   21,  275,
    208,  254,  209,  277,   35,  206,  246,  298,  107,  102,
    298,  183,   96,   82,  277,  298,  206,  298,   94,  107,
    298,  266,  193,  111,   74,  298,  271,  196,  273,   94,
    278,  288,  266,  298,  298,  298,  298,  271,  196,  273,
    298,  278,  288,  298,  298,  298,  298,  298,   36,  277,
     13,  206,  199,  307,  107,  298,   14,  193,  111,   74,
    298,   39,   40,   38,   94,  298,  298,  266,  252,  298,
    298,   18,  271,  196,  273,  251,  278,  288,  283,  284,
    285,  286,  298,  140,  298,   13,  148,  198,  307,  298,
     88,   14,  303,   39,   40,   38,  249,  298,  239,  240,
    241,    2,  298,  301,  298,  298,  298,  207,    6,   53,
    283,  284,  285,  286,  105,  176,  298,  298,  208,  254,
    209,  298,  298,  298,  303,  298,  298,  298,  298,  298,
    239,  240,  241,    2,  298,  301,  298,  298,  298,  207,
      6,   53,  298,  298,  298,  298,  105,  298,  296,   28,
    208,  254,  209,  298,  298,  298,  298,  298,  298,  298,
    277,  298,  206,  298,  298,  101,  298,  298,  193,  114,
     47,  298,  112,  298,  298,   94,  298,  298,  266,  298,
    297,   28,  298,  271,  196,  273,  298,  278,  288,  298,
    298,  298,  277,   13,  206,  298,  298,  107,  298,   14,
    193,  114,   69,  298,   39,   40,   38,   94,  298,  298,
    266,  298,  298,  298,  298,  271,  196,  273,  298,  278,
    288,  283,  284,  285,  286,  298,  298,  202,  277,  298,
    206,  298,  192,  107,  298,  298,  193,  114,   69,  298,
    298,  298,  298,   94,  298,  353,  266,  298,  298,  221,
    298,  271,  196,  273,  298,  278,  288,  298,   13,  298,
    277,  298,  206,  197,   14,  107,  213,  428,  193,  111,
     74,  298,  298,  298,  457,   94,  298,  457,  266,  428,
      3,  457,  441,  271,  196,  273,  298,  278,  288,  298,
    298,  298,  298,  298,  298,  277,  298,  206,  298,  306,
    107,  298,  298,  193,  114,   69,  298,  298,  252,  441,
     94,   18,  441,  266,  457,  251,  441,  298,  271,  196,
    273,  298,  278,  288,  277,   13,  206,  142,  298,  101,
    201,   14,  193,  114,   61,  298,  229,  298,  298,   94,
    298,  319,  266,  298,  298,  298,  298,  271,  196,  273,
    298,  278,  288,  277,  298,  206,  298,  298,  107,  298,
    298,  188,  110,   60,  298,   39,   40,   38,   94,  298,
    298,  266,  298,  298,  298,  298,  271,  196,  273,  298,
    278,  288,  283,  284,  285,  286,  277,  298,  206,  298,
    298,  107,  298,  298,  193,   97,   81,  277,  298,  206,
    298,   94,  107,  298,  266,  193,   98,   80,  298,  271,
    196,  273,   94,  278,  288,  266,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   56,  298,  298,  298,
    298,   94,  298,  298,  266,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   68,  277,  298,  206,
    298,   94,  107,  298,  266,  193,   97,   57,  298,  271,
    196,  273,   94,  278,  288,  266,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   67,  298,  298,  298,
    298,   94,  298,  298,  266,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   58,  277,  298,  206,
    298,   94,  107,  298,  266,  193,  114,   59,  298,  271,
    196,  273,   94,  278,  288,  266,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   70,  298,  298,  298,
    298,   94,  298,  298,  266,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   61,  277,  298,  206,
    298,   94,  107,  298,  266,  193,  114,   66,  298,  271,
    196,  273,   94,  278,  288,  266,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   71,  298,  298,  298,
    298,   94,  298,  298,  266,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   72,  277,  298,  206,
    298,   94,  107,  298,  266,  193,  114,   73,  298,  271,
    196,  273,   94,  278,  288,  266,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   75,  298,  298,  298,
    298,   94,  298,  298,  266,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  187,  114,   63,  277,  298,  206,
    298,   94,  107,  298,  266,  193,  114,   64,  298,  271,
    196,  273,   94,  278,  288,  266,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   65,  298,  298,  298,
    298,   94,  298,  298,  266,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   76,  277,  298,  206,
    298,   94,  107,  298,  266,  193,  114,   77,  298,  271,
    196,  273,   94,  278,  288,  266,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   78,  298,  298,  298,
    298,   94,  298,  298,  266,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   79,  277,  298,  206,
    298,   94,  107,  298,  266,  193,  114,   46,  298,  271,
    196,  273,   94,  278,  288,  266,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  114,   48,  298,  298,  298,
    298,   94,  298,  298,  266,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  126,  298,  277,  298,  206,
    298,   94,  107,  298,  298,  193,  120,  298,  320,  271,
    196,  273,   94,  278,  288,  298,  298,  298,  298,  276,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    137,  107,  298,  298,  193,  124,  298,  298,  298,  298,
    249,   94,   44,   21,  275,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  115,  298,  277,  298,  206,
    298,   94,  107,  298,  298,  193,  116,  298,  298,  271,
    196,  273,   94,  278,  288,  298,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  298,
    161,  107,  298,  298,  193,  117,  298,  298,  298,  298,
    249,   94,   44,   21,  275,  298,  298,  298,  298,  271,
    196,  273,  298,  278,  288,  298,  277,  298,  206,  298,
    298,  107,  298,  298,  193,  118,  298,  277,  298,  206,
    298,   94,  107,  298,  298,  193,  119,  298,  298,  271,
    196,  273,   94,  278,  288,  298,  298,  298,  298,  298,
    271,  196,  273,  298,  278,  288,  277,  298,  206,  213,
    298,  107,  395,  298,  193,  123,  298,  457,  298,  298,
    457,   94,  298,  298,  457,  441,  298,  213,  298,  271,
    196,  273,  298,  278,  288,  457,  298,  298,  457,  298,
    298,   33,  457,  441,  298,  298,  428,  298,  395,  395,
    395,  298,  441,  298,  298,  441,  298,  457,  428,  441,
    281,  298,  298,  213,  298,  395,  395,  395,  395,  298,
    441,  457,  298,  441,  457,  457,   24,  441,  457,  441,
    318,   39,   40,   38,  457,  298,  298,  457,  298,  298,
    298,  457,  441,  298,  298,  298,  298,  298,  283,  284,
    285,  286,  298,  298,  298,  298,  441,  298,  298,  441,
    298,  457,  298,  441,   39,   40,   38,  298,  298,  441,
    298,  295,  441,  298,  457,  298,  441,  298,  298,  282,
    298,  283,  284,  285,  286,  298,  218,   39,   40,   38,
    298,  298,  298,  298,  298,   39,   40,   38,  298,  298,
     39,   40,   38,  177,  283,  284,  285,  286,  298,  298,
    178,  298,  283,  284,  285,  286,  298,  283,  284,  285,
    286,   31,  298,  299,  298,  298,  298,   39,   40,   38,
    298,  298,  298,  298,   39,   40,   38,  298,  321,  298,
    298,  298,  298,  298,  283,  284,  285,  286,  298,  298,
    298,  283,  284,  285,  286,  298,  298,   39,   40,   38,
    298,  298,   39,   40,   38,  457,  298,  298,  457,  298,
    298,  298,  457,  441,  283,  284,  285,  286,  298,  283,
    284,  285,  286,  298,  298,  298,  298,  298,  298,  298,
    298,   39,   40,   38,  298,  298,  298,  298,  298,  298,
    441,  298,  298,  441,  298,  457,  298,  441,  283,  284,
    285,  286,
    );
    public static $yy_lookahead = array(
     10,   11,   12,   13,   18,   15,   36,   17,   23,   19,
     20,   21,   86,   87,   88,   45,   26,   14,   48,    1,
     30,   31,   32,   53,   34,   22,   36,   24,   13,   39,
     27,   46,   42,   43,   44,   45,   33,   47,   35,   49,
     37,   51,   52,   53,   54,   14,   61,   16,   45,   59,
     60,   36,   10,   11,   12,   13,    1,   15,   27,   17,
      1,   19,   20,   21,   33,   63,   64,   36,   26,   14,
      1,    2,   30,   31,   32,   71,   34,   15,   36,   48,
     72,   39,   27,   75,   42,   43,   44,   45,   33,   47,
     82,   49,   78,   51,   52,   15,   54,   17,   36,   91,
     96,   59,   60,   95,   10,   11,   12,   13,   74,   15,
     67,   17,   69,   19,   20,   21,   54,  103,   84,   13,
     26,   15,   96,   17,   30,   31,   32,    1,   34,   49,
     36,   51,   98,   39,   54,   18,   42,   43,   44,   45,
     34,   47,   74,   49,   18,   51,   52,   15,   54,   17,
    107,  108,   84,   59,   60,   14,   10,   11,   12,   13,
     54,   15,   45,   17,   23,   19,   20,   21,   27,   52,
     82,  103,   26,   96,   33,   98,   30,   31,   32,   67,
     34,   69,   36,   51,   23,   39,   54,   46,   42,   43,
     44,   45,   15,   47,   72,   49,   98,   51,   52,   84,
     54,   79,   80,   14,   82,   59,   60,   46,   10,   11,
     12,   13,   23,   15,   53,   17,   27,   19,   20,   21,
    108,   27,   33,   72,   26,   71,   75,   33,   30,   31,
     32,   54,   34,   82,   36,   46,   97,   39,   99,  100,
     42,   43,   44,   45,   36,   47,   95,   49,   10,   51,
     52,   13,   54,   99,  100,   17,   48,   59,   60,    1,
     10,   11,   12,   13,   13,   15,   15,   17,   17,   19,
     20,   21,   14,   74,    1,   16,   26,   18,   99,  100,
     30,   31,   32,   84,   34,   27,   36,   14,   50,   39,
     27,   33,   42,   43,   44,   45,   33,   47,   74,   49,
     27,   51,   52,   15,   54,   54,   33,   48,   84,   59,
     60,    1,   10,   11,   12,   13,   74,   15,   81,   17,
     72,   19,   20,   21,   99,  100,   84,  103,   26,   67,
     82,   69,   30,   31,   32,    1,   34,   27,   36,   82,
     98,   39,   54,   33,   42,   43,   44,   45,   18,   47,
     72,   49,   10,   51,   52,   13,   54,   79,   82,   17,
     82,   59,   60,   82,   10,   11,   12,   13,   16,   15,
     18,   17,   72,   19,   20,   21,   29,  101,   48,   79,
     26,   22,   82,   36,   30,   31,   32,   53,   34,   96,
     36,   98,   50,   39,   35,   48,   42,   43,   44,   45,
     48,   47,   74,   49,   10,   51,   52,   13,   54,   78,
     23,   17,   84,   59,   60,    1,   10,   11,   12,   13,
     74,   15,   15,   17,   17,   19,   20,   21,   10,   74,
     84,   13,   26,   46,  103,   17,   30,   31,   32,   84,
     34,   97,   36,   29,   50,   39,   93,   96,   42,   43,
     44,   45,   17,   47,  101,   49,   10,   51,   52,   13,
     54,   78,   96,   17,   93,   59,   60,  103,   10,   11,
     12,   13,  101,   15,   78,   17,   16,   19,   20,   21,
     65,   66,   96,   23,   26,   50,  103,  104,   30,   31,
     32,    7,   34,    9,   36,    8,    9,   39,    2,  103,
     42,   43,   44,   45,   45,   47,   45,   49,  104,   51,
     52,   52,   54,   52,   16,   36,   36,   59,   60,   96,
     10,   11,   12,   13,  100,   15,   36,   17,   48,   19,
     20,   21,   35,   66,   37,   35,   26,   37,   48,   83,
     30,   31,   32,   45,   34,   83,   36,   35,   45,   39,
     52,   83,   42,   43,   44,   45,   53,   47,   35,   49,
     37,   51,   52,   16,   54,   53,   35,   22,   37,   59,
     60,   67,   68,   69,   70,    8,   72,   73,   96,   75,
     76,   77,   96,   38,   39,   40,   82,   74,   14,   85,
     14,   78,   45,   15,   90,   91,   92,   84,   94,   95,
     55,   56,   57,   58,   67,   68,   69,   70,   17,   72,
     73,   17,   75,   76,   77,   17,  103,   17,   17,   82,
     17,   34,   85,   34,   45,   41,   36,   90,   91,   92,
     17,   94,   95,    3,    4,    5,    6,    7,   17,   51,
     10,   11,   12,   13,   51,   74,   17,   16,   53,   19,
     20,   21,   53,   17,   37,   84,   26,   86,   87,   88,
     30,   31,   32,   67,   24,   69,   70,  109,   72,   73,
    109,   75,   76,   77,   67,  109,   69,  109,   82,   72,
    109,   85,   75,   76,   77,  109,   90,   91,   92,   82,
     94,   95,   85,  109,  109,  109,  109,   90,   91,   92,
    109,   94,   95,  109,  109,  109,  109,  109,   25,   67,
     27,   69,  105,  106,   72,  109,   33,   75,   76,   77,
    109,   38,   39,   40,   82,  109,  109,   85,   10,  109,
    109,   13,   90,   91,   92,   17,   94,   95,   55,   56,
     57,   58,  109,   28,  109,   27,   74,  105,  106,  109,
     78,   33,    4,   38,   39,   40,   84,  109,   10,   11,
     12,   13,  109,   15,  109,  109,  109,   19,   20,   21,
     55,   56,   57,   58,   26,  103,  109,  109,   30,   31,
     32,  109,  109,  109,    4,  109,  109,  109,  109,  109,
     10,   11,   12,   13,  109,   15,  109,  109,  109,   19,
     20,   21,  109,  109,  109,  109,   26,  109,   60,   61,
     30,   31,   32,  109,  109,  109,  109,  109,  109,  109,
     67,  109,   69,  109,  109,   72,  109,  109,   75,   76,
     77,  109,   79,  109,  109,   82,  109,  109,   85,  109,
     60,   61,  109,   90,   91,   92,  109,   94,   95,  109,
    109,  109,   67,   27,   69,  109,  109,   72,  109,   33,
     75,   76,   77,  109,   38,   39,   40,   82,  109,  109,
     85,  109,  109,  109,  109,   90,   91,   92,  109,   94,
     95,   55,   56,   57,   58,  109,  109,  102,   67,  109,
     69,  109,    1,   72,  109,  109,   75,   76,   77,  109,
    109,  109,  109,   82,  109,   14,   85,  109,  109,   18,
    109,   90,   91,   92,  109,   94,   95,  109,   27,  109,
     67,  109,   69,  102,   33,   72,    2,   36,   75,   76,
     77,  109,  109,  109,   10,   82,  109,   13,   85,   48,
     16,   17,   18,   90,   91,   92,  109,   94,   95,  109,
    109,  109,  109,  109,  109,   67,  109,   69,  109,  106,
     72,  109,  109,   75,   76,   77,  109,  109,   10,   45,
     82,   13,   48,   85,   50,   17,   52,  109,   90,   91,
     92,  109,   94,   95,   67,   27,   69,   29,  109,   72,
    102,   33,   75,   76,   77,  109,   79,  109,  109,   82,
    109,   14,   85,  109,  109,  109,  109,   90,   91,   92,
    109,   94,   95,   67,  109,   69,  109,  109,   72,  109,
    109,   75,   76,   77,  109,   38,   39,   40,   82,  109,
    109,   85,  109,  109,  109,  109,   90,   91,   92,  109,
     94,   95,   55,   56,   57,   58,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,   67,  109,   69,
    109,   82,   72,  109,   85,   75,   76,   77,  109,   90,
     91,   92,   82,   94,   95,   85,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,  109,  109,  109,
    109,   82,  109,  109,   85,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,   67,  109,   69,
    109,   82,   72,  109,   85,   75,   76,   77,  109,   90,
     91,   92,   82,   94,   95,   85,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,  109,  109,  109,
    109,   82,  109,  109,   85,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,   67,  109,   69,
    109,   82,   72,  109,   85,   75,   76,   77,  109,   90,
     91,   92,   82,   94,   95,   85,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,  109,  109,  109,
    109,   82,  109,  109,   85,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,   67,  109,   69,
    109,   82,   72,  109,   85,   75,   76,   77,  109,   90,
     91,   92,   82,   94,   95,   85,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,  109,  109,  109,
    109,   82,  109,  109,   85,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,   67,  109,   69,
    109,   82,   72,  109,   85,   75,   76,   77,  109,   90,
     91,   92,   82,   94,   95,   85,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,  109,  109,  109,
    109,   82,  109,  109,   85,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,   67,  109,   69,
    109,   82,   72,  109,   85,   75,   76,   77,  109,   90,
     91,   92,   82,   94,   95,   85,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,  109,  109,  109,
    109,   82,  109,  109,   85,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,   67,  109,   69,
    109,   82,   72,  109,   85,   75,   76,   77,  109,   90,
     91,   92,   82,   94,   95,   85,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,  109,  109,  109,
    109,   82,  109,  109,   85,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,   67,  109,   69,
    109,   82,   72,  109,   85,   75,   76,   77,  109,   90,
     91,   92,   82,   94,   95,   85,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,   77,  109,  109,  109,
    109,   82,  109,  109,   85,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,  109,   67,  109,   69,
    109,   82,   72,  109,  109,   75,   76,  109,   89,   90,
     91,   92,   82,   94,   95,  109,  109,  109,  109,   89,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
     74,   72,  109,  109,   75,   76,  109,  109,  109,  109,
     84,   82,   86,   87,   88,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,  109,   67,  109,   69,
    109,   82,   72,  109,  109,   75,   76,  109,  109,   90,
     91,   92,   82,   94,   95,  109,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,  109,
     74,   72,  109,  109,   75,   76,  109,  109,  109,  109,
     84,   82,   86,   87,   88,  109,  109,  109,  109,   90,
     91,   92,  109,   94,   95,  109,   67,  109,   69,  109,
    109,   72,  109,  109,   75,   76,  109,   67,  109,   69,
    109,   82,   72,  109,  109,   75,   76,  109,  109,   90,
     91,   92,   82,   94,   95,  109,  109,  109,  109,  109,
     90,   91,   92,  109,   94,   95,   67,  109,   69,    2,
    109,   72,    2,  109,   75,   76,  109,   10,  109,  109,
     13,   82,  109,  109,   17,   18,  109,    2,  109,   90,
     91,   92,  109,   94,   95,   10,  109,  109,   13,  109,
    109,   16,   17,   18,  109,  109,   36,  109,   38,   39,
     40,  109,   45,  109,  109,   48,  109,   50,   48,   52,
     53,  109,  109,    2,  109,   55,   56,   57,   58,  109,
     45,   10,  109,   48,   13,   50,    2,   52,   17,   18,
     37,   38,   39,   40,   10,  109,  109,   13,  109,  109,
    109,   17,   18,  109,  109,  109,  109,  109,   55,   56,
     57,   58,  109,  109,  109,  109,   45,  109,  109,   48,
    109,   50,  109,   52,   38,   39,   40,  109,  109,   45,
    109,   14,   48,  109,   50,  109,   52,  109,  109,   53,
    109,   55,   56,   57,   58,  109,   37,   38,   39,   40,
    109,  109,  109,  109,  109,   38,   39,   40,  109,  109,
     38,   39,   40,   14,   55,   56,   57,   58,  109,  109,
     14,  109,   55,   56,   57,   58,  109,   55,   56,   57,
     58,    2,  109,   61,  109,  109,  109,   38,   39,   40,
    109,  109,  109,  109,   38,   39,   40,  109,   14,  109,
    109,  109,  109,  109,   55,   56,   57,   58,  109,  109,
    109,   55,   56,   57,   58,  109,  109,   38,   39,   40,
    109,  109,   38,   39,   40,   10,  109,  109,   13,  109,
    109,  109,   17,   18,   55,   56,   57,   58,  109,   55,
     56,   57,   58,  109,  109,  109,  109,  109,  109,  109,
    109,   38,   39,   40,  109,  109,  109,  109,  109,  109,
     45,  109,  109,   48,  109,   50,  109,   52,   55,   56,
     57,   58,
);
    const YY_SHIFT_USE_DFLT = -31;
    const YY_SHIFT_MAX = 230;
    public static $yy_shift_ofst = array(
    -31,   42,   42,   94,  146,  146,  198,   94,   94,  146,
     94,  198,  -10,  250,   94,   94,   94,  250,   94,   94,
     94,   94,   94,  302,  354,   94,   94,   94,   94,   94,
     94,   94,   94,  406,   94,   94,   94,  458,  510,  510,
    510,  510,  510,  510,  510,  510,  683,  826,  826,   80,
    748,  891,  132,   62,  310,  780,  545,  715,  987, 1823,
   1856, 1879, 1887, 1892, 1919, 1926, 1949, 1954, 1983, 1983,
   1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983, 1983,
   1983, 1983, 1983,  958,  718,  117,  259,  310,  310,   62,
     62,   69,  630,  924,  238,  251,   55,  258,  273,  418,
    418,  352,  194,  177,  194,  263,  126,  330,  407,  407,
    334,  414,  194,   18,   18,   18,   18,   18,   18,   18,
     18,  -14,  -14,   59,   18,  -31,  -31, 1787, 1805, 1841,
   1854, 1985,  106,  342,  446,  498,  194,  194,  460,  194,
    288,  194,  288,  194,  459,  459,  194,  194,  194,  194,
    459,   15,  459,  459,  459,  461,  459,  461,  459,  194,
    194,  194,  194,   18,  496,   18,   18,  496,   18,  479,
    -14,  -14,  -14,  -31,  -31,  -31,  -31,  -31,  -31, 1790,
      3,   31,  141,  189,  394,  -30,  347,  -15,  161,  484,
    487,  359,  435,  387,  208,  480,  490,  497,  500,  512,
    503,  523,  531,  547,  567,  574,  576,  578,  591,  594,
    598,  600,  601,  603,  579,  587,  589,  590,  584,  613,
    479,  621,  588,  593,  629,  595,  599,  636,  631,  617,
    640,
);
    const YY_REDUCE_USE_DFLT = -75;
    const YY_REDUCE_MAX = 178;
    public static $yy_reduce_ofst = array(
      2,  504,  537,  596,  607,  642,  753,  785,  821,  853,
    888,  917,  946,  979,  990, 1019, 1049, 1060, 1089, 1119,
   1130, 1159, 1189, 1200, 1229, 1259, 1270, 1299, 1329, 1340,
   1369, 1399, 1410, 1439, 1469, 1480, 1509, 1539, 1550, 1579,
   1609, 1620, 1649, 1679, 1690, 1719,  571, 1576, 1646,    8,
     43,  513,  151,  122,  672,  112,  -74,  -74,  -74,  -74,
    -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
    -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,  -74,
    -74,  -74,  -74,   34,  242,  139,  154,   68,  224,  278,
    300,  383,  262,    4,   77,  276,   14,   14,   14,  293,
     77,  179,  199,  248,  328,  346,  331,  179,  353,  371,
     14,   14,  355,  396,   14,   14,   14,   14,   14,   14,
     14,  179,  225,   14,   14,  415,   14,   26,   26,   26,
     26,   26,   88,   98,   26,   26,  115,  115,  237,  115,
    257,  115,  281,  115,  344,  344,  115,  115,  115,  115,
    344,  351,  344,  344,  344,  366,  344,  386,  344,  115,
    115,  115,  115,  364,  404,  364,  364,  404,  364,  423,
    424,  424,  424,  467,  456,  462,  468,  482,  486,
);
    public static $yyExpectedTokens = array(
         array(),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 53, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(10, 11, 12, 13, 15, 17, 19, 20, 21, 26, 30, 31, 32, 34, 36, 39, 42, 43, 44, 45, 47, 49, 51, 52, 54, 59, 60, ),
         array(25, 27, 33, 38, 39, 40, 55, 56, 57, 58, ),
         array(27, 33, 38, 39, 40, 55, 56, 57, 58, ),
         array(27, 33, 38, 39, 40, 55, 56, 57, 58, ),
         array(15, 17, 49, 51, 54, ),
         array(4, 10, 11, 12, 13, 15, 19, 20, 21, 26, 30, 31, 32, 60, 61, ),
         array(1, 14, 18, 27, 33, 36, 48, ),
         array(15, 17, 51, 54, ),
         array(15, 36, 54, ),
         array(1, 27, 33, ),
         array(4, 10, 11, 12, 13, 15, 19, 20, 21, 26, 30, 31, 32, 60, 61, ),
         array(22, 38, 39, 40, 55, 56, 57, 58, ),
         array(28, 38, 39, 40, 55, 56, 57, 58, ),
         array(14, 38, 39, 40, 55, 56, 57, 58, ),
         array(37, 38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 53, 55, 56, 57, 58, ),
         array(37, 38, 39, 40, 55, 56, 57, 58, ),
         array(14, 38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, 61, ),
         array(14, 38, 39, 40, 55, 56, 57, 58, ),
         array(14, 38, 39, 40, 55, 56, 57, 58, ),
         array(2, 38, 39, 40, 55, 56, 57, 58, ),
         array(14, 38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(38, 39, 40, 55, 56, 57, 58, ),
         array(10, 13, 17, 27, 29, 33, ),
         array(10, 13, 17, 27, 33, ),
         array(18, 45, 52, ),
         array(16, 18, 48, ),
         array(1, 27, 33, ),
         array(1, 27, 33, ),
         array(15, 36, 54, ),
         array(15, 36, 54, ),
         array(1, 2, ),
         array(3, 4, 5, 6, 7, 10, 11, 12, 13, 19, 20, 21, 26, 30, 31, 32, ),
         array(2, 10, 13, 16, 17, 18, 45, 48, 50, 52, ),
         array(10, 13, 17, 50, ),
         array(13, 15, 17, 54, ),
         array(1, 14, 27, 33, ),
         array(1, 14, 27, 33, ),
         array(1, 14, 27, 33, ),
         array(10, 13, 17, ),
         array(10, 13, 17, ),
         array(16, 18, 48, ),
         array(27, 33, ),
         array(15, 54, ),
         array(27, 33, ),
         array(27, 33, ),
         array(1, 18, ),
         array(18, 48, ),
         array(15, 17, ),
         array(15, 17, ),
         array(1, 53, ),
         array(1, 29, ),
         array(27, 33, ),
         array(1, ),
         array(1, ),
         array(1, ),
         array(1, ),
         array(1, ),
         array(1, ),
         array(1, ),
         array(1, ),
         array(18, ),
         array(18, ),
         array(1, ),
         array(1, ),
         array(),
         array(),
         array(2, 10, 13, 17, 18, 45, 48, 50, 52, 53, ),
         array(2, 10, 13, 16, 17, 18, 45, 48, 50, 52, ),
         array(2, 10, 13, 17, 18, 45, 48, 50, 52, ),
         array(2, 10, 13, 17, 18, 45, 48, 50, 52, ),
         array(10, 13, 17, 18, 45, 48, 50, 52, ),
         array(13, 15, 17, 34, 54, ),
         array(10, 13, 17, 50, ),
         array(10, 13, 17, ),
         array(16, 45, 52, ),
         array(27, 33, ),
         array(27, 33, ),
         array(16, 23, ),
         array(27, 33, ),
         array(15, 54, ),
         array(27, 33, ),
         array(15, 54, ),
         array(27, 33, ),
         array(45, 52, ),
         array(45, 52, ),
         array(27, 33, ),
         array(27, 33, ),
         array(27, 33, ),
         array(27, 33, ),
         array(45, 52, ),
         array(13, 36, ),
         array(45, 52, ),
         array(45, 52, ),
         array(45, 52, ),
         array(45, 52, ),
         array(45, 52, ),
         array(45, 52, ),
         array(45, 52, ),
         array(27, 33, ),
         array(27, 33, ),
         array(27, 33, ),
         array(27, 33, ),
         array(1, ),
         array(2, ),
         array(1, ),
         array(1, ),
         array(2, ),
         array(1, ),
         array(36, ),
         array(18, ),
         array(18, ),
         array(18, ),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(2, 36, 38, 39, 40, 48, 55, 56, 57, 58, ),
         array(14, 22, 24, 27, 33, 35, 37, 45, ),
         array(14, 16, 27, 33, 36, 48, ),
         array(14, 23, 27, 33, 46, ),
         array(14, 23, 27, 33, 46, ),
         array(10, 13, 17, 50, ),
         array(36, 45, 48, 53, ),
         array(29, 36, 48, ),
         array(23, 46, 61, ),
         array(23, 46, 53, ),
         array(7, 9, ),
         array(8, 9, ),
         array(22, 35, ),
         array(17, 50, ),
         array(23, 46, ),
         array(36, 48, ),
         array(36, 48, ),
         array(36, 48, ),
         array(35, 37, ),
         array(35, 37, ),
         array(35, 53, ),
         array(45, 53, ),
         array(35, 37, ),
         array(35, 37, ),
         array(16, 45, ),
         array(8, ),
         array(14, ),
         array(14, ),
         array(15, ),
         array(17, ),
         array(17, ),
         array(17, ),
         array(17, ),
         array(17, ),
         array(17, ),
         array(45, ),
         array(34, ),
         array(34, ),
         array(36, ),
         array(41, ),
         array(17, ),
         array(36, ),
         array(17, ),
         array(51, ),
         array(51, ),
         array(17, ),
         array(53, ),
         array(53, ),
         array(17, ),
         array(16, ),
         array(37, ),
         array(24, ),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
         array(),
);
    public static $yy_default = array(
    338,  514,  514,  514,  499,  499,  514,  476,  476,  514,
    476,  514,  514,  514,  514,  514,  514,  514,  514,  514,
    514,  514,  514,  514,  514,  514,  514,  514,  514,  514,
    514,  514,  514,  514,  514,  514,  514,  514,  514,  514,
    514,  514,  514,  514,  514,  514,  379,  358,  379,  514,
    514,  415,  514,  514,  379,  514,  514,  384,  514,  514,
    514,  514,  351,  514,  514,  514,  514,  514,  363,  475,
    399,  403,  474,  500,  502,  501,  404,  386,  390,  391,
    381,  384,  351,  379,  379,  489,  431,  379,  379,  514,
    514,  370,  327,  430,  441,  514,  393,  393,  393,  441,
    441,  431,  379,  514,  379,  379,  373,  431,  514,  514,
    393,  393,  360,  375,  393,  397,  406,  407,  408,  398,
    402,  431,  486,  406,  396,  336,  483,  430,  430,  430,
    430,  430,  514,  443,  441,  457,  348,  359,  514,  362,
    514,  367,  514,  368,  438,  439,  352,  354,  355,  356,
    467,  441,  466,  469,  468,  434,  435,  436,  437,  369,
    365,  366,  361,  371,  477,  374,  376,  478,  424,  441,
    463,  490,  487,  336,  482,  482,  482,  441,  441,  415,
    411,  415,  405,  405,  442,  415,  415,  405,  405,  334,
    514,  514,  514,  405,  415,  425,  514,  514,  514,  514,
    411,  514,  514,  411,  514,  514,  514,  514,  514,  514,
    514,  514,  514,  514,  411,  413,  514,  488,  417,  514,
    457,  514,  514,  514,  514,  514,  420,  514,  514,  514,
    387,  328,  329,  330,  331,  332,  333,  335,  337,  339,
    340,  341,  342,  343,  344,  345,  347,  377,  357,  378,
    459,  460,  461,  481,  372,  479,  480,  409,  418,  419,
    428,  429,  440,  444,  445,  446,  394,  395,  410,  412,
    414,  416,  420,  421,  422,  400,  401,  423,  426,  427,
    454,  452,  455,  491,  492,  493,  494,  432,  433,  465,
    458,  473,  346,  464,  510,  511,  503,  504,  505,  508,
    507,  509,  512,  513,  506,  496,  498,  497,  495,  470,
    453,  451,  448,  449,  450,  456,  471,  472,  417,  447,
    485,  462,  457,  380,  364,  388,  392,
);
    const YYNOCODE = 110;
    const YYSTACKDEPTH = 500;
    const YYNSTATE = 327;
    const YYNRULE = 187;
    const YYERRORSYMBOL = 62;
    const YYERRSYMDT = 'yy0';
    const YYFALLBACK = 0;
    public static $yyFallback = array(
    );
    public function Trace($TraceFILE, $zTracePrompt)
    {
        if (!$TraceFILE) {
            $zTracePrompt = 0;
        } elseif (!$zTracePrompt) {
            $TraceFILE = 0;
        }
        $this->yyTraceFILE = $TraceFILE;
        $this->yyTracePrompt = $zTracePrompt;
    }

    public function PrintTrace()
    {
        $this->yyTraceFILE = fopen('php://output', 'w');
        $this->yyTracePrompt = '<br>';
    }

    public $yyTraceFILE;
    public $yyTracePrompt;
    public $yyidx;                    /* Index of top element in stack */
    public $yyerrcnt;                 /* Shifts left before out of the error */
    public $yystack = array();  /* The parser's stack */

    public $yyTokenName = array(
  '$',             'VERT',          'COLON',         'PHP',         
  'TEXT',          'STRIPON',       'STRIPOFF',      'LITERALSTART',
  'LITERALEND',    'LITERAL',       'SIMPELOUTPUT',  'SIMPLETAG',   
  'SMARTYBLOCKCHILDPARENT',  'LDEL',          'RDEL',          'DOLLARID',    
  'EQUAL',         'ID',            'PTR',           'LDELMAKENOCACHE',
  'LDELIF',        'LDELFOR',       'SEMICOLON',     'INCDEC',      
  'TO',            'STEP',          'LDELFOREACH',   'SPACE',       
  'AS',            'APTR',          'LDELSETFILTER',  'CLOSETAG',    
  'LDELSLASH',     'ATTR',          'INTEGER',       'COMMA',       
  'OPENP',         'CLOSEP',        'MATH',          'UNIMATH',     
  'ISIN',          'QMARK',         'NOT',           'TYPECAST',    
  'HEX',           'DOT',           'INSTANCEOF',    'SINGLEQUOTESTRING',
  'DOUBLECOLON',   'NAMESPACE',     'AT',            'HATCH',       
  'OPENB',         'CLOSEB',        'DOLLAR',        'LOGOP',       
  'SLOGOP',        'TLOGOP',        'SINGLECOND',    'ARRAYOPEN',   
  'QUOTE',         'BACKTICK',      'error',         'start',       
  'template',      'literal_e2',    'literal_e1',    'smartytag',   
  'tagbody',       'tag',           'outattr',       'eqoutattr',   
  'varindexed',    'output',        'attributes',    'variable',    
  'value',         'expr',          'modifierlist',  'statement',   
  'statements',    'foraction',     'varvar',        'modparameters',
  'attribute',     'ternary',       'tlop',          'lop',         
  'scond',         'array',         'function',      'ns1',         
  'doublequoted_with_quotes',  'static_class_access',  'arraydef',      'object',      
  'arrayindex',    'indexdef',      'varvarele',     'objectchain', 
  'objectelement',  'method',        'params',        'modifier',    
  'modparameter',  'arrayelements',  'arrayelement',  'doublequoted',
  'doublequotedcontent',
    );

    public static $yyRuleName = array(
  'start ::= template',
  'template ::= template PHP',
  'template ::= template TEXT',
  'template ::= template STRIPON',
  'template ::= template STRIPOFF',
  'template ::= template LITERALSTART literal_e2 LITERALEND',
  'literal_e2 ::= literal_e1 LITERALSTART literal_e1 LITERALEND',
  'literal_e2 ::= literal_e1',
  'literal_e1 ::= literal_e1 LITERAL',
  'literal_e1 ::=',
  'template ::= template smartytag',
  'template ::=',
  'smartytag ::= SIMPELOUTPUT',
  'smartytag ::= SIMPLETAG',
  'smartytag ::= SMARTYBLOCKCHILDPARENT',
  'smartytag ::= LDEL tagbody RDEL',
  'smartytag ::= tag RDEL',
  'tagbody ::= outattr',
  'tagbody ::= DOLLARID eqoutattr',
  'tagbody ::= varindexed eqoutattr',
  'eqoutattr ::= EQUAL outattr',
  'outattr ::= output attributes',
  'output ::= variable',
  'output ::= value',
  'output ::= expr',
  'tag ::= LDEL ID attributes',
  'tag ::= LDEL ID',
  'tag ::= LDEL ID modifierlist attributes',
  'tag ::= LDEL ID PTR ID attributes',
  'tag ::= LDEL ID PTR ID modifierlist attributes',
  'tag ::= LDELMAKENOCACHE DOLLARID',
  'tag ::= LDELIF expr',
  'tag ::= LDELIF expr attributes',
  'tag ::= LDELIF statement',
  'tag ::= LDELIF statement attributes',
  'tag ::= LDELFOR statements SEMICOLON expr SEMICOLON varindexed foraction attributes',
  'foraction ::= EQUAL expr',
  'foraction ::= INCDEC',
  'tag ::= LDELFOR statement TO expr attributes',
  'tag ::= LDELFOR statement TO expr STEP expr attributes',
  'tag ::= LDELFOREACH SPACE expr AS varvar attributes',
  'tag ::= LDELFOREACH SPACE expr AS varvar APTR varvar attributes',
  'tag ::= LDELFOREACH attributes',
  'tag ::= LDELSETFILTER ID modparameters',
  'tag ::= LDELSETFILTER ID modparameters modifierlist',
  'smartytag ::= CLOSETAG',
  'tag ::= LDELSLASH ID',
  'tag ::= LDELSLASH ID modifierlist',
  'tag ::= LDELSLASH ID PTR ID',
  'tag ::= LDELSLASH ID PTR ID modifierlist',
  'attributes ::= attributes attribute',
  'attributes ::= attribute',
  'attributes ::=',
  'attribute ::= SPACE ID EQUAL ID',
  'attribute ::= ATTR expr',
  'attribute ::= ATTR value',
  'attribute ::= SPACE ID',
  'attribute ::= SPACE expr',
  'attribute ::= SPACE value',
  'attribute ::= SPACE INTEGER EQUAL expr',
  'statements ::= statement',
  'statements ::= statements COMMA statement',
  'statement ::= DOLLARID EQUAL INTEGER',
  'statement ::= DOLLARID EQUAL expr',
  'statement ::= varindexed EQUAL expr',
  'statement ::= OPENP statement CLOSEP',
  'expr ::= value',
  'expr ::= ternary',
  'expr ::= DOLLARID COLON ID',
  'expr ::= expr MATH value',
  'expr ::= expr UNIMATH value',
  'expr ::= expr tlop value',
  'expr ::= expr lop expr',
  'expr ::= expr scond',
  'expr ::= expr ISIN array',
  'expr ::= expr ISIN value',
  'ternary ::= OPENP expr CLOSEP QMARK DOLLARID COLON expr',
  'ternary ::= OPENP expr CLOSEP QMARK expr COLON expr',
  'value ::= variable',
  'value ::= UNIMATH value',
  'value ::= NOT value',
  'value ::= TYPECAST value',
  'value ::= variable INCDEC',
  'value ::= HEX',
  'value ::= INTEGER',
  'value ::= INTEGER DOT INTEGER',
  'value ::= INTEGER DOT',
  'value ::= DOT INTEGER',
  'value ::= ID',
  'value ::= function',
  'value ::= OPENP expr CLOSEP',
  'value ::= variable INSTANCEOF ns1',
  'value ::= variable INSTANCEOF variable',
  'value ::= SINGLEQUOTESTRING',
  'value ::= doublequoted_with_quotes',
  'value ::= varindexed DOUBLECOLON static_class_access',
  'value ::= smartytag',
  'value ::= value modifierlist',
  'value ::= NAMESPACE',
  'value ::= arraydef',
  'value ::= ns1 DOUBLECOLON static_class_access',
  'ns1 ::= ID',
  'ns1 ::= NAMESPACE',
  'variable ::= DOLLARID',
  'variable ::= varindexed',
  'variable ::= varvar AT ID',
  'variable ::= object',
  'variable ::= HATCH ID HATCH',
  'variable ::= HATCH ID HATCH arrayindex',
  'variable ::= HATCH variable HATCH',
  'variable ::= HATCH variable HATCH arrayindex',
  'varindexed ::= DOLLARID arrayindex',
  'varindexed ::= varvar arrayindex',
  'arrayindex ::= arrayindex indexdef',
  'arrayindex ::=',
  'indexdef ::= DOT DOLLARID',
  'indexdef ::= DOT varvar',
  'indexdef ::= DOT varvar AT ID',
  'indexdef ::= DOT ID',
  'indexdef ::= DOT INTEGER',
  'indexdef ::= DOT LDEL expr RDEL',
  'indexdef ::= OPENB ID CLOSEB',
  'indexdef ::= OPENB ID DOT ID CLOSEB',
  'indexdef ::= OPENB SINGLEQUOTESTRING CLOSEB',
  'indexdef ::= OPENB INTEGER CLOSEB',
  'indexdef ::= OPENB DOLLARID CLOSEB',
  'indexdef ::= OPENB variable CLOSEB',
  'indexdef ::= OPENB value CLOSEB',
  'indexdef ::= OPENB expr CLOSEB',
  'indexdef ::= OPENB CLOSEB',
  'varvar ::= DOLLARID',
  'varvar ::= DOLLAR',
  'varvar ::= varvar varvarele',
  'varvarele ::= ID',
  'varvarele ::= SIMPELOUTPUT',
  'varvarele ::= LDEL expr RDEL',
  'object ::= varindexed objectchain',
  'objectchain ::= objectelement',
  'objectchain ::= objectchain objectelement',
  'objectelement ::= PTR ID arrayindex',
  'objectelement ::= PTR varvar arrayindex',
  'objectelement ::= PTR LDEL expr RDEL arrayindex',
  'objectelement ::= PTR ID LDEL expr RDEL arrayindex',
  'objectelement ::= PTR method',
  'function ::= ns1 OPENP params CLOSEP',
  'method ::= ID OPENP params CLOSEP',
  'method ::= DOLLARID OPENP params CLOSEP',
  'params ::= params COMMA expr',
  'params ::= expr',
  'params ::=',
  'modifierlist ::= modifierlist modifier modparameters',
  'modifierlist ::= modifier modparameters',
  'modifier ::= VERT AT ID',
  'modifier ::= VERT ID',
  'modparameters ::= modparameters modparameter',
  'modparameters ::=',
  'modparameter ::= COLON value',
  'modparameter ::= COLON UNIMATH value',
  'modparameter ::= COLON array',
  'static_class_access ::= method',
  'static_class_access ::= method objectchain',
  'static_class_access ::= ID',
  'static_class_access ::= DOLLARID arrayindex',
  'static_class_access ::= DOLLARID arrayindex objectchain',
  'lop ::= LOGOP',
  'lop ::= SLOGOP',
  'tlop ::= TLOGOP',
  'scond ::= SINGLECOND',
  'arraydef ::= OPENB arrayelements CLOSEB',
  'arraydef ::= ARRAYOPEN arrayelements CLOSEP',
  'arrayelements ::= arrayelement',
  'arrayelements ::= arrayelements COMMA arrayelement',
  'arrayelements ::=',
  'arrayelement ::= value APTR expr',
  'arrayelement ::= ID APTR expr',
  'arrayelement ::= expr',
  'doublequoted_with_quotes ::= QUOTE QUOTE',
  'doublequoted_with_quotes ::= QUOTE doublequoted QUOTE',
  'doublequoted ::= doublequoted doublequotedcontent',
  'doublequoted ::= doublequotedcontent',
  'doublequotedcontent ::= BACKTICK variable BACKTICK',
  'doublequotedcontent ::= BACKTICK expr BACKTICK',
  'doublequotedcontent ::= DOLLARID',
  'doublequotedcontent ::= LDEL variable RDEL',
  'doublequotedcontent ::= LDEL expr RDEL',
  'doublequotedcontent ::= smartytag',
  'doublequotedcontent ::= TEXT',
    );

    public function tokenName($tokenType)
    {
        if ($tokenType === 0) {
            return 'End of Input';
        }
        if ($tokenType > 0 && $tokenType < count($this->yyTokenName)) {
            return $this->yyTokenName[$tokenType];
        } else {
            return 'Unknown';
        }
    }

    public static function yy_destructor($yymajor, $yypminor)
    {
        switch ($yymajor) {
            default:  break;   /* If no destructor action specified: do nothing */
        }
    }

    public function yy_pop_parser_stack()
    {
        if (empty($this->yystack)) {
            return;
        }
        $yytos = array_pop($this->yystack);
        if ($this->yyTraceFILE && $this->yyidx >= 0) {
            fwrite($this->yyTraceFILE,
                $this->yyTracePrompt . 'Popping ' . $this->yyTokenName[$yytos->major] .
                    "\n");
        }
        $yymajor = $yytos->major;
        self::yy_destructor($yymajor, $yytos->minor);
        $this->yyidx--;

        return $yymajor;
    }

    public function __destruct()
    {
        while ($this->yystack !== Array()) {
            $this->yy_pop_parser_stack();
        }
        if (is_resource($this->yyTraceFILE)) {
            fclose($this->yyTraceFILE);
        }
    }

    public function yy_get_expected_tokens($token)
    {
        static $res3 = array();
        static $res4 = array();
        $state = $this->yystack[$this->yyidx]->stateno;
        $expected = self::$yyExpectedTokens[$state];
        if (isset($res3[$state][$token])) {
            if ($res3[$state][$token]) {
                return $expected;
            }
        } else {
            if ($res3[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) {
                return $expected;
            }
        }
        $stack = $this->yystack;
        $yyidx = $this->yyidx;
        do {
            $yyact = $this->yy_find_shift_action($token);
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
                // reduce action
                $done = 0;
                do {
                    if ($done++ === 100) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // too much recursion prevents proper detection
                        // so give up
                        return array_unique($expected);
                    }
                    $yyruleno = $yyact - self::YYNSTATE;
                    $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
                    $nextstate = $this->yy_find_reduce_action(
                        $this->yystack[$this->yyidx]->stateno,
                        self::$yyRuleInfo[$yyruleno][0]);
                    if (isset(self::$yyExpectedTokens[$nextstate])) {
                $expected = array_merge($expected, self::$yyExpectedTokens[$nextstate]);
                        if (isset($res4[$nextstate][$token])) {
                            if ($res4[$nextstate][$token]) {
                                $this->yyidx = $yyidx;
                                $this->yystack = $stack;
                                return array_unique($expected);
                            }
                        } else {
                            if ($res4[$nextstate][$token] = in_array($token, self::$yyExpectedTokens[$nextstate], true)) {
                                $this->yyidx = $yyidx;
                                $this->yystack = $stack;
                                return array_unique($expected);
                            }
                        }
                    }
                    if ($nextstate < self::YYNSTATE) {
                        // we need to shift a non-terminal
                        $this->yyidx++;
                        $x = new TP_yyStackEntry;
                        $x->stateno = $nextstate;
                        $x->major = self::$yyRuleInfo[$yyruleno][0];
                        $this->yystack[$this->yyidx] = $x;
                        continue 2;
                    } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // the last token was just ignored, we can't accept
                        // by ignoring input, this is in essence ignoring a
                        // syntax error!
                        return array_unique($expected);
                    } elseif ($nextstate === self::YY_NO_ACTION) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // input accepted, but not shifted (I guess)
                        return $expected;
                    } else {
                        $yyact = $nextstate;
                    }
                } while (true);
            }
            break;
        } while (true);
    $this->yyidx = $yyidx;
    $this->yystack = $stack;

        return array_unique($expected);
    }

    public function yy_is_expected_token($token)
    {
        static $res = array();
        static $res2 = array();
        if ($token === 0) {
            return true; // 0 is not part of this
        }
        $state = $this->yystack[$this->yyidx]->stateno;
        if (isset($res[$state][$token])) {
            if ($res[$state][$token]) {
                return true;
            }
        } else {
            if ($res[$state][$token] = in_array($token, self::$yyExpectedTokens[$state], true)) {
                return true;
            }
       }
        $stack = $this->yystack;
        $yyidx = $this->yyidx;
        do {
            $yyact = $this->yy_find_shift_action($token);
            if ($yyact >= self::YYNSTATE && $yyact < self::YYNSTATE + self::YYNRULE) {
                // reduce action
                $done = 0;
                do {
                    if ($done++ === 100) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // too much recursion prevents proper detection
                        // so give up
                        return true;
                    }
                    $yyruleno = $yyact - self::YYNSTATE;
                    $this->yyidx -= self::$yyRuleInfo[$yyruleno][1];
                    $nextstate = $this->yy_find_reduce_action(
                        $this->yystack[$this->yyidx]->stateno,
                        self::$yyRuleInfo[$yyruleno][0]);
                    if (isset($res2[$nextstate][$token])) {
                        if ($res2[$nextstate][$token]) {
                            $this->yyidx = $yyidx;
                            $this->yystack = $stack;
                            return true;
                        }
                    } else {
                        if ($res2[$nextstate][$token] = (isset(self::$yyExpectedTokens[$nextstate]) && in_array($token, self::$yyExpectedTokens[$nextstate], true))) {
                            $this->yyidx = $yyidx;
                            $this->yystack = $stack;
                            return true;
                        }
                    }
                    if ($nextstate < self::YYNSTATE) {
                        // we need to shift a non-terminal
                        $this->yyidx++;
                        $x = new TP_yyStackEntry;
                        $x->stateno = $nextstate;
                        $x->major = self::$yyRuleInfo[$yyruleno][0];
                        $this->yystack[$this->yyidx] = $x;
                        continue 2;
                    } elseif ($nextstate === self::YYNSTATE + self::YYNRULE + 1) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        if (!$token) {
                            // end of input: this is valid
                            return true;
                        }
                        // the last token was just ignored, we can't accept
                        // by ignoring input, this is in essence ignoring a
                        // syntax error!
                        return false;
                    } elseif ($nextstate === self::YY_NO_ACTION) {
                        $this->yyidx = $yyidx;
                        $this->yystack = $stack;
                        // input accepted, but not shifted (I guess)
                        return true;
                    } else {
                        $yyact = $nextstate;
                    }
                } while (true);
            }
            break;
        } while (true);
        $this->yyidx = $yyidx;
        $this->yystack = $stack;

        return true;
    }

   public function yy_find_shift_action($iLookAhead)
    {
        $stateno = $this->yystack[$this->yyidx]->stateno;

        /* if ($this->yyidx < 0) return self::YY_NO_ACTION;  */
        if (!isset(self::$yy_shift_ofst[$stateno])) {
            // no shift actions
            return self::$yy_default[$stateno];
        }
        $i = self::$yy_shift_ofst[$stateno];
        if ($i === self::YY_SHIFT_USE_DFLT) {
            return self::$yy_default[$stateno];
        }
        if ($iLookAhead === self::YYNOCODE) {
            return self::YY_NO_ACTION;
        }
        $i += $iLookAhead;
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
              self::$yy_lookahead[$i] != $iLookAhead) {
            if (count(self::$yyFallback) && $iLookAhead < count(self::$yyFallback)
                   && ($iFallback = self::$yyFallback[$iLookAhead]) != 0) {
                if ($this->yyTraceFILE) {
                    fwrite($this->yyTraceFILE, $this->yyTracePrompt . 'FALLBACK ' .
                        $this->yyTokenName[$iLookAhead] . ' => ' .
                        $this->yyTokenName[$iFallback] . "\n");
                }

                return $this->yy_find_shift_action($iFallback);
            }

            return self::$yy_default[$stateno];
        } else {
            return self::$yy_action[$i];
        }
    }

    public function yy_find_reduce_action($stateno, $iLookAhead)
    {
        /* $stateno = $this->yystack[$this->yyidx]->stateno; */

        if (!isset(self::$yy_reduce_ofst[$stateno])) {
            return self::$yy_default[$stateno];
        }
        $i = self::$yy_reduce_ofst[$stateno];
        if ($i === self::YY_REDUCE_USE_DFLT) {
            return self::$yy_default[$stateno];
        }
        if ($iLookAhead === self::YYNOCODE) {
            return self::YY_NO_ACTION;
        }
        $i += $iLookAhead;
        if ($i < 0 || $i >= self::YY_SZ_ACTTAB ||
              self::$yy_lookahead[$i] != $iLookAhead) {
            return self::$yy_default[$stateno];
        } else {
            return self::$yy_action[$i];
        }
    }

    public function yy_shift($yyNewState, $yyMajor, $yypMinor)
    {
        $this->yyidx++;
        if ($this->yyidx >= self::YYSTACKDEPTH) {
            $this->yyidx--;
            if ($this->yyTraceFILE) {
                fprintf($this->yyTraceFILE, "%sStack Overflow!\n", $this->yyTracePrompt);
            }
            while ($this->yyidx >= 0) {
                $this->yy_pop_parser_stack();
            }
// line 221 "./lexer/smarty_internal_templateparser.y"

    $this->internalError = true;
    $this->compiler->trigger_template_error('Stack overflow in template parser');

            return;
        }
        $yytos = new TP_yyStackEntry;
        $yytos->stateno = $yyNewState;
        $yytos->major = $yyMajor;
        $yytos->minor = $yypMinor;
        $this->yystack[] = $yytos;
        if ($this->yyTraceFILE && $this->yyidx > 0) {
            fprintf($this->yyTraceFILE, "%sShift %d\n", $this->yyTracePrompt,
                $yyNewState);
            fprintf($this->yyTraceFILE, "%sStack:", $this->yyTracePrompt);
            for ($i = 1; $i <= $this->yyidx; $i++) {
                fprintf($this->yyTraceFILE, " %s",
                    $this->yyTokenName[$this->yystack[$i]->major]);
            }
            fwrite($this->yyTraceFILE,"\n");
        }
    }

    public static $yyRuleInfo = array(
  array( 0 => 63, 1 => 1 ),
  array( 0 => 64, 1 => 2 ),
  array( 0 => 64, 1 => 2 ),
  array( 0 => 64, 1 => 2 ),
  array( 0 => 64, 1 => 2 ),
  array( 0 => 64, 1 => 4 ),
  array( 0 => 65, 1 => 4 ),
  array( 0 => 65, 1 => 1 ),
  array( 0 => 66, 1 => 2 ),
  array( 0 => 66, 1 => 0 ),
  array( 0 => 64, 1 => 2 ),
  array( 0 => 64, 1 => 0 ),
  array( 0 => 67, 1 => 1 ),
  array( 0 => 67, 1 => 1 ),
  array( 0 => 67, 1 => 1 ),
  array( 0 => 67, 1 => 3 ),
  array( 0 => 67, 1 => 2 ),
  array( 0 => 68, 1 => 1 ),
  array( 0 => 68, 1 => 2 ),
  array( 0 => 68, 1 => 2 ),
  array( 0 => 71, 1 => 2 ),
  array( 0 => 70, 1 => 2 ),
  array( 0 => 73, 1 => 1 ),
  array( 0 => 73, 1 => 1 ),
  array( 0 => 73, 1 => 1 ),
  array( 0 => 69, 1 => 3 ),
  array( 0 => 69, 1 => 2 ),
  array( 0 => 69, 1 => 4 ),
  array( 0 => 69, 1 => 5 ),
  array( 0 => 69, 1 => 6 ),
  array( 0 => 69, 1 => 2 ),
  array( 0 => 69, 1 => 2 ),
  array( 0 => 69, 1 => 3 ),
  array( 0 => 69, 1 => 2 ),
  array( 0 => 69, 1 => 3 ),
  array( 0 => 69, 1 => 8 ),
  array( 0 => 81, 1 => 2 ),
  array( 0 => 81, 1 => 1 ),
  array( 0 => 69, 1 => 5 ),
  array( 0 => 69, 1 => 7 ),
  array( 0 => 69, 1 => 6 ),
  array( 0 => 69, 1 => 8 ),
  array( 0 => 69, 1 => 2 ),
  array( 0 => 69, 1 => 3 ),
  array( 0 => 69, 1 => 4 ),
  array( 0 => 67, 1 => 1 ),
  array( 0 => 69, 1 => 2 ),
  array( 0 => 69, 1 => 3 ),
  array( 0 => 69, 1 => 4 ),
  array( 0 => 69, 1 => 5 ),
  array( 0 => 74, 1 => 2 ),
  array( 0 => 74, 1 => 1 ),
  array( 0 => 74, 1 => 0 ),
  array( 0 => 84, 1 => 4 ),
  array( 0 => 84, 1 => 2 ),
  array( 0 => 84, 1 => 2 ),
  array( 0 => 84, 1 => 2 ),
  array( 0 => 84, 1 => 2 ),
  array( 0 => 84, 1 => 2 ),
  array( 0 => 84, 1 => 4 ),
  array( 0 => 80, 1 => 1 ),
  array( 0 => 80, 1 => 3 ),
  array( 0 => 79, 1 => 3 ),
  array( 0 => 79, 1 => 3 ),
  array( 0 => 79, 1 => 3 ),
  array( 0 => 79, 1 => 3 ),
  array( 0 => 77, 1 => 1 ),
  array( 0 => 77, 1 => 1 ),
  array( 0 => 77, 1 => 3 ),
  array( 0 => 77, 1 => 3 ),
  array( 0 => 77, 1 => 3 ),
  array( 0 => 77, 1 => 3 ),
  array( 0 => 77, 1 => 3 ),
  array( 0 => 77, 1 => 2 ),
  array( 0 => 77, 1 => 3 ),
  array( 0 => 77, 1 => 3 ),
  array( 0 => 85, 1 => 7 ),
  array( 0 => 85, 1 => 7 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 2 ),
  array( 0 => 76, 1 => 2 ),
  array( 0 => 76, 1 => 2 ),
  array( 0 => 76, 1 => 2 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 3 ),
  array( 0 => 76, 1 => 2 ),
  array( 0 => 76, 1 => 2 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 3 ),
  array( 0 => 76, 1 => 3 ),
  array( 0 => 76, 1 => 3 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 3 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 2 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 1 ),
  array( 0 => 76, 1 => 3 ),
  array( 0 => 91, 1 => 1 ),
  array( 0 => 91, 1 => 1 ),
  array( 0 => 75, 1 => 1 ),
  array( 0 => 75, 1 => 1 ),
  array( 0 => 75, 1 => 3 ),
  array( 0 => 75, 1 => 1 ),
  array( 0 => 75, 1 => 3 ),
  array( 0 => 75, 1 => 4 ),
  array( 0 => 75, 1 => 3 ),
  array( 0 => 75, 1 => 4 ),
  array( 0 => 72, 1 => 2 ),
  array( 0 => 72, 1 => 2 ),
  array( 0 => 96, 1 => 2 ),
  array( 0 => 96, 1 => 0 ),
  array( 0 => 97, 1 => 2 ),
  array( 0 => 97, 1 => 2 ),
  array( 0 => 97, 1 => 4 ),
  array( 0 => 97, 1 => 2 ),
  array( 0 => 97, 1 => 2 ),
  array( 0 => 97, 1 => 4 ),
  array( 0 => 97, 1 => 3 ),
  array( 0 => 97, 1 => 5 ),
  array( 0 => 97, 1 => 3 ),
  array( 0 => 97, 1 => 3 ),
  array( 0 => 97, 1 => 3 ),
  array( 0 => 97, 1 => 3 ),
  array( 0 => 97, 1 => 3 ),
  array( 0 => 97, 1 => 3 ),
  array( 0 => 97, 1 => 2 ),
  array( 0 => 82, 1 => 1 ),
  array( 0 => 82, 1 => 1 ),
  array( 0 => 82, 1 => 2 ),
  array( 0 => 98, 1 => 1 ),
  array( 0 => 98, 1 => 1 ),
  array( 0 => 98, 1 => 3 ),
  array( 0 => 95, 1 => 2 ),
  array( 0 => 99, 1 => 1 ),
  array( 0 => 99, 1 => 2 ),
  array( 0 => 100, 1 => 3 ),
  array( 0 => 100, 1 => 3 ),
  array( 0 => 100, 1 => 5 ),
  array( 0 => 100, 1 => 6 ),
  array( 0 => 100, 1 => 2 ),
  array( 0 => 90, 1 => 4 ),
  array( 0 => 101, 1 => 4 ),
  array( 0 => 101, 1 => 4 ),
  array( 0 => 102, 1 => 3 ),
  array( 0 => 102, 1 => 1 ),
  array( 0 => 102, 1 => 0 ),
  array( 0 => 78, 1 => 3 ),
  array( 0 => 78, 1 => 2 ),
  array( 0 => 103, 1 => 3 ),
  array( 0 => 103, 1 => 2 ),
  array( 0 => 83, 1 => 2 ),
  array( 0 => 83, 1 => 0 ),
  array( 0 => 104, 1 => 2 ),
  array( 0 => 104, 1 => 3 ),
  array( 0 => 104, 1 => 2 ),
  array( 0 => 93, 1 => 1 ),
  array( 0 => 93, 1 => 2 ),
  array( 0 => 93, 1 => 1 ),
  array( 0 => 93, 1 => 2 ),
  array( 0 => 93, 1 => 3 ),
  array( 0 => 87, 1 => 1 ),
  array( 0 => 87, 1 => 1 ),
  array( 0 => 86, 1 => 1 ),
  array( 0 => 88, 1 => 1 ),
  array( 0 => 94, 1 => 3 ),
  array( 0 => 94, 1 => 3 ),
  array( 0 => 105, 1 => 1 ),
  array( 0 => 105, 1 => 3 ),
  array( 0 => 105, 1 => 0 ),
  array( 0 => 106, 1 => 3 ),
  array( 0 => 106, 1 => 3 ),
  array( 0 => 106, 1 => 1 ),
  array( 0 => 92, 1 => 2 ),
  array( 0 => 92, 1 => 3 ),
  array( 0 => 107, 1 => 2 ),
  array( 0 => 107, 1 => 1 ),
  array( 0 => 108, 1 => 3 ),
  array( 0 => 108, 1 => 3 ),
  array( 0 => 108, 1 => 1 ),
  array( 0 => 108, 1 => 3 ),
  array( 0 => 108, 1 => 3 ),
  array( 0 => 108, 1 => 1 ),
  array( 0 => 108, 1 => 1 ),
    );

    public static $yyReduceMap = array(
        0 => 0,
        1 => 1,
        2 => 2,
        3 => 3,
        4 => 4,
        5 => 5,
        6 => 6,
        7 => 7,
        22 => 7,
        23 => 7,
        24 => 7,
        37 => 7,
        57 => 7,
        58 => 7,
        66 => 7,
        67 => 7,
        78 => 7,
        83 => 7,
        84 => 7,
        89 => 7,
        93 => 7,
        94 => 7,
        98 => 7,
        99 => 7,
        101 => 7,
        106 => 7,
        170 => 7,
        175 => 7,
        8 => 8,
        9 => 9,
        10 => 10,
        12 => 12,
        13 => 13,
        14 => 14,
        15 => 15,
        16 => 16,
        17 => 17,
        18 => 18,
        19 => 19,
        20 => 20,
        21 => 21,
        25 => 25,
        26 => 26,
        27 => 27,
        28 => 28,
        29 => 29,
        30 => 30,
        31 => 31,
        32 => 32,
        34 => 32,
        33 => 33,
        35 => 35,
        36 => 36,
        38 => 38,
        39 => 39,
        40 => 40,
        41 => 41,
        42 => 42,
        43 => 43,
        44 => 44,
        45 => 45,
        46 => 46,
        47 => 47,
        48 => 48,
        49 => 49,
        50 => 50,
        51 => 51,
        60 => 51,
        148 => 51,
        152 => 51,
        156 => 51,
        158 => 51,
        52 => 52,
        149 => 52,
        155 => 52,
        53 => 53,
        54 => 54,
        55 => 54,
        56 => 56,
        133 => 56,
        59 => 59,
        61 => 61,
        62 => 62,
        63 => 62,
        64 => 64,
        65 => 65,
        68 => 68,
        69 => 69,
        70 => 69,
        71 => 71,
        72 => 72,
        73 => 73,
        74 => 74,
        75 => 75,
        76 => 76,
        77 => 77,
        79 => 79,
        81 => 79,
        82 => 79,
        113 => 79,
        80 => 80,
        85 => 85,
        86 => 86,
        87 => 87,
        88 => 88,
        90 => 90,
        91 => 91,
        92 => 91,
        95 => 95,
        96 => 96,
        97 => 97,
        100 => 100,
        102 => 102,
        103 => 103,
        104 => 104,
        105 => 105,
        107 => 107,
        108 => 108,
        109 => 109,
        110 => 110,
        111 => 111,
        112 => 112,
        114 => 114,
        172 => 114,
        115 => 115,
        116 => 116,
        117 => 117,
        118 => 118,
        119 => 119,
        120 => 120,
        128 => 120,
        121 => 121,
        122 => 122,
        123 => 123,
        124 => 123,
        126 => 123,
        127 => 123,
        125 => 125,
        129 => 129,
        130 => 130,
        131 => 131,
        176 => 131,
        132 => 132,
        134 => 134,
        135 => 135,
        136 => 136,
        137 => 137,
        138 => 138,
        139 => 139,
        140 => 140,
        141 => 141,
        142 => 142,
        143 => 143,
        144 => 144,
        145 => 145,
        146 => 146,
        147 => 147,
        150 => 150,
        151 => 151,
        153 => 153,
        154 => 154,
        157 => 157,
        159 => 159,
        160 => 160,
        161 => 161,
        162 => 162,
        163 => 163,
        164 => 164,
        165 => 165,
        166 => 166,
        167 => 167,
        168 => 168,
        169 => 168,
        171 => 171,
        173 => 173,
        174 => 174,
        177 => 177,
        178 => 178,
        179 => 179,
        180 => 180,
        183 => 180,
        181 => 181,
        184 => 181,
        182 => 182,
        185 => 185,
        186 => 186,
    );
// line 234 "./lexer/smarty_internal_templateparser.y"
    public function yy_r0(){
    $this->root_buffer->prepend_array($this, $this->template_prefix);
    $this->root_buffer->append_array($this, $this->template_postfix);
    $this->_retvalue = $this->root_buffer->to_smarty_php($this);
    }
// line 242 "./lexer/smarty_internal_templateparser.y"
    public function yy_r1(){
    $code = $this->compiler->compileTag('private_php',array(array('code' => $this->yystack[$this->yyidx + 0]->minor), array('type' => $this->lex->phpType )),array());
    if ($this->compiler->has_code && !empty($code)) {
        $tmp =''; foreach ($this->compiler->prefix_code as $code) {$tmp.=$code;} $this->compiler->prefix_code=array();
         $this->current_buffer->append_subtree($this,  new Smarty_Internal_ParseTree_Tag($this, $this->compiler->processNocacheCode($tmp.$code,true)));
    }
    }
// line 251 "./lexer/smarty_internal_templateparser.y"
    public function yy_r2(){
         $text = $this->yystack[ $this->yyidx + 0 ]->minor;

         if ((string)$text == '') {
            $this->current_buffer->append_subtree($this, null);
         }

         $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($text, $this->strip));
    }
// line 261 "./lexer/smarty_internal_templateparser.y"
    public function yy_r3(){
    $this->strip = true;
    }
// line 265 "./lexer/smarty_internal_templateparser.y"
    public function yy_r4(){
    $this->strip = false;
    }
// line 270 "./lexer/smarty_internal_templateparser.y"
    public function yy_r5(){
       $this->current_buffer->append_subtree($this, new Smarty_Internal_ParseTree_Text($this->yystack[$this->yyidx + -1]->minor));
    }
// line 275 "./lexer/smarty_internal_templateparser.y"
    public function yy_r6(){
    $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor.$this->yystack[$this->yyidx + -1]->minor;
    }
// line 278 "./lexer/smarty_internal_templateparser.y"
    public function yy_r7(){
    $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
    }
// line 282 "./lexer/smarty_internal_templateparser.y"
    public function yy_r8(){
        $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;

    }
// line 287 "./lexer/smarty_internal_templateparser.y"
    public function yy_r9(){
    $this->_retvalue = '';
    }
// line 291 "./lexer/smarty_internal_templateparser.y"
    public function yy_r10(){
      if ($this->compiler->has_code) {
          $this->current_buffer->append_subtree($this, $this->mergePrefixCode($this->yystack[$this->yyidx + 0]->minor));
      }
     $this->compiler->has_variable_string = false;
     $this->block_nesting_level = count($this->compiler->_tag_stack);
    }
// line 303 "./lexer/smarty_internal_templateparser.y"
    public function yy_r12(){
    $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $');
    if (preg_match('/^(.*)(\s+nocache)$/', $var, $match)) {
        $this->_retvalue = $this->compiler->compileTag('private_print_expression',array('nocache'),array('value'=>$this->compiler->compileVariable('\''.$match[1].'\'')));
    } else {
        $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->compiler->compileVariable('\''.$var.'\'')));
    }
    }
// line 313 "./lexer/smarty_internal_templateparser.y"
    public function yy_r13(){
    $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()));
    if ($tag == 'strip') {
        $this->strip = true;
        $this->_retvalue = null;
    } else {
        if (defined($tag)) {
            if ($this->security) {
               $this->security->isTrustedConstant($tag, $this->compiler);
            }
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$tag));
        } else {
            if (preg_match('/^(.*)(\s+nocache)$/', $tag, $match)) {
                $this->_retvalue = $this->compiler->compileTag($match[1],array('\'nocache\''));
            } else {
                $this->_retvalue = $this->compiler->compileTag($tag,array());
            }
        }
    }
    }
// line 334 "./lexer/smarty_internal_templateparser.y"
    public function yy_r14(){
    $j = strrpos($this->yystack[$this->yyidx + 0]->minor,'.');
    if ($this->yystack[$this->yyidx + 0]->minor[$j+1] == 'c') {
        // {$smarty.block.child}
        $this->_retvalue = $this->compiler->compileTag('child',array(),array($this->yystack[$this->yyidx + 0]->minor));
    } else {
        // {$smarty.block.parent}
       $this->_retvalue = $this->compiler->compileTag('parent',array(),array($this->yystack[$this->yyidx + 0]->minor));
     }
    }
// line 345 "./lexer/smarty_internal_templateparser.y"
    public function yy_r15(){
    $this->_retvalue  = $this->yystack[$this->yyidx + -1]->minor;
    }
// line 349 "./lexer/smarty_internal_templateparser.y"
    public function yy_r16(){
     $this->_retvalue  = $this->yystack[$this->yyidx + -1]->minor;
     }
// line 353 "./lexer/smarty_internal_templateparser.y"
    public function yy_r17(){
    $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor[1],array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]));
    }
// line 362 "./lexer/smarty_internal_templateparser.y"
    public function yy_r18(){
    $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]),array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'')),$this->yystack[$this->yyidx + 0]->minor[1]));
    }
// line 366 "./lexer/smarty_internal_templateparser.y"
    public function yy_r19(){
    $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array(array('value'=>$this->yystack[$this->yyidx + 0]->minor[0]),array('var'=>$this->yystack[$this->yyidx + -1]->minor['var'])),$this->yystack[$this->yyidx + 0]->minor[1]),array('smarty_internal_index'=>$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']));
    }
// line 370 "./lexer/smarty_internal_templateparser.y"
    public function yy_r20(){
       $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
    }
// line 374 "./lexer/smarty_internal_templateparser.y"
    public function yy_r21(){
    $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
    }
// line 389 "./lexer/smarty_internal_templateparser.y"
    public function yy_r25(){
        if (defined($this->yystack[$this->yyidx + -1]->minor)) {
            if ($this->security) {
                $this->security->isTrustedConstant($this->yystack[$this->yyidx + -1]->minor, $this->compiler);
            }
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -1]->minor));
        } else {
            $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
        }
    }
// line 399 "./lexer/smarty_internal_templateparser.y"
    public function yy_r26(){
        if (defined($this->yystack[$this->yyidx + 0]->minor)) {
            if ($this->security) {
                $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
            }
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',array(),array('value'=>$this->yystack[$this->yyidx + 0]->minor));
        } else {
            $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor,array());
        }
    }
// line 412 "./lexer/smarty_internal_templateparser.y"
    public function yy_r27(){
        if (defined($this->yystack[$this->yyidx + -2]->minor)) {
            if ($this->security) {
                $this->security->isTrustedConstant($this->yystack[$this->yyidx + -2]->minor, $this->compiler);
            }
            $this->_retvalue = $this->compiler->compileTag('private_print_expression',$this->yystack[$this->yyidx + 0]->minor,array('value'=>$this->yystack[$this->yyidx + -2]->minor, 'modifierlist'=>$this->yystack[$this->yyidx + -1]->minor));
        } else {
            $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + 0]->minor, array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor));
        }
    }
// line 424 "./lexer/smarty_internal_templateparser.y"
    public function yy_r28(){
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor,$this->yystack[$this->yyidx + 0]->minor,array('object_method'=>$this->yystack[$this->yyidx + -1]->minor));
    }
// line 429 "./lexer/smarty_internal_templateparser.y"
    public function yy_r29(){
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + 0]->minor,array('modifierlist'=>$this->yystack[$this->yyidx + -1]->minor, 'object_method'=>$this->yystack[$this->yyidx + -2]->minor));
    }
// line 434 "./lexer/smarty_internal_templateparser.y"
    public function yy_r30(){
    $this->_retvalue = $this->compiler->compileTag('make_nocache',array(array('var'=>'\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'')));
    }
// line 439 "./lexer/smarty_internal_templateparser.y"
    public function yy_r31(){
    $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->compiler->getLdelLength())); 
    $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor));
    }
// line 444 "./lexer/smarty_internal_templateparser.y"
    public function yy_r32(){
    $tag = trim(substr($this->yystack[$this->yyidx + -2]->minor,$this->compiler->getLdelLength()));
    $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,$this->yystack[$this->yyidx + 0]->minor,array('if condition'=>$this->yystack[$this->yyidx + -1]->minor));
    }
// line 449 "./lexer/smarty_internal_templateparser.y"
    public function yy_r33(){
    $tag = trim(substr($this->yystack[$this->yyidx + -1]->minor,$this->compiler->getLdelLength()));
    $this->_retvalue = $this->compiler->compileTag(($tag === 'else if')? 'elseif' : $tag,array(),array('if condition'=>$this->yystack[$this->yyidx + 0]->minor));
    }
// line 460 "./lexer/smarty_internal_templateparser.y"
    public function yy_r35(){
    $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -6]->minor),array('ifexp'=>$this->yystack[$this->yyidx + -4]->minor),array('var'=>$this->yystack[$this->yyidx + -2]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),1);
    }
// line 464 "./lexer/smarty_internal_templateparser.y"
    public function yy_r36(){
    $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 472 "./lexer/smarty_internal_templateparser.y"
    public function yy_r38(){
    $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -3]->minor),array('to'=>$this->yystack[$this->yyidx + -1]->minor))),0);
    }
// line 476 "./lexer/smarty_internal_templateparser.y"
    public function yy_r39(){
    $this->_retvalue = $this->compiler->compileTag('for',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('start'=>$this->yystack[$this->yyidx + -5]->minor),array('to'=>$this->yystack[$this->yyidx + -3]->minor),array('step'=>$this->yystack[$this->yyidx + -1]->minor))),0);
    }
// line 481 "./lexer/smarty_internal_templateparser.y"
    public function yy_r40(){
    $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -3]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor))));
    }
// line 485 "./lexer/smarty_internal_templateparser.y"
    public function yy_r41(){
    $this->_retvalue = $this->compiler->compileTag('foreach',array_merge($this->yystack[$this->yyidx + 0]->minor,array(array('from'=>$this->yystack[$this->yyidx + -5]->minor),array('item'=>$this->yystack[$this->yyidx + -1]->minor),array('key'=>$this->yystack[$this->yyidx + -3]->minor))));
    }
// line 488 "./lexer/smarty_internal_templateparser.y"
    public function yy_r42(){
    $this->_retvalue = $this->compiler->compileTag('foreach',$this->yystack[$this->yyidx + 0]->minor);
    }
// line 493 "./lexer/smarty_internal_templateparser.y"
    public function yy_r43(){
    $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array(array_merge(array($this->yystack[$this->yyidx + -1]->minor),$this->yystack[$this->yyidx + 0]->minor))));
    }
// line 497 "./lexer/smarty_internal_templateparser.y"
    public function yy_r44(){
    $this->_retvalue = $this->compiler->compileTag('setfilter',array(),array('modifier_list'=>array_merge(array(array_merge(array($this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)),$this->yystack[$this->yyidx + 0]->minor)));
    }
// line 503 "./lexer/smarty_internal_templateparser.y"
    public function yy_r45(){
    $tag = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' /');
    if ($tag === 'strip') {
        $this->strip = false;
        $this->_retvalue = null;
    } else {
       $this->_retvalue = $this->compiler->compileTag($tag.'close',array());
    }
     }
// line 512 "./lexer/smarty_internal_templateparser.y"
    public function yy_r46(){
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + 0]->minor.'close',array());
    }
// line 516 "./lexer/smarty_internal_templateparser.y"
    public function yy_r47(){
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array(),array('modifier_list'=>$this->yystack[$this->yyidx + 0]->minor));
    }
// line 521 "./lexer/smarty_internal_templateparser.y"
    public function yy_r48(){
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + 0]->minor));
    }
// line 525 "./lexer/smarty_internal_templateparser.y"
    public function yy_r49(){
    $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array(),array('object_method'=>$this->yystack[$this->yyidx + -1]->minor, 'modifier_list'=>$this->yystack[$this->yyidx + 0]->minor));
    }
// line 533 "./lexer/smarty_internal_templateparser.y"
    public function yy_r50(){
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
    $this->_retvalue[] = $this->yystack[$this->yyidx + 0]->minor;
    }
// line 539 "./lexer/smarty_internal_templateparser.y"
    public function yy_r51(){
    $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor);
    }
// line 544 "./lexer/smarty_internal_templateparser.y"
    public function yy_r52(){
    $this->_retvalue = array();
    }
// line 549 "./lexer/smarty_internal_templateparser.y"
    public function yy_r53(){
    if (defined($this->yystack[$this->yyidx + 0]->minor)) {
        if ($this->security) {
            $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
        }
        $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);
    } else {
        $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>'\''.$this->yystack[$this->yyidx + 0]->minor.'\'');
    }
    }
// line 560 "./lexer/smarty_internal_templateparser.y"
    public function yy_r54(){
    $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor," =\n\r\t")=>$this->yystack[$this->yyidx + 0]->minor);
    }
// line 568 "./lexer/smarty_internal_templateparser.y"
    public function yy_r56(){
    $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';
    }
// line 580 "./lexer/smarty_internal_templateparser.y"
    public function yy_r59(){
    $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor);
    }
// line 593 "./lexer/smarty_internal_templateparser.y"
    public function yy_r61(){
    $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor;
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor;
    }
// line 598 "./lexer/smarty_internal_templateparser.y"
    public function yy_r62(){
    $this->_retvalue = array('var' => '\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'', 'value'=>$this->yystack[$this->yyidx + 0]->minor);
    }
// line 605 "./lexer/smarty_internal_templateparser.y"
    public function yy_r64(){
    $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor);
    }
// line 609 "./lexer/smarty_internal_templateparser.y"
    public function yy_r65(){
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
    }
// line 629 "./lexer/smarty_internal_templateparser.y"
    public function yy_r68(){
    $this->_retvalue = '$_smarty_tpl->getStreamVariable(\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'://' . $this->yystack[$this->yyidx + 0]->minor . '\')';
    }
// line 634 "./lexer/smarty_internal_templateparser.y"
    public function yy_r69(){
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor;
    }
// line 644 "./lexer/smarty_internal_templateparser.y"
    public function yy_r71(){
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor['pre']. $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor['op'].$this->yystack[$this->yyidx + 0]->minor .')';
    }
// line 648 "./lexer/smarty_internal_templateparser.y"
    public function yy_r72(){
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 652 "./lexer/smarty_internal_templateparser.y"
    public function yy_r73(){
    $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor . $this->yystack[$this->yyidx + -1]->minor . ')';
    }
// line 656 "./lexer/smarty_internal_templateparser.y"
    public function yy_r74(){
    $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')';
    }
// line 660 "./lexer/smarty_internal_templateparser.y"
    public function yy_r75(){
    $this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')';
    }
// line 668 "./lexer/smarty_internal_templateparser.y"
    public function yy_r76(){
    $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '. $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -2]->minor,1).'\'') . ' : '.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 672 "./lexer/smarty_internal_templateparser.y"
    public function yy_r77(){
    $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 682 "./lexer/smarty_internal_templateparser.y"
    public function yy_r79(){
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 687 "./lexer/smarty_internal_templateparser.y"
    public function yy_r80(){
    $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 708 "./lexer/smarty_internal_templateparser.y"
    public function yy_r85(){
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 712 "./lexer/smarty_internal_templateparser.y"
    public function yy_r86(){
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.';
    }
// line 716 "./lexer/smarty_internal_templateparser.y"
    public function yy_r87(){
    $this->_retvalue = '.'.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 721 "./lexer/smarty_internal_templateparser.y"
    public function yy_r88(){
    if (defined($this->yystack[$this->yyidx + 0]->minor)) {
        if ($this->security) {
             $this->security->isTrustedConstant($this->yystack[$this->yyidx + 0]->minor, $this->compiler);
        }
        $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
    } else {
        $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\'';
    }
    }
// line 738 "./lexer/smarty_internal_templateparser.y"
    public function yy_r90(){
    $this->_retvalue = '('. $this->yystack[$this->yyidx + -1]->minor .')';
    }
// line 742 "./lexer/smarty_internal_templateparser.y"
    public function yy_r91(){
      $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 760 "./lexer/smarty_internal_templateparser.y"
    public function yy_r95(){
    if ($this->security && $this->security->static_classes !== array()) {
        $this->compiler->trigger_template_error('dynamic static class not allowed by security setting');
    }
    $prefixVar = $this->compiler->getNewPrefixVariable();
    if ($this->yystack[$this->yyidx + -2]->minor['var'] === '\'smarty\'') {
        $this->compiler->appendPrefixCode("<?php {$prefixVar} = ". $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).';?>');
     } else {
        $this->compiler->appendPrefixCode("<?php  {$prefixVar} = ". $this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor['var']).$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].';?>');
    }
    $this->_retvalue = $prefixVar .'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
    }
// line 774 "./lexer/smarty_internal_templateparser.y"
    public function yy_r96(){
    $prefixVar = $this->compiler->getNewPrefixVariable();
    $tmp = $this->compiler->appendCode('<?php ob_start();?>', $this->yystack[$this->yyidx + 0]->minor);
    $this->compiler->appendPrefixCode($this->compiler->appendCode($tmp, "<?php {$prefixVar} = ob_get_clean();?>"));
    $this->_retvalue = $prefixVar;
    }
// line 781 "./lexer/smarty_internal_templateparser.y"
    public function yy_r97(){
    $this->_retvalue = $this->compiler->compileTag('private_modifier',array(),array('value'=>$this->yystack[$this->yyidx + -1]->minor,'modifierlist'=>$this->yystack[$this->yyidx + 0]->minor));
    }
// line 794 "./lexer/smarty_internal_templateparser.y"
    public function yy_r100(){
    if (!in_array(strtolower($this->yystack[$this->yyidx + -2]->minor), array('self', 'parent')) && (!$this->security || $this->security->isTrustedStaticClassAccess($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + 0]->minor, $this->compiler))) {
        if (isset($this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor])) {
            $this->_retvalue = $this->smarty->registered_classes[$this->yystack[$this->yyidx + -2]->minor].'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
        } else {
            $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor[0].$this->yystack[$this->yyidx + 0]->minor[1];
        } 
    } else {
        $this->compiler->trigger_template_error ('static class \''.$this->yystack[$this->yyidx + -2]->minor.'\' is undefined or not allowed by security setting');
    }
    }
// line 813 "./lexer/smarty_internal_templateparser.y"
    public function yy_r102(){
    $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;
        }
// line 824 "./lexer/smarty_internal_templateparser.y"
    public function yy_r103(){
   $this->_retvalue = $this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'');
    }
// line 827 "./lexer/smarty_internal_templateparser.y"
    public function yy_r104(){
    if ($this->yystack[$this->yyidx + 0]->minor['var'] === '\'smarty\'') {
        $smarty_var = $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);
        $this->_retvalue = $smarty_var;
    } else {
        // used for array reset,next,prev,end,current 
        $this->last_variable = $this->yystack[$this->yyidx + 0]->minor['var'];
        $this->last_index = $this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
        $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor['var']).$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index'];
    }
    }
// line 840 "./lexer/smarty_internal_templateparser.y"
    public function yy_r105(){
    $this->_retvalue = '$_smarty_tpl->tpl_vars['. $this->yystack[$this->yyidx + -2]->minor .']->'.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 850 "./lexer/smarty_internal_templateparser.y"
    public function yy_r107(){
    $this->_retvalue = $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -1]->minor . '\'');
    }
// line 854 "./lexer/smarty_internal_templateparser.y"
    public function yy_r108(){
    $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable('\'' . $this->yystack[$this->yyidx + -2]->minor . '\'') . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' :null)';
    }
// line 858 "./lexer/smarty_internal_templateparser.y"
    public function yy_r109(){
    $this->_retvalue = $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -1]->minor);
    }
// line 862 "./lexer/smarty_internal_templateparser.y"
    public function yy_r110(){
    $this->_retvalue = '(is_array($tmp = ' . $this->compiler->compileConfigVariable($this->yystack[$this->yyidx + -2]->minor) . ') ? $tmp'.$this->yystack[$this->yyidx + 0]->minor.' : null)';
    }
// line 866 "./lexer/smarty_internal_templateparser.y"
    public function yy_r111(){
    $this->_retvalue = array('var'=>'\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'', 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);
    }
// line 869 "./lexer/smarty_internal_templateparser.y"
    public function yy_r112(){
    $this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor);
    }
// line 882 "./lexer/smarty_internal_templateparser.y"
    public function yy_r114(){
    return;
    }
// line 888 "./lexer/smarty_internal_templateparser.y"
    public function yy_r115(){
    $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'').']';
    }
// line 891 "./lexer/smarty_internal_templateparser.y"
    public function yy_r116(){
    $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + 0]->minor).']';
    }
// line 895 "./lexer/smarty_internal_templateparser.y"
    public function yy_r117(){
    $this->_retvalue = '['.$this->compiler->compileVariable($this->yystack[$this->yyidx + -2]->minor).'->'.$this->yystack[$this->yyidx + 0]->minor.']';
    }
// line 899 "./lexer/smarty_internal_templateparser.y"
    public function yy_r118(){
    $this->_retvalue = '[\''. $this->yystack[$this->yyidx + 0]->minor .'\']';
    }
// line 903 "./lexer/smarty_internal_templateparser.y"
    public function yy_r119(){
    $this->_retvalue = '['. $this->yystack[$this->yyidx + 0]->minor .']';
    }
// line 908 "./lexer/smarty_internal_templateparser.y"
    public function yy_r120(){
    $this->_retvalue = '['. $this->yystack[$this->yyidx + -1]->minor .']';
    }
// line 913 "./lexer/smarty_internal_templateparser.y"
    public function yy_r121(){
    $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']';
    }
// line 917 "./lexer/smarty_internal_templateparser.y"
    public function yy_r122(){
    $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable',array(),'[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']';
    }
// line 920 "./lexer/smarty_internal_templateparser.y"
    public function yy_r123(){
    $this->_retvalue = '['.$this->yystack[$this->yyidx + -1]->minor.']';
    }
// line 926 "./lexer/smarty_internal_templateparser.y"
    public function yy_r125(){
    $this->_retvalue = '['.$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -1]->minor,1).'\'').']';
    }
// line 942 "./lexer/smarty_internal_templateparser.y"
    public function yy_r129(){
    $this->_retvalue = '[]';
    }
// line 952 "./lexer/smarty_internal_templateparser.y"
    public function yy_r130(){
    $this->_retvalue = '\''.substr($this->yystack[$this->yyidx + 0]->minor,1).'\'';
    }
// line 956 "./lexer/smarty_internal_templateparser.y"
    public function yy_r131(){
    $this->_retvalue = '\'\'';
    }
// line 961 "./lexer/smarty_internal_templateparser.y"
    public function yy_r132(){
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 969 "./lexer/smarty_internal_templateparser.y"
    public function yy_r134(){
    $var = trim(substr($this->yystack[$this->yyidx + 0]->minor, $this->compiler->getLdelLength(), -$this->compiler->getRdelLength()), ' $');
    $this->_retvalue = $this->compiler->compileVariable('\''.$var.'\'');
    }
// line 975 "./lexer/smarty_internal_templateparser.y"
    public function yy_r135(){
    $this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')';
    }
// line 982 "./lexer/smarty_internal_templateparser.y"
    public function yy_r136(){
    if ($this->yystack[$this->yyidx + -1]->minor['var'] === '\'smarty\'') {
        $this->_retvalue =  $this->compiler->compileTag('private_special_variable',array(),$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor;
    } else {
        $this->_retvalue = $this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor['var']).$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor;
    }
    }
// line 991 "./lexer/smarty_internal_templateparser.y"
    public function yy_r137(){
    $this->_retvalue  = $this->yystack[$this->yyidx + 0]->minor;
    }
// line 996 "./lexer/smarty_internal_templateparser.y"
    public function yy_r138(){
    $this->_retvalue  = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 1001 "./lexer/smarty_internal_templateparser.y"
    public function yy_r139(){
    if ($this->security && substr($this->yystack[$this->yyidx + -1]->minor,0,1) === '_') {
        $this->compiler->trigger_template_error (self::ERR1);
    }
    $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 1008 "./lexer/smarty_internal_templateparser.y"
    public function yy_r140(){
    if ($this->security) {
        $this->compiler->trigger_template_error (self::ERR2);
    }
    $this->_retvalue = '->{'.$this->compiler->compileVariable($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor.'}';
    }
// line 1015 "./lexer/smarty_internal_templateparser.y"
    public function yy_r141(){
    if ($this->security) {
        $this->compiler->trigger_template_error (self::ERR2);
    }
    $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
    }
// line 1022 "./lexer/smarty_internal_templateparser.y"
    public function yy_r142(){
    if ($this->security) {
        $this->compiler->trigger_template_error (self::ERR2);
    }
    $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}';
    }
// line 1030 "./lexer/smarty_internal_templateparser.y"
    public function yy_r143(){
    $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 1038 "./lexer/smarty_internal_templateparser.y"
    public function yy_r144(){
    $this->_retvalue = $this->compiler->compilePHPFunctionCall($this->yystack[$this->yyidx + -3]->minor, $this->yystack[$this->yyidx + -1]->minor);
    }
// line 1046 "./lexer/smarty_internal_templateparser.y"
    public function yy_r145(){
    if ($this->security && substr($this->yystack[$this->yyidx + -3]->minor,0,1) === '_') {
        $this->compiler->trigger_template_error (self::ERR1);
    }
    $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . '('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
    }
// line 1053 "./lexer/smarty_internal_templateparser.y"
    public function yy_r146(){
    if ($this->security) {
        $this->compiler->trigger_template_error (self::ERR2);
    }
    $prefixVar = $this->compiler->getNewPrefixVariable();
    $this->compiler->appendPrefixCode("<?php {$prefixVar} = ".$this->compiler->compileVariable('\''.substr($this->yystack[$this->yyidx + -3]->minor,1).'\'').';?>');
    $this->_retvalue = $prefixVar .'('. implode(',',$this->yystack[$this->yyidx + -1]->minor) .')';
    }
// line 1064 "./lexer/smarty_internal_templateparser.y"
    public function yy_r147(){
    $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array($this->yystack[$this->yyidx + 0]->minor));
    }
// line 1081 "./lexer/smarty_internal_templateparser.y"
    public function yy_r150(){
    $this->_retvalue = array_merge($this->yystack[$this->yyidx + -2]->minor,array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor)));
    }
// line 1085 "./lexer/smarty_internal_templateparser.y"
    public function yy_r151(){
    $this->_retvalue = array(array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor));
    }
// line 1093 "./lexer/smarty_internal_templateparser.y"
    public function yy_r153(){
    $this->_retvalue =  array($this->yystack[$this->yyidx + 0]->minor);
    }
// line 1101 "./lexer/smarty_internal_templateparser.y"
    public function yy_r154(){
    $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor);
    }
// line 1114 "./lexer/smarty_internal_templateparser.y"
    public function yy_r157(){
    $this->_retvalue = array(trim($this->yystack[$this->yyidx + -1]->minor).$this->yystack[$this->yyidx + 0]->minor);
    }
// line 1123 "./lexer/smarty_internal_templateparser.y"
    public function yy_r159(){
    $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '', 'method');
    }
// line 1128 "./lexer/smarty_internal_templateparser.y"
    public function yy_r160(){
    $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'method');
    }
// line 1133 "./lexer/smarty_internal_templateparser.y"
    public function yy_r161(){
    $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor, '');
    }
// line 1138 "./lexer/smarty_internal_templateparser.y"
    public function yy_r162(){
    $this->_retvalue = array($this->yystack[$this->yyidx + -1]->minor, $this->yystack[$this->yyidx + 0]->minor, 'property');
    }
// line 1143 "./lexer/smarty_internal_templateparser.y"
    public function yy_r163(){
    $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor, $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor, 'property');
    }
// line 1149 "./lexer/smarty_internal_templateparser.y"
    public function yy_r164(){
    $this->_retvalue = ' '. trim($this->yystack[$this->yyidx + 0]->minor) . ' ';
    }
// line 1153 "./lexer/smarty_internal_templateparser.y"
    public function yy_r165(){
    static $lops = array(
        'eq' => ' == ',
        'ne' => ' != ',
        'neq' => ' != ',
        'gt' => ' > ',
        'ge' => ' >= ',
        'gte' => ' >= ',
        'lt' =>  ' < ',
        'le' =>  ' <= ',
        'lte' => ' <= ',
        'mod' =>  ' % ',
        'and' => ' && ',
        'or' => ' || ',
        'xor' => ' xor ',
         );
    $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor));
    $this->_retvalue = $lops[$op];
    }
// line 1172 "./lexer/smarty_internal_templateparser.y"
    public function yy_r166(){
     static $tlops = array(
         'isdivby' => array('op' => ' % ', 'pre' => '!('),
         'isnotdivby' => array('op' => ' % ', 'pre' => '('),
         'isevenby' => array('op' => ' / ', 'pre' => '!(1 & '),
         'isnotevenby' => array('op' => ' / ', 'pre' => '(1 & '),
         'isoddby' => array('op' => ' / ', 'pre' => '(1 & '),
         'isnotoddby' => array('op' => ' / ', 'pre' => '!(1 & '),
         );
     $op = strtolower(preg_replace('/\s*/', '', $this->yystack[$this->yyidx + 0]->minor));
     $this->_retvalue = $tlops[$op];
     }
// line 1185 "./lexer/smarty_internal_templateparser.y"
    public function yy_r167(){
        static $scond = array (
            'iseven' => '!(1 & ',
            'isnoteven' => '(1 & ',
            'isodd' => '(1 & ',
            'isnotodd' => '!(1 & ',
        );
   $op = strtolower(str_replace(' ', '', $this->yystack[$this->yyidx + 0]->minor));
   $this->_retvalue = $scond[$op];
    }
// line 1199 "./lexer/smarty_internal_templateparser.y"
    public function yy_r168(){
    $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')';
    }
// line 1210 "./lexer/smarty_internal_templateparser.y"
    public function yy_r171(){
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 1218 "./lexer/smarty_internal_templateparser.y"
    public function yy_r173(){
    $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 1222 "./lexer/smarty_internal_templateparser.y"
    public function yy_r174(){ 
    $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor;
    }
// line 1238 "./lexer/smarty_internal_templateparser.y"
    public function yy_r177(){
    $this->compiler->leaveDoubleQuote();
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php($this);
    }
// line 1244 "./lexer/smarty_internal_templateparser.y"
    public function yy_r178(){
    $this->yystack[$this->yyidx + -1]->minor->append_subtree($this, $this->yystack[$this->yyidx + 0]->minor);
    $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;
    }
// line 1249 "./lexer/smarty_internal_templateparser.y"
    public function yy_r179(){
    $this->_retvalue = new Smarty_Internal_ParseTree_Dq($this, $this->yystack[$this->yyidx + 0]->minor);
    }
// line 1253 "./lexer/smarty_internal_templateparser.y"
    public function yy_r180(){
    $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)'.$this->yystack[$this->yyidx + -1]->minor);
    }
// line 1257 "./lexer/smarty_internal_templateparser.y"
    public function yy_r181(){
    $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)('.$this->yystack[$this->yyidx + -1]->minor.')');
    }
// line 1261 "./lexer/smarty_internal_templateparser.y"
    public function yy_r182(){
    $this->_retvalue = new Smarty_Internal_ParseTree_Code('(string)$_smarty_tpl->tpl_vars[\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\']->value');
    }
// line 1273 "./lexer/smarty_internal_templateparser.y"
    public function yy_r185(){
    $this->_retvalue = new Smarty_Internal_ParseTree_Tag($this, $this->yystack[$this->yyidx + 0]->minor);
    }
// line 1277 "./lexer/smarty_internal_templateparser.y"
    public function yy_r186(){
    $this->_retvalue = new Smarty_Internal_ParseTree_DqContent($this->yystack[$this->yyidx + 0]->minor);
    }

    private $_retvalue;

    public function yy_reduce($yyruleno)
    {
        if ($this->yyTraceFILE && $yyruleno >= 0
              && $yyruleno < count(self::$yyRuleName)) {
            fprintf($this->yyTraceFILE, "%sReduce (%d) [%s].\n",
                $this->yyTracePrompt, $yyruleno,
                self::$yyRuleName[$yyruleno]);
        }

        $this->_retvalue = $yy_lefthand_side = null;
        if (isset(self::$yyReduceMap[$yyruleno])) {
            // call the action
            $this->_retvalue = null;
            $this->{'yy_r' . self::$yyReduceMap[$yyruleno]}();
            $yy_lefthand_side = $this->_retvalue;
        }
        $yygoto = self::$yyRuleInfo[$yyruleno][0];
        $yysize = self::$yyRuleInfo[$yyruleno][1];
        $this->yyidx -= $yysize;
        for ($i = $yysize; $i; $i--) {
            // pop all of the right-hand side parameters
            array_pop($this->yystack);
        }
        $yyact = $this->yy_find_reduce_action($this->yystack[$this->yyidx]->stateno, $yygoto);
        if ($yyact < self::YYNSTATE) {
            if (!$this->yyTraceFILE && $yysize) {
                $this->yyidx++;
                $x = new TP_yyStackEntry;
                $x->stateno = $yyact;
                $x->major = $yygoto;
                $x->minor = $yy_lefthand_side;
                $this->yystack[$this->yyidx] = $x;
            } else {
                $this->yy_shift($yyact, $yygoto, $yy_lefthand_side);
            }
        } elseif ($yyact === self::YYNSTATE + self::YYNRULE + 1) {
            $this->yy_accept();
        }
    }

    public function yy_parse_failed()
    {
        if ($this->yyTraceFILE) {
            fprintf($this->yyTraceFILE, "%sFail!\n", $this->yyTracePrompt);
        } while ($this->yyidx >= 0) {
            $this->yy_pop_parser_stack();
        }
    }

    public function yy_syntax_error($yymajor, $TOKEN)
    {
// line 214 "./lexer/smarty_internal_templateparser.y"

    $this->internalError = true;
    $this->yymajor = $yymajor;
    $this->compiler->trigger_template_error();
    }

    public function yy_accept()
    {
        if ($this->yyTraceFILE) {
            fprintf($this->yyTraceFILE, "%sAccept!\n", $this->yyTracePrompt);
        } while ($this->yyidx >= 0) {
            $this->yy_pop_parser_stack();
        }
// line 207 "./lexer/smarty_internal_templateparser.y"

    $this->successful = !$this->internalError;
    $this->internalError = false;
    $this->retvalue = $this->_retvalue;
    }

    public function doParse($yymajor, $yytokenvalue)
    {
        $yyerrorhit = 0;   /* True if yymajor has invoked an error */

        if ($this->yyidx === null || $this->yyidx < 0) {
            $this->yyidx = 0;
            $this->yyerrcnt = -1;
            $x = new TP_yyStackEntry;
            $x->stateno = 0;
            $x->major = 0;
            $this->yystack = array();
            $this->yystack[] = $x;
        }
        $yyendofinput = ($yymajor==0);

        if ($this->yyTraceFILE) {
            fprintf($this->yyTraceFILE, "%sInput %s\n",
                $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
        }

        do {
            $yyact = $this->yy_find_shift_action($yymajor);
            if ($yymajor < self::YYERRORSYMBOL &&
                  !$this->yy_is_expected_token($yymajor)) {
                // force a syntax error
                $yyact = self::YY_ERROR_ACTION;
            }
            if ($yyact < self::YYNSTATE) {
                $this->yy_shift($yyact, $yymajor, $yytokenvalue);
                $this->yyerrcnt--;
                if ($yyendofinput && $this->yyidx >= 0) {
                    $yymajor = 0;
                } else {
                    $yymajor = self::YYNOCODE;
                }
            } elseif ($yyact < self::YYNSTATE + self::YYNRULE) {
                $this->yy_reduce($yyact - self::YYNSTATE);
            } elseif ($yyact === self::YY_ERROR_ACTION) {
                if ($this->yyTraceFILE) {
                    fprintf($this->yyTraceFILE, "%sSyntax Error!\n",
                        $this->yyTracePrompt);
                }
                if (self::YYERRORSYMBOL) {
                    if ($this->yyerrcnt < 0) {
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
                    }
                    $yymx = $this->yystack[$this->yyidx]->major;
                    if ($yymx === self::YYERRORSYMBOL || $yyerrorhit) {
                        if ($this->yyTraceFILE) {
                            fprintf($this->yyTraceFILE, "%sDiscard input token %s\n",
                                $this->yyTracePrompt, $this->yyTokenName[$yymajor]);
                        }
                        $this->yy_destructor($yymajor, $yytokenvalue);
                        $yymajor = self::YYNOCODE;
                    } else {
                        while ($this->yyidx >= 0 &&
                                 $yymx !== self::YYERRORSYMBOL &&
        ($yyact = $this->yy_find_shift_action(self::YYERRORSYMBOL)) >= self::YYNSTATE
                              ){
                            $this->yy_pop_parser_stack();
                        }
                        if ($this->yyidx < 0 || $yymajor==0) {
                            $this->yy_destructor($yymajor, $yytokenvalue);
                            $this->yy_parse_failed();
                            $yymajor = self::YYNOCODE;
                        } elseif ($yymx !== self::YYERRORSYMBOL) {
                            $u2 = 0;
                            $this->yy_shift($yyact, self::YYERRORSYMBOL, $u2);
                        }
                    }
                    $this->yyerrcnt = 3;
                    $yyerrorhit = 1;
                } else {
                    if ($this->yyerrcnt <= 0) {
                        $this->yy_syntax_error($yymajor, $yytokenvalue);
                    }
                    $this->yyerrcnt = 3;
                    $this->yy_destructor($yymajor, $yytokenvalue);
                    if ($yyendofinput) {
                        $this->yy_parse_failed();
                    }
                    $yymajor = self::YYNOCODE;
                }
            } else {
                $this->yy_accept();
                $yymajor = self::YYNOCODE;
            }
        } while ($yymajor !== self::YYNOCODE && $this->yyidx >= 0);
    }
}


Youez - 2016 - github.com/yon3zu
LinuXploit