summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 7abce84)
raw | patch | inline | side by side (parent: 7abce84)
author | cajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 17 Mar 2010 14:33:52 +0000 (14:33 +0000) | ||
committer | cajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8> | |
Wed, 17 Mar 2010 14:33:52 +0000 (14:33 +0000) |
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@16778 594d385d-05f5-0310-b6e9-bd551577e9d8
32 files changed:
index 6f28857311f6063262a09a46f4f2f370d34d8c90..2d2ed357edd0c3efc8035c5ff21d67577c91021a 100644 (file)
<?php
/**
-* Project: Smarty: the PHP compiling template engine
-* File: Smarty.class.php
-* SVN: $Id: Smarty.class.php 3420 2009-12-29 20:12:11Z Uwe.Tews $
-*
-* This library is free software; you can redistribute it and/or
-* modify it under the terms of the GNU Lesser General Public
-* License as published by the Free Software Foundation; either
-* version 2.1 of the License, or (at your option) any later version.
-*
-* This library is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this library; if not, write to the Free Software
-* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*
-* For questions, help, comments, discussion, etc., please join the
-* Smarty mailing list. Send a blank e-mail to
-* smarty-discussion-subscribe@googlegroups.com
-*
-* @link http://www.smarty.net/
-* @copyright 2008 New Digital Group, Inc.
-* @author Monte Ohrt <monte at ohrt dot com>
-* @author Uwe Tews
-* @package Smarty
-* @version 3-SVN$Rev: 3286 $
-*/
+ * Project: Smarty: the PHP compiling template engine
+ * File: Smarty.class.php
+ * SVN: $Id: Smarty.class.php 3508 2010-02-26 12:58:36Z Uwe.Tews $
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * For questions, help, comments, discussion, etc., please join the
+ * Smarty mailing list. Send a blank e-mail to
+ * smarty-discussion-subscribe@googlegroups.com
+ *
+ * @link http://www.smarty.net/
+ * @copyright 2008 New Digital Group, Inc.
+ * @author Monte Ohrt <monte at ohrt dot com>
+ * @author Uwe Tews
+ * @package Smarty
+ * @version 3-SVN$Rev: 3286 $
+ */
/**
-* define shorthand directory separator constant
-*/
+ * define shorthand directory separator constant
+ */
if (!defined('DS')) {
define('DS', DIRECTORY_SEPARATOR);
}
/**
-* set SMARTY_DIR to absolute path to Smarty library files.
-* Sets SMARTY_DIR only if user application has not already defined it.
-*/
+ * set SMARTY_DIR to absolute path to Smarty library files.
+ * Sets SMARTY_DIR only if user application has not already defined it.
+ */
if (!defined('SMARTY_DIR')) {
define('SMARTY_DIR', dirname(__FILE__) . DS);
}
/**
-* set SMARTY_SYSPLUGINS_DIR to absolute path to Smarty internal plugins.
-* Sets SMARTY_SYSPLUGINS_DIR only if user application has not already defined it.
-*/
+ * set SMARTY_SYSPLUGINS_DIR to absolute path to Smarty internal plugins.
+ * Sets SMARTY_SYSPLUGINS_DIR only if user application has not already defined it.
+ */
if (!defined('SMARTY_SYSPLUGINS_DIR')) {
define('SMARTY_SYSPLUGINS_DIR', SMARTY_DIR . 'sysplugins' . DS);
}
}
/**
-* define variable scopes
-*/
+ * define variable scopes
+ */
define('SMARTY_LOCAL_SCOPE', 0);
define('SMARTY_PARENT_SCOPE', 1);
define('SMARTY_ROOT_SCOPE', 2);
define('SMARTY_GLOBAL_SCOPE', 3);
/**
-* define caching modes
-*/
+ * define caching modes
+ */
define('SMARTY_CACHING_OFF', 0);
define('SMARTY_CACHING_LIFETIME_CURRENT', 1);
define('SMARTY_CACHING_LIFETIME_SAVED', 2);
/**
-* This determines how Smarty handles "<?php ... ?>" tags in templates.
-* possible values:
-*/
+ * This determines how Smarty handles "<?php ... ?>" tags in templates.
+ * possible values:
+ */
define('SMARTY_PHP_PASSTHRU', 0); //-> print tags as plain text
define('SMARTY_PHP_QUOTE', 1); //-> escape tags as entities
define('SMARTY_PHP_REMOVE', 2); //-> escape tags as entities
define('SMARTY_PHP_ALLOW', 3); //-> escape tags as entities
/**
-* register the class autoloader
-*/
+ * register the class autoloader
+ */
if (!defined('SMARTY_SPL_AUTOLOAD')) {
define('SMARTY_SPL_AUTOLOAD', 0);
}
@@ -104,11 +104,11 @@ if (SMARTY_SPL_AUTOLOAD && set_include_path(get_include_path() . PATH_SEPARATOR
}
/**
-* This is the main Smarty class
-*/
+ * This is the main Smarty class
+ */
class Smarty extends Smarty_Internal_Data {
// smarty version
- const SMARTY_VERSION = 'Smarty3-b7';
+ const SMARTY_VERSION = 'Smarty3-b8';
// auto literal on delimiters with whitspace
public $auto_literal = true;
// display error on not assigned variables
// config var settings
public $config_overwrite = true; //Controls whether variables with the same name overwrite each other.
public $config_booleanize = true; //Controls whether config values of on/true/yes and off/false/no get converted to boolean
- public $config_read_hidden = true; //Controls whether hidden config sections/vars are read from the file.
+ public $config_read_hidden = true; //Controls whether hidden config sections/vars are read from the file.
// config vars
public $config_vars = array();
// assigned tpl vars
public $caching_type = 'file';
// internal cache resource types
public $cache_resource_types = array('file');
+ // internal cache resource objects
+ public $cache_resource_objects = array();
+ // internal config properties
+ public $properties = array();
// config type
public $default_config_type = 'file';
// exception handler: array('ExceptionClass','ExceptionMethod');
public $autoload_filters = array();
// status of filter on variable output
public $variable_filter = true;
+ // default modifier
+ public $default_modifiers = array();
// global internal smarty vars
public $_smarty_vars = array();
// start time for execution time calculation
// default dir permissions
public $_dir_perms = 0771;
// smarty object reference
- public $smarty = null;
+ public $smarty = null;
+ // block data at template inheritance
+ public $block_data = array();
+ // block tag hierarchy
+ public $_tag_stack = array();
+ // plugins
+ public $_plugins = array();
+ // generate deprecated function call notices?
+ public $deprecation_notices = true;
/**
- * Class constructor, initializes basic smarty properties
- */
- public function __construct() {
+ * Class constructor, initializes basic smarty properties
+ */
+ public function __construct()
+ {
// self reference needed by other classes methods
$this->smarty = $this;
$this->start_time = $this->_get_time();
// set exception handler
if (!empty($this->exception_handler))
- set_exception_handler($this->exception_handler);
+ set_exception_handler($this->exception_handler);
// set default dirs
$this->template_dir = array('.' . DS . 'templates' . DS);
$this->compile_dir = '.' . DS . 'templates_c' . DS;
if (!$this->debugging && $this->debugging_ctrl == 'URL') {
if (isset($_SERVER['QUERY_STRING'])) {
$_query_string = $_SERVER['QUERY_STRING'];
- }
- else {
+ } else {
$_query_string = '';
}
if (false !== strpos($_query_string, $this->smarty_debug_id)) {
// enable debugging for this browser session
setcookie('SMARTY_DEBUG', true);
$this->debugging = true;
- }
- elseif (false !== strpos($_query_string, $this->smarty_debug_id . '=off')) {
+ } elseif (false !== strpos($_query_string, $this->smarty_debug_id . '=off')) {
// disable debugging for this browser session
setcookie('SMARTY_DEBUG', false);
$this->debugging = false;
- }
- else {
+ } else {
// enable debugging for this page
$this->debugging = true;
}
- }
- else {
+ } else {
if (isset($_COOKIE['SMARTY_DEBUG'])) {
$this->debugging = true;
}
}
}
- $this->assign_global('SCRIPT_NAME', $_SERVER['SCRIPT_NAME']);
+ if (isset($_SERVER['SCRIPT_NAME'])) {
+ $this->assignGlobal('SCRIPT_NAME', $_SERVER['SCRIPT_NAME']);
+ }
}
/**
- * Class destructor
- */
- public function __destruct() {
+ * Class destructor
+ */
+ public function __destruct()
+ {
// restore to previous exception handler, if any
if (!empty($this->exception_handler))
- restore_exception_handler();
+ restore_exception_handler();
}
/**
- * fetches a rendered Smarty template
- *
- * @param string $template the resource handle of the template file or template object
- * @param mixed $cache_id cache id to be used with this template
- * @param mixed $compile_id compile id to be used with this template
- * @param object $ |null $parent next higher level of Smarty variables
- * @return string rendered template output
- */
- public function fetch($template, $cache_id = null, $compile_id = null, $parent = null) {
+ * fetches a rendered Smarty template
+ *
+ * @param string $template the resource handle of the template file or template object
+ * @param mixed $cache_id cache id to be used with this template
+ * @param mixed $compile_id compile id to be used with this template
+ * @param object $ |null $parent next higher level of Smarty variables
+ * @return string rendered template output
+ */
+ public function fetch($template, $cache_id = null, $compile_id = null, $parent = null, $display = false)
+ {
if (is_object($cache_id)) {
$parent = $cache_id;
$cache_id = null;
$_template = $this->createTemplate ($template, $cache_id, $compile_id, $parent);
$_smarty_old_error_level = $this->debugging ? error_reporting() : error_reporting(isset($this->error_reporting)
? $this->error_reporting : error_reporting() &~E_NOTICE);
+ // obtain data for cache modified check
+ if ($this->cache_modified_check && $this->caching && $display) {
+ $_isCached = $_template->isCached() && !$_template->has_nocache_code;
+ if ($_isCached) {
+ $_gmt_mtime = gmdate('D, d M Y H:i:s', $_template->getCachedTimestamp()) . ' GMT';
+ } else {
+ $_gmt_mtime = '';
+ }
+ }
// return redered template
if (isset($this->autoload_filters['output']) || isset($this->registered_filters['output'])) {
$_output = Smarty_Internal_Filter_Handler::runFilter('output', $_template->getRenderedTemplate(), $this);
- }
- else {
+ } else {
$_output = $_template->getRenderedTemplate();
}
$_template->rendered_content = null;
- error_reporting($_smarty_old_error_level);
- return $_output;
+ error_reporting($_smarty_old_error_level);
+ // display or fetch
+ if ($display) {
+ if ($this->caching && $this->cache_modified_check) {
+ $_last_modified_date = @substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 0, strpos($_SERVER['HTTP_IF_MODIFIED_SINCE'], 'GMT') + 3);
+ if ($_isCached && $_gmt_mtime == $_last_modified_date) {
+ if (php_sapi_name() == 'cgi')
+ header('Status: 304 Not Modified');
+ else
+ header('HTTP/1.1 304 Not Modified');
+ } else {
+ header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $_template->getCachedTimestamp()) . ' GMT');
+ echo $_output;
+ }
+ } else {
+ echo $_output;
+ }
+ // debug output
+ if ($this->debugging) {
+ Smarty_Internal_Debug::display_debug($this);
+ }
+ return;
+ } else {
+ // return fetched content
+ return $_output;
+ }
}
/**
- * displays a Smarty template
- *
- * @param string $ |object $template the resource handle of the template file or template object
- * @param mixed $cache_id cache id to be used with this template
- * @param mixed $compile_id compile id to be used with this template
- * @param object $parent next higher level of Smarty variables
- */
- public function display($template, $cache_id = null, $compile_id = null, $parent = null) {
+ * displays a Smarty template
+ *
+ * @param string $ |object $template the resource handle of the template file or template object
+ * @param mixed $cache_id cache id to be used with this template
+ * @param mixed $compile_id compile id to be used with this template
+ * @param object $parent next higher level of Smarty variables
+ */
+ public function display($template, $cache_id = null, $compile_id = null, $parent = null)
+ {
// display template
- echo $this->fetch ($template, $cache_id, $compile_id, $parent);
- // debug output
- if ($this->debugging) {
- Smarty_Internal_Debug::display_debug($this);
- }
- return true;
+ $this->fetch ($template, $cache_id, $compile_id, $parent, true);
}
/**
- * test if cache i valid
- *
- * @param string $ |object $template the resource handle of the template file or template object
- * @param mixed $cache_id cache id to be used with this template
- * @param mixed $compile_id compile id to be used with this template
- * @return boolean cache status
- */
- public function is_cached($template, $cache_id = null, $compile_id = null) {
+ * test if cache i valid
+ *
+ * @param string $ |object $template the resource handle of the template file or template object
+ * @param mixed $cache_id cache id to be used with this template
+ * @param mixed $compile_id compile id to be used with this template
+ * @return boolean cache status
+ */
+ public function isCached($template, $cache_id = null, $compile_id = null)
+ {
if (!($template instanceof $this->template_class)) {
$template = $this->createTemplate ($template, $cache_id, $compile_id, $this);
}
}
/**
- * Loads security class and enables security
- */
- public function enableSecurity() {
+ * creates a data object
+ *
+ * @param object $parent next higher level of Smarty variables
+ * @returns object data object
+ */
+ public function createData($parent = null)
+ {
+ return new Smarty_Data($parent, $this);
+ }
+
+ /**
+ * creates a template object
+ *
+ * @param string $template the resource handle of the template file
+ * @param object $parent next higher level of Smarty variables
+ * @param mixed $cache_id cache id to be used with this template
+ * @param mixed $compile_id compile id to be used with this template
+ * @returns object template object
+ */
+ public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
+ {
+ if (is_object($cache_id) || is_array($cache_id)) {
+ $parent = $cache_id;
+ $cache_id = null;
+ }
+ if (is_array($parent)) {
+ $data = $parent;
+ $parent = null;
+ } else {
+ $data = null;
+ }
+ if (!is_object($template)) {
+ // we got a template resource
+ // already in template cache?
+ $_templateId = crc32($template . $cache_id . $compile_id);
+ if (isset($this->template_objects[$_templateId]) && $this->caching) {
+ // return cached template object
+ $tpl = $this->template_objects[$_templateId];
+ } else {
+ // create new template object
+ $tpl = new $this->template_class($template, $this, $parent, $cache_id, $compile_id);
+ }
+ } else {
+ // just return a copy of template class
+ $tpl = $template;
+ }
+ // fill data if present
+ if (is_array($data)) {
+ // set up variable values
+ foreach ($data as $_key => $_val) {
+ $tpl->tpl_vars[$_key] = new Smarty_variable($_val);
+ }
+ }
+ return $tpl;
+ }
+
+ /**
+ * Loads security class and enables security
+ */
+ public function enableSecurity()
+ {
if (isset($this->security_class)) {
$this->security_policy = new $this->security_class;
$this->security_handler = new Smarty_Internal_Security_Handler($this);
$this->security = true;
- }
- else {
+ } else {
throw new Exception('Property security_class is not defined');
}
}
/**
- * Set template directory
- *
- * @param string $ |array $template_dir folder(s) of template sorces
- */
- public function setTemplateDir($template_dir) {
+ * Disable security
+ */
+ public function disableSecurity()
+ {
+ $this->security = true;
+ }
+
+ /**
+ * Set template directory
+ *
+ * @param string $ |array $template_dir folder(s) of template sorces
+ */
+ public function setTemplateDir($template_dir)
+ {
$this->template_dir = (array)$template_dir;
return;
}
+
/**
- * Adds template directory(s) to existing ones
- *
- * @param string $ |array $template_dir folder(s) of template sources
- */
- public function addTemplateDir($template_dir) {
+ * Adds template directory(s) to existing ones
+ *
+ * @param string $ |array $template_dir folder(s) of template sources
+ */
+ public function addTemplateDir($template_dir)
+ {
$this->template_dir = array_merge((array)$this->template_dir, (array)$template_dir);
$this->template_dir = array_unique($this->template_dir);
return;
}
+
/**
- * Set compile directory
- *
- * @param string $compile_dir folder of compiled template sources
- */
- public function setCompileDir($compile_dir) {
- $this->compile_dir = $compile_dir;
- return;
- }
- /**
- * Set cache directory
- *
- * @param string $cache_dir folder of cache files
- */
- public function setCacheDir($cache_dir) {
- $this->cache_dir = $cache_dir;
- return;
- }
- /**
- * Enable Caching
- */
- public function enableCaching() {
- $this->caching = SMARTY_CACHING_LIFETIME_CURRENT;
- return;
- }
- /**
- * Set caching life time
- *
- * @param integer $lifetime lifetime of cached file in seconds
- */
- public function setCacheLifetime($lifetime) {
- $this->cache_lifetime = $lifetime;
- return;
+ * Check if a template resource exists
+ *
+ * @param string $resource_name template name
+ * @return boolean status
+ */
+ function templateExists($resource_name)
+ {
+ // create template object
+ $tpl = new $this->template_class($resource_name, $this);
+ // check if it does exists
+ return $tpl->isExisting();
}
+
/**
- * Takes unknown classes and loads plugin files for them
- * class name format: Smarty_PluginType_PluginName
- * plugin filename format: plugintype.pluginname.php
- *
- * @param string $plugin_name class plugin name to load
- * @return string|boolean filepath of loaded file or false
- */
- public function loadPlugin($plugin_name, $check = true) {
+ * Takes unknown classes and loads plugin files for them
+ * class name format: Smarty_PluginType_PluginName
+ * plugin filename format: plugintype.pluginname.php
+ *
+ * @param string $plugin_name class plugin name to load
+ * @return string |boolean filepath of loaded file or false
+ */
+ public function loadPlugin($plugin_name, $check = true)
+ {
// if function or class exists, exit silently (already loaded)
if ($check && (is_callable($plugin_name) || class_exists($plugin_name, false)))
- return true;
+ return true;
// Plugin name is expected to be: Smarty_[Type]_[Name]
$_plugin_name = strtolower($plugin_name);
$_name_parts = explode('_', $_plugin_name, 3);
if (file_exists($file)) {
require_once($file);
return $file;
- }
- else {
+ } else {
return false;
}
}
}
/**
- * Sets the exception handler for Smarty.
- *
- * @param mixed $handler function name or array with object/method names
- * @return string previous exception handler
- */
- public function setExceptionHandler($handler) {
+ * load a filter of specified type and name
+ *
+ * @param string $type filter type
+ * @param string $name filter name
+ * @return bool
+ */
+ function loadFilter($type, $name)
+ {
+ $_plugin = "smarty_{$type}filter_{$name}";
+ $_filter_name = $_plugin;
+ if ($this->loadPlugin($_plugin)) {
+ if (class_exists($_plugin, false)) {
+ $_plugin = array($_plugin, 'execute');
+ }
+ if (is_callable($_plugin)) {
+ return $this->registered_filters[$type][$_filter_name] = $_plugin;
+ }
+ }
+ throw new Exception("{$type}filter \"{$name}\" not callable");
+ return false;
+ }
+
+ /**
+ * Sets the exception handler for Smarty.
+ *
+ * @param mixed $handler function name or array with object/method names
+ * @return string previous exception handler
+ */
+ public function setExceptionHandler($handler)
+ {
$this->exception_handler = $handler;
return set_exception_handler($handler);
}
/**
- * Loads cache resource.
- *
- * @return object of cache resource
- */
- public function loadCacheResource($type = null) {
- if (!isset($type)) {
- $type = $this->caching_type;
- }
- // already loaded?
- if (isset($this->cache_resource_objects[$type])) {
- return $this->cache_resource_objects[$type];
- }
- if (in_array($type, $this->cache_resource_types)) {
- $cache_resource_class = 'Smarty_Internal_CacheResource_' . ucfirst($type);
- return $this->cache_resource_objects[$type] = new $cache_resource_class($this);
+ * trigger Smarty error
+ *
+ * @param string $error_msg
+ * @param integer $error_type
+ */
+ public function trigger_error($error_msg, $error_type = E_USER_WARNING)
+ {
+ throw new Exception("Smarty error: $error_msg");
+ }
+
+ /**
+ * Return internal filter name
+ *
+ * @param callback $function_name
+ */
+ public function _get_filter_name($function_name)
+ {
+ if (is_array($function_name)) {
+ $_class_name = (is_object($function_name[0]) ?
+ get_class($function_name[0]) : $function_name[0]);
+ return $_class_name . '_' . $function_name[1];
+ } else {
+ return $function_name;
}
- else {
- // try plugins dir
- $cache_resource_class = 'Smarty_CacheResource_' . ucfirst($type);
- if ($this->loadPlugin($cache_resource_class)) {
- return $this->cache_resource_objects[$type] = new $cache_resource_class($this);
+ }
+
+ /**
+ * Adds directory of plugin files
+ *
+ * @param object $smarty
+ * @param string $ |array $ plugins folder
+ * @return
+ */
+ function addPluginsDir($plugins_dir)
+ {
+ $this->plugins_dir = array_merge((array)$this->plugins_dir, (array)$plugins_dir);
+ $this->plugins_dir = array_unique($this->plugins_dir);
+ return;
+ }
+
+ /**
+ * Returns a single or all global variables
+ *
+ * @param object $smarty
+ * @param string $varname variable name or null
+ * @return string variable value or or array of variables
+ */
+ function getGlobal($varname = null)
+ {
+ if (isset($varname)) {
+ if (isset($this->global_tpl_vars[$varname])) {
+ return $this->global_tpl_vars[$varname]->value;
+ } else {
+ return '';
}
- else {
- throw new Exception("Unable to load cache resource '{$type}'");
+ } else {
+ $_result = array();
+ foreach ($this->global_tpl_vars AS $key => $var) {
+ $_result[$key] = $var->value;
}
+ return $_result;
}
}
/**
- * trigger Smarty error
- *
- * @param string $error_msg
- * @param integer $error_type
- */
- public function trigger_error($error_msg, $error_type = E_USER_WARNING) {
- throw new Exception("Smarty error: $error_msg");
+ * return a reference to a registered object
+ *
+ * @param string $name object name
+ * @return object
+ */
+ function getRegisteredObject($name)
+ {
+ if (!isset($this->registered_objects[$name]))
+ throw new Exception("'$name' is not a registered object");
+
+ if (!is_object($this->registered_objects[$name][0]))
+ throw new Exception("registered '$name' is not an object");
+
+ return $this->registered_objects[$name][0];
}
/**
- * Takes unknown class methods and lazy loads sysplugin files for them
- * class name format: Smarty_Method_MethodName
- * plugin filename format: method.methodname.php
- *
- * @param string $name unknown methode name
- * @param array $args aurgument array
- */
- public function __call($name, $args) {
+ * return name of debugging template
+ *
+ * @return string
+ */
+ function getDebugTemplate()
+ {
+ return $this->debug_tpl;
+ }
+
+ /**
+ * set the debug template
+ *
+ * @param string $tpl_name
+ * @return bool
+ */
+ function setDebugTemplate($tpl_name)
+ {
+ return $this->debug_tpl = $tpl_name;
+ }
+
+ /**
+ * lazy loads (valid) property objects
+ *
+ * @param string $name property name
+ */
+ public function __get($name)
+ {
+ if (in_array($name, array('register', 'unregister', 'utility', 'cache'))) {
+ $class = "Smarty_Internal_" . ucfirst($name);
+ $this->$name = new $class($this);
+ return $this->$name;
+ } else if ($name == '_version') {
+ // Smarty 2 BC
+ $this->_version = self::SMARTY_VERSION;
+ return $this->_version;
+ }
+ return null;
+ }
+
+ /**
+ * Takes unknown class methods and lazy loads sysplugin files for them
+ * class name format: Smarty_Method_MethodName
+ * plugin filename format: method.methodname.php
+ *
+ * @param string $name unknown methode name
+ * @param array $args aurgument array
+ */
+ public function __call($name, $args)
+ {
+ static $camel_func;
+ if (!isset($camel_func))
+ $camel_func = create_function('$c', 'return "_" . strtolower($c[1]);');
+ // PHP4 call to constructor?
+ if (strtolower($name) == 'smarty') {
+ throw new Exception('Please use parent::__construct() to call parent constuctor');
+ return false;
+ }
+ // see if this is a set/get for a property
+ $first3 = strtolower(substr($name, 0, 3));
+ if (in_array($first3, array('set', 'get')) && substr($name, 3, 1) !== '_') {
+ // try to keep case correct for future PHP 6.0 case-sensitive class methods
+ // lcfirst() not available < PHP 5.3.0, so improvise
+ $property_name = strtolower(substr($name, 3, 1)) . substr($name, 4);
+ // convert camel case to underscored name
+ $property_name = preg_replace_callback('/([A-Z])/', $camel_func, $property_name);
+ if (!property_exists($this, $property_name)) {
+ throw new Exception("property '$property_name' does not exist.");
+ return false;
+ }
+ if ($first3 == 'get')
+ return $this->$property_name;
+ else
+ return $this->$property_name = $args[0];
+ }
+ // Smarty Backward Compatible wrapper
+ if (!isset($this->wrapper)) {
+ $this->wrapper = new Smarty_Internal_Wrapper($this);
+ }
+ return $this->wrapper->convert($name, $args);
+
+ /*
$name = strtolower($name);
if ($name == 'smarty') {
throw new Exception('Please use parent::__construct() to call parent constuctor');
require_once(SMARTY_SYSPLUGINS_DIR . $function_name . '.php');
}
return call_user_func_array($function_name, array_merge(array($this), $args));
+ */
}
}
-function smartyAutoload($class) {
+function smartyAutoload($class)
+{
$_class = strtolower($class);
if (substr($_class, 0, 16) === 'smarty_internal_' || $_class == 'smarty_security') {
include SMARTY_SYSPLUGINS_DIR . $_class . '.php';
diff --git a/gosa-core/include/smarty/plugins/modifier.escape.php b/gosa-core/include/smarty/plugins/modifier.escape.php
index 0e58d8b21a93ecbfc6d8a105f47886b331edbf1f..c35e67ae01f4f2615ca067bce4eccedc519935b9 100644 (file)
*/
function smarty_modifier_escape($string, $esc_type = 'html', $char_set = SMARTY_RESOURCE_CHAR_SET)
{
+ if (!function_exists('mb_str_replace') && function_exists('mb_strlen')) {
+ // simulate the missing PHP mb_str_replace function
+ function mb_str_replace($needle, $replacement, $haystack)
+ {
+ $needle_len = mb_strlen($needle);
+ $replacement_len = mb_strlen($replacement);
+ $pos = mb_strpos($haystack, $needle, 0);
+ while ($pos !== false) {
+ $haystack = mb_substr($haystack, 0, $pos) . $replacement
+ . mb_substr($haystack, $pos + $needle_len);
+ $pos = mb_strpos($haystack, $needle, $pos + $replacement_len);
+ }
+ return $haystack;
+ }
+ }
switch ($esc_type) {
case 'html':
return htmlspecialchars($string, ENT_QUOTES, $char_set);
case 'mail':
// safe way to display e-mail address on a web page
- if ($smarty->has_mb) {
+ if (function_exists('mb_str_replace')) {
return mb_str_replace(array('@', '.'), array(' [AT] ', ' [DOT] '), $string);
} else {
return str_replace(array('@', '.'), array(' [AT] ', ' [DOT] '), $string);
@@ -91,21 +106,6 @@ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = SMARTY_
default:
return $string;
}
- if (!function_exists("mb_str_replace")) {
- // simulate the missing PHP mb_str_replace function
- function mb_str_replace($needle, $replacement, $haystack)
- {
- $needle_len = mb_strlen($needle);
- $replacement_len = mb_strlen($replacement);
- $pos = mb_strpos($haystack, $needle, 0);
- while ($pos !== false) {
- $haystack = mb_substr($haystack, 0, $pos) . $replacement
- . mb_substr($haystack, $pos + $needle_len);
- $pos = mb_strpos($haystack, $needle, $pos + $replacement_len);
- }
- return $haystack;
- }
- }
}
?>
diff --git a/gosa-core/include/smarty/plugins/modifier.truncate.php b/gosa-core/include/smarty/plugins/modifier.truncate.php
index 943a8ab6591f8a3a115f79f8afc559de24662e64..0ad5f10f8a8320a4aaf7d1fac41ac97b406edff3 100644 (file)
if (mb_strlen($string) > $length) {
$length -= min($length, mb_strlen($etc));
if (!$break_words && !$middle) {
- $string = mb_ereg_replace('/\s+?(\S+)?$/', '', mb_substr($string, 0, $length + 1), 'p');
+ $string = preg_replace('/\s+?(\S+)?$/u', '', mb_substr($string, 0, $length + 1));
}
if (!$middle) {
return mb_substr($string, 0, $length) . $etc;
diff --git a/gosa-core/include/smarty/plugins/variablefilter.htmlspecialchars.php b/gosa-core/include/smarty/plugins/variablefilter.htmlspecialchars.php
index 08a578337885318c1fe610daa965370a2ed2cd0f..5f11b7346f049cc750a1e8328e714329f1e34262 100644 (file)
* @param object $ &$smarty Smarty object
* @return string filtered output
*/
-function smarty_variablefilter_htmlspecialchars($source, &$smarty)
+function smarty_variablefilter_htmlspecialchars($source, $smarty)
{
return htmlspecialchars($source, ENT_QUOTES);
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_cache.php b/gosa-core/include/smarty/sysplugins/smarty_internal_cache.php
--- /dev/null
@@ -0,0 +1,102 @@
+<?php
+
+/**
+* Project: Smarty: the PHP compiling template engine
+* File: smarty_internal_cache.php
+* SVN: $Id: $
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*
+* For questions, help, comments, discussion, etc., please join the
+* Smarty mailing list. Send a blank e-mail to
+* smarty-discussion-subscribe@googlegroups.com
+*
+* @link http://www.smarty.net/
+* @copyright 2008 New Digital Group, Inc.
+* @author Monte Ohrt <monte at ohrt dot com>
+* @author Uwe Tews
+* @package Smarty
+* @subpackage PluginsInternal
+* @version 3-SVN$Rev: 3286 $
+*/
+
+class Smarty_Internal_Cache {
+
+ protected $smarty;
+
+ function __construct($smarty) {
+ $this->smarty = $smarty;
+ }
+
+ /**
+ * Loads cache resource.
+ *
+ * @return object of cache resource
+ */
+ public function loadResource($type = null) {
+ if (!isset($type)) {
+ $type = $this->smarty->caching_type;
+ }
+ // already loaded?
+ if (isset($this->smarty->cache_resource_objects[$type])) {
+ return $this->smarty->cache_resource_objects[$type];
+ }
+ if (in_array($type, $this->smarty->cache_resource_types)) {
+ $cache_resource_class = 'Smarty_Internal_CacheResource_' . ucfirst($type);
+ return $this->smarty->cache_resource_objects[$type] = new $cache_resource_class($this->smarty);
+ }
+ else {
+ // try plugins dir
+ $cache_resource_class = 'Smarty_CacheResource_' . ucfirst($type);
+ if ($this->smarty->loadPlugin($cache_resource_class)) {
+ return $this->smarty->cache_resource_objects[$type] = new $cache_resource_class($this->smarty);
+ }
+ else {
+ throw new Exception("Unable to load cache resource '{$type}'");
+ }
+ }
+ }
+
+ /**
+ * Empty cache folder
+ *
+ * @param integer $exp_time expiration time
+ * @param string $type resource type
+ * @return integer number of cache files deleted
+ */
+ function clearAll($exp_time = null, $type = null)
+ {
+ return $this->loadResource($type)->clearAll($exp_time);
+ }
+
+ /**
+ * Empty cache for a specific template
+ *
+ * @param string $template_name template name
+ * @param string $cache_id cache id
+ * @param string $compile_id compile id
+ * @param integer $exp_time expiration time
+ * @param string $type resource type
+ * @return integer number of cache files deleted
+ */
+ function clear($template_name, $cache_id = null, $compile_id = null, $exp_time = null, $type = null)
+ {
+ // load cache resource
+ $cacheResource = $this->loadResource($type);
+
+ return $cacheResource->clear($template_name, $cache_id, $compile_id, $exp_time);
+ }
+
+}
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_cacheresource_file.php b/gosa-core/include/smarty/sysplugins/smarty_internal_cacheresource_file.php
index c2614c3cf6215b33d12fa8afe82b09dc83a33ed6..57dcc00f6d792eec46132b8e40c3282b3dd80ca3 100644 (file)
{
$_source_file_path = str_replace(':', '.', $_template->getTemplateFilepath());
$_cache_id = isset($_template->cache_id) ? preg_replace('![^\w\|]+!', '_', $_template->cache_id) : null;
- $_compile_id = isset($_template->compile_id) ? preg_replace('![^\w\|]+!', '_', $_template->compile_id) : null;
+ $_compile_id = isset($_template->compile_id) ? preg_replace('![^\w\|]+!', '_', $_template->compile_id) : null;
$_filepath = $_template->templateUid;
// if use_sub_dirs, break file into directories
if ($this->smarty->use_sub_dirs) {
$_cache_id_parts = explode('|', $_cache_id);
$_cache_id_parts_count = count($_cache_id_parts);
}
+ if (isset($resource_name)) {
+ $tpl = $this->smarty->createTemplate($resource_name);
+ if ($tpl->isExisting()) {
+ $_resourcename_parts = basename(str_replace('^','/',$tpl->getCachedFilepath()));
+ } else {
+ return 0;
+ }
+ }
$_count = 0;
$_cacheDirs = new RecursiveDirectoryIterator($_dir);
$_cache = new RecursiveIteratorIterator($_cacheDirs, RecursiveIteratorIterator::CHILD_FIRST);
$_parts_count = count($_parts);
// check name
if (isset($resource_name)) {
- $_filename_parts = explode('.', $_parts[$_parts_count-1]);
- $_resourcename_parts = explode('.', $resource_name . '.php');
- if (count($_filename_parts)-1 != count($_resourcename_parts)) {
+ if ($_parts[$_parts_count-1] != $_resourcename_parts) {
continue;
}
- for ($i = 0; $i < count($_resourcename_parts); $i++) {
- if ($_filename_parts[$i + 1] != $_resourcename_parts[$i]) continue 2;
- }
- }
+ }
// check compile id
- if (isset($_compile_id) && $_parts[$_parts_count-2 - $_compile_id_offset] != $_compile_id) {
+ if (isset($_compile_id) && (!isset($_parts[$_parts_count-2 - $_compile_id_offset]) || $_parts[$_parts_count-2 - $_compile_id_offset] != $_compile_id)) {
continue;
}
// check cache id
// expired ?
if (isset($exp_time) && time() - @filemtime($_file) < $exp_time) {
continue;
- }
+ }
$_count += @unlink((string) $_file) ? 1 : 0;
}
}
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_block.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_block.php
index 45bca20449513609740a4b46a2522342323d7085..0ccce92e21a4d7a4fae3b540e0e9b6935d50d5e3 100644 (file)
<?php
/**
-* Smarty Internal Plugin Compile Block
-*
-* Compiles the {block}{/block} tags
-*
-* @package Smarty
-* @subpackage Compiler
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Compile Block
+ *
+ * Compiles the {block}{/block} tags
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
/**
-* Smarty Internal Plugin Compile Block Class
-*/
+ * Smarty Internal Plugin Compile Block Class
+ */
class Smarty_Internal_Compile_Block extends Smarty_Internal_CompileBase {
/**
- * Compiles code for the {block} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @return boolean true
- */
+ * Compiles code for the {block} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @return boolean true
+ */
public function compile($args, $compiler)
{
$this->compiler = $compiler;
$this->required_attributes = array('name');
- $this->optional_attributes = array('assign','nocache');
+ $this->optional_attributes = array('assign', 'nocache');
// check and get attributes
$_attr = $this->_get_attributes($args);
$save = array($_attr, $compiler->template->extracted_compiled_code, $compiler->template->extract_code, $this->compiler->nocache);
}
/**
-* Smarty Internal Plugin Compile BlockClose Class
-*/
+ * Smarty Internal Plugin Compile BlockClose Class
+ */
class Smarty_Internal_Compile_Blockclose extends Smarty_Internal_CompileBase {
/**
- * Compiles code for the {/block} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @return string compiled code
- */
+ * Compiles code for the {/block} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @return string compiled code
+ */
public function compile($args, $compiler)
{
$this->compiler = $compiler;
}
$compiler->template->properties['file_dependency'] = array_merge($compiler->template->properties['file_dependency'], $_tpl->properties['file_dependency']);
$compiler->template->properties['function'] = array_merge($compiler->template->properties['function'], $_tpl->properties['function']);
- $compiler->template->required_plugins['compiled'] = array_merge($compiler->template->required_plugins['compiled'], $_tpl->required_plugins['compiled']);
- $compiler->template->required_plugins['cache'] = array_merge($compiler->template->required_plugins['cache'], $_tpl->required_plugins['cache']);
+ if ($_tpl->has_nocache_code) {
+ $compiler->template->has_nocache_code = true;
+ }
+ foreach($_tpl->required_plugins as $code => $tmp1) {
+ foreach($tmp1 as $name => $tmp) {
+ foreach($tmp as $type => $data) {
+ $compiler->template->required_plugins[$code][$name][$type] = $data;
+ }
+ }
+ }
unset($_tpl);
} else {
$_output = $compiler->template->extracted_compiled_code;
}
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_extends.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_extends.php
index cf4a18704231a361f8b7414e6efdb9291ad85057..ed6ab4f1fca2b9d43e1ddfaedcb42ceba821ac1d 100644 (file)
<?php
/**
-* Smarty Internal Plugin Compile extend
-*
-* Compiles the {extends} tag
-*
-* @package Smarty
-* @subpackage Compiler
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Compile extend
+ *
+ * Compiles the {extends} tag
+ *
+ * @package Smarty
+ * @subpackage Compiler
+ * @author Uwe Tews
+ */
/**
-* Smarty Internal Plugin Compile extend Class
-*/
+ * Smarty Internal Plugin Compile extend Class
+ */
class Smarty_Internal_Compile_Extends extends Smarty_Internal_CompileBase {
/**
- * Compiles code for the {extends} tag
- *
- * @param array $args array with attributes from parser
- * @param object $compiler compiler object
- * @return string compiled code
- */
+ * Compiles code for the {extends} tag
+ *
+ * @param array $args array with attributes from parser
+ * @param object $compiler compiler object
+ * @return string compiled code
+ */
public function compile($args, $compiler)
{
$this->compiler = $compiler;
$_template = new $compiler->smarty->template_class($include_file, $this->smarty, $compiler->template);
// save file dependency
$compiler->template->properties['file_dependency'][sha1($_template->getTemplateFilepath())] = array($_template->getTemplateFilepath(), $_template->getTemplateTimestamp());
- $_old_source = $compiler->template->template_source;
- if (preg_match_all("!({$this->_ldl}block(.+?){$this->_rdl})!", $_old_source, $s, PREG_OFFSET_CAPTURE) !=
- preg_match_all("!({$this->_ldl}/block(.*?){$this->_rdl})!", $_old_source, $c, PREG_OFFSET_CAPTURE)) {
+ $_content = $compiler->template->template_source;
+ if (preg_match_all("!({$this->_ldl}block(.+?){$this->_rdl})!", $_content, $s) !=
+ preg_match_all("!({$this->_ldl}/block(.*?){$this->_rdl})!", $_content, $c)) {
$this->compiler->trigger_template_error('unmatched {block} {/block} pairs');
}
- $block_count = count($s[0]);
- for ($i = 0; $i < $block_count; $i++) {
- $block_content = str_replace($this->smarty->left_delimiter . '$smarty.parent' . $this->smarty->right_delimiter, '%%%%SMARTY_PARENT%%%%',
- substr($_old_source, $s[0][$i][1] + strlen($s[0][$i][0]), $c[0][$i][1] - $s[0][$i][1] - strlen($s[0][$i][0])));
- $this->saveBlockData($block_content, $s[0][$i][0], $compiler->template);
+ preg_match_all("!{$this->_ldl}block(.+?){$this->_rdl}|{$this->_ldl}/block.*{$this->_rdl}!", $_content, $_result, PREG_OFFSET_CAPTURE);
+ $_result_count = count($_result[0]);
+ $_start = 0;
+ while ($_start < $_result_count) {
+ $_end = 0;
+ $_level = 1;
+ while ($_level != 0) {
+ $_end++;
+ if (!strpos($_result[0][$_start + $_end][0], '/')) {
+ $_level++;
+ } else {
+ $_level--;
+ }
+ }
+ $_block_content = str_replace($this->smarty->left_delimiter . '$smarty.block.parent' . $this->smarty->right_delimiter, '%%%%SMARTY_PARENT%%%%',
+ substr($_content, $_result[0][$_start][1] + strlen($_result[0][$_start][0]), $_result[0][$_start + $_end][1] - $_result[0][$_start][1] - + strlen($_result[0][$_start][0])));
+ $this->saveBlockData($_block_content, $_result[0][$_start][0], $compiler->template);
+ $_start = $_start + $_end + 1;
}
$compiler->template->template_source = $_template->getTemplateSource();
$compiler->template->template_filepath = $_template->getTemplateFilepath();
$this->compiler->trigger_template_error("\"" . $block_tag . "\" missing name attribute");
} else {
$_name = trim($_match[3], '\'"');
+ // replace {$smarty.block.child}
+ if (strpos($block_content, $this->smarty->left_delimiter . '$smarty.block.child' . $this->smarty->right_delimiter) !== false) {
+ if (isset($this->smarty->block_data[$_name])) {
+ $block_content = str_replace($this->smarty->left_delimiter . '$smarty.block.child' . $this->smarty->right_delimiter,
+ $this->smarty->block_data[$_name]['source'], $block_content);
+ unset($this->smarty->block_data[$_name]);
+ } else {
+ $block_content = str_replace($this->smarty->left_delimiter . '$smarty.block.child' . $this->smarty->right_delimiter,
+ '', $block_content);
+ }
+ }
if (isset($this->smarty->block_data[$_name])) {
if (strpos($this->smarty->block_data[$_name]['source'], '%%%%SMARTY_PARENT%%%%') !== false) {
$this->smarty->block_data[$_name]['source'] =
}
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_function.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_function.php
index 23fc27d68d73ccd58fc63f1792e1fb8393065c7e..56c586480ae02d4ff1ec25217a7e9577b7bb4444 100644 (file)
$plugins_string = '';
if (!empty($compiler->template->required_plugins['compiled'])) {
$plugins_string = '<?php ';
- foreach($compiler->template->required_plugins['compiled'] as $plugin_name => $data) {
- $plugin = 'smarty_' . $data['type'] . '_' . $plugin_name;
- $plugins_string .= "if (!is_callable('{$plugin}')) include '{$data['file']}';\n";
+ foreach($compiler->template->required_plugins['compiled'] as $tmp) {
+ foreach($tmp as $data) {
+ $plugins_string .= "if (!is_callable('{$data['function']}')) include '{$data['file']}';\n";
+ }
}
$plugins_string .= '?>';
}
if (!empty($compiler->template->required_plugins['cache'])) {
$plugins_string .= "<?php echo '/*%%SmartyNocache:{$compiler->template->properties['nocache_hash']}%%*/<?php ";
- foreach($compiler->template->required_plugins['cache'] as $plugin_name => $data) {
- $plugin = 'smarty_' . $data['type'] . '_' . $plugin_name;
- $plugins_string .= "if (!is_callable(\'{$plugin}\')) include \'{$data['file']}\';\n";
+ foreach($compiler->template->required_plugins['nocache'] as $tmp) {
+ foreach($tmp as $data) {
+ $plugins_string .= "if (!is_callable('{$data['function']}')) include '{$data['file']}';\n";
+ }
}
$plugins_string .= "?>/*/%%SmartyNocache:{$compiler->template->properties['nocache_hash']}%%*/';?>\n";
}
$compiler->template->properties['function'][$_name]['compiled'] = $plugins_string . $compiler->template->extracted_compiled_code;
$compiler->template->properties['function'][$_name]['nocache_hash'] = $compiler->template->properties['nocache_hash'];
- $compiler->template->properties['function'][$_name]['has_nocache_code'] = $compiler->template->has_nocache_code;
-// $compiler->template->properties['function'][$_name]['plugins'] = $compiler->template->required_plugins;
- $this->compiler->smarty->template_functions[$_name] = $compiler->template->properties['function'][$_name];
+ $compiler->template->properties['function'][$_name]['has_nocache_code'] = $compiler->template->has_nocache_code;
+ $this->compiler->smarty->template_functions[$_name] = $compiler->template->properties['function'][$_name];
// restore old compiler status
$compiler->template->extracted_compiled_code = $saved_data[1];
$compiler->template->extract_code = $saved_data[2];
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_block_plugin.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_block_plugin.php
index 030f3a2f02d2a74c86138b3c6852b61358f28dd5..0656b77b66534b8d84782bbf1992be0ee4fc4186 100644 (file)
$this->compiler->nocache = $this->compiler->nocache | $this->compiler->tag_nocache;
// compile code
if (is_array($function)) {
- $output = '<?php $_block_repeat=true; call_user_func_array(array(\'' . $function[0] . '\',\'' . $function[1] . '\'),(array(' . $_params . ', null, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl));while ($_block_repeat) { ob_start();?>';
+ $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; call_user_func(array('{$function[0]}','{$function[1]}'),{$_params}, null, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl);while (\$_block_repeat) { ob_start();?>";
} else {
- $output = '<?php $_block_repeat=true; ' . $function . '(' . $_params . ', null, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl);while ($_block_repeat) { ob_start();?>';
+ $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; {$function}({$_params}, null, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl);while (\$_block_repeat) { ob_start();?>";
}
} else {
// must endblock be nocache?
@@ -60,14 +60,13 @@ class Smarty_Internal_Compile_Private_Block_Plugin extends Smarty_Internal_Compi
$this->compiler->has_output = true;
// compile code
if (is_array($function)) {
- var_dump('error');
- $output = '<?php $_block_content = ob_get_clean(); $_block_repeat=false; echo call_user_func_array(array(\'' . $function[0] . '\',\'' . $function[1] . '\'),(array(' . $_params . ', $_block_content, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl)); }?>';
+ $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false; echo call_user_func(array('{$function[0]}','{$function[1]}'),({$_params}, \$_block_content, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
} else {
- $output = '<?php $_block_content = ob_get_clean(); $_block_repeat=false; echo ' . $function . '(' . $_params . ', $_block_content, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl); }?>';
+ $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false; echo {$function}({$_params}, \$_block_content, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
}
}
- return $output;
+ return $output."\n";
}
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_function_plugin.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_function_plugin.php
index 129b5d75228225ff4184e8a92bc7b45bfa3e37d3..80cb1bfa1f1a9aae53d2be225348df07a4526739 100644 (file)
@@ -42,12 +42,12 @@ class Smarty_Internal_Compile_Private_Function_Plugin extends Smarty_Internal_Co
$_params = 'array(' . implode(",", $_paramsArray) . ')';
// compile code
if (is_array($function)) {
- $output = '<?php echo call_user_func_array(array(\'' . $function[0] . '\',\'' . $function[1] . '\'),(array(' . $_params . ',$_smarty_tpl->smarty,$_smarty_tpl));?>';
+ $output = "<?php echo call_user_func(array('{$function[0]}','{$function[1]}'),{$_params},\$_smarty_tpl->smarty,\$_smarty_tpl);?>\n";
} else {
- $output = '<?php echo ' . $function . '(' . $_params . ',$_smarty_tpl->smarty,$_smarty_tpl);?>';
+ $output = "<?php echo {$function}({$_params},\$_smarty_tpl->smarty,\$_smarty_tpl);?>\n";
}
return $output;
}
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_object_block_function.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_object_block_function.php
index 03c2d34015cf09f75dfae6327d317b3ddf090d14..69d105011f54e0816a12e8ba7bc774c2ab0b3c11 100644 (file)
@@ -43,16 +43,17 @@ class Smarty_Internal_Compile_Private_Object_Block_Function extends Smarty_Inter
$this->_open_tag($tag . '->' . $methode, $_params);
// compile code
- $output = '<?php $_block_repeat=true; $_smarty_tpl->smarty->registered_objects[\'' . $tag . '\'][0]->' . $methode . '(' . $_params . ', null, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl);while ($_block_repeat) { ob_start();?>';
+ $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}->{$methode}', {$_params}); \$_block_repeat=true; \$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$methode}({$_params}, null, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl);while (\$_block_repeat) { ob_start();?>";
} else {
+ $base_tag = substr($tag, 0, -5);
// closing tag of block plugin
- $_params = $this->_close_tag(substr($tag, 0, -5) . '->' . $methode);
+ $_params = $this->_close_tag($base_tag . '->' . $methode);
// This tag does create output
$this->compiler->has_output = true;
// compile code
- $output = '<?php $_block_content = ob_get_contents(); ob_end_clean(); $_block_repeat=false; echo $_smarty_tpl->smarty->registered_objects[\'' . substr($tag, 0, -5) . '\'][0]->' . $methode . '(' . $_params . ', $_block_content, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl); }?>';
+ $output = "<?php \$_block_content = ob_get_contents(); ob_end_clean(); \$_block_repeat=false; echo \$_smarty_tpl->smarty->registered_objects['{$base_tag}'][0]->{$methode}({$_params}, \$_block_content, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";
}
- return $output;
+ return $output."\n";
}
}
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_object_function.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_object_function.php
index 573f6040e4e46e4369ee6cf6b042d9bc63cd470b..8e8ff9448a44d0fb76d015c60f7038530a3eba99 100644 (file)
@@ -42,10 +42,10 @@ class Smarty_Internal_Compile_Private_Object_Function extends Smarty_Internal_Co
}
}
$_params = 'array(' . implode(",", $_paramsArray) . ')';
- $output = "<?php echo \$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$methode}({$_params},\$_smarty_tpl->smarty,\$_smarty_tpl);?>";
+ $output = "<?php echo \$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$methode}({$_params},\$_smarty_tpl->smarty,\$_smarty_tpl);?>\n";
} else {
$_params = implode(",", $_attr);
- $output = "<?php echo \$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$methode}({$_params});?>";
+ $output = "<?php echo \$_smarty_tpl->smarty->registered_objects['{$tag}'][0]->{$methode}({$_params});?>\n";
}
return $output;
}
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_block.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_block.php
index 218ec0e6beb10a978e1a4c080647b824734d8c37..300764d9cdb5f5e488cfe95df223b36f52fe8e22 100644 (file)
@@ -46,11 +46,11 @@ class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_Internal_C
$function = $compiler->smarty->registered_plugins['block'][$tag][0]; \r
// compile code\r
if (!is_array($function)) {\r
- $output = '<?php $_block_repeat=true; ' . $function . '(' . $_params . ', null, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl);while ($_block_repeat) { ob_start();?>';\r
+ $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; {$function}({$_params}, null, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl);while (\$_block_repeat) { ob_start();?>";\r
} else if (is_object($function[0])) {\r
- $output = '<?php $_block_repeat=true; call_user_func_array($_smarty_tpl->smarty->registered_plugins[\'block\'][\'' . $tag . '\'][0],array(' . $_params . ', null, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl));while ($_block_repeat) { ob_start();?>';\r
+ $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; call_user_func(\$_smarty_tpl->smarty->registered_plugins['block']['{$tag}'][0],{$_params}, null, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl);while (\$_block_repeat) { ob_start();?>";\r
} else {\r
- $output = '<?php $_block_repeat=true; call_user_func_array(array(\'' . $function[0] . '\',\'' . $function[1] . '\'),array(' . $_params . ', null, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl));while ($_block_repeat) { ob_start();?>';\r
+ $output = "<?php \$_smarty_tpl->smarty->_tag_stack[] = array('{$tag}', {$_params}); \$_block_repeat=true; call_user_func(array('{$function[0]}','{$function[1]}'),{$_params}, null, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl);while (\$_block_repeat) { ob_start();?>";\r
} \r
} else {\r
// must endblock be nocache?\r
@@ -65,15 +65,15 @@ class Smarty_Internal_Compile_Private_Registered_Block extends Smarty_Internal_C
$function = $compiler->smarty->registered_plugins['block'][$base_tag][0]; \r
// compile code\r
if (!is_array($function)) {\r
- $output = '<?php $_block_content = ob_get_clean(); $_block_repeat=false; echo ' . $function . '(' . $_params . ', $_block_content, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl); }?>';\r
+ $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false; echo {$function}({$_params}, \$_block_content, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";\r
} else if (is_object($function[0])) {\r
- $output = '<?php $_block_content = ob_get_clean(); $_block_repeat=false; echo call_user_func_array($_smarty_tpl->smarty->registered_plugins[\'block\'][\'' . $base_tag . '\'][0],array(' . $_params . ', $_block_content, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl)); }?>';\r
+ $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false; echo call_user_func(\$_smarty_tpl->smarty->registered_plugins['block']['{$base_tag}'][0],{$_params}, \$_block_content, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";\r
} else {\r
- $output = '<?php $_block_content = ob_get_clean(); $_block_repeat=false; echo call_user_func_array(array(\'' . $function[0] . '\',\'' . $function[1] . '\'),array(' . $_params . ', $_block_content, $_smarty_tpl->smarty, $_block_repeat, $_smarty_tpl)); }?>';\r
+ $output = "<?php \$_block_content = ob_get_clean(); \$_block_repeat=false; echo call_user_func(array('{$function[0]}','{$function[1]}'),{$_params}, \$_block_content, \$_smarty_tpl->smarty, \$_block_repeat, \$_smarty_tpl); } array_pop(\$_smarty_tpl->smarty->_tag_stack);?>";\r
} \r
} \r
- return $output;\r
+ return $output."\n";\r
} \r
} \r
\r
-?>\r
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_function.php b/gosa-core/include/smarty/sysplugins/smarty_internal_compile_private_registered_function.php
index e38ee4b8b32bef2a1f78edcbd3df16b949b03e99..e7d2cd6b6cea54096216cdabb21ebd356fe7c210 100644 (file)
<?php\r
/**\r
-* Smarty Internal Plugin Compile Registered Function\r
-* \r
-* Compiles code for the execution of a registered function\r
-* \r
-* @package Smarty\r
-* @subpackage Compiler\r
-* @author Uwe Tews \r
-*/\r
+ * Smarty Internal Plugin Compile Registered Function\r
+ * \r
+ * Compiles code for the execution of a registered function\r
+ * \r
+ * @package Smarty\r
+ * @subpackage Compiler\r
+ * @author Uwe Tews \r
+ */\r
/**\r
-* Smarty Internal Plugin Compile Registered Function Class\r
-*/\r
+ * Smarty Internal Plugin Compile Registered Function Class\r
+ */\r
class Smarty_Internal_Compile_Private_Registered_Function extends Smarty_Internal_CompileBase {\r
/**\r
- * Compiles code for the execution of a registered function\r
- * \r
- * @param array $args array with attributes from parser\r
- * @param string $tag name of function\r
- * @param object $compiler compiler object\r
- * @return string compiled code\r
- */\r
+ * Compiles code for the execution of a registered function\r
+ * \r
+ * @param array $args array with attributes from parser\r
+ * @param string $tag name of function\r
+ * @param object $compiler compiler object\r
+ * @return string compiled code\r
+ */\r
public function compile($args, $compiler, $tag)\r
{\r
$this->compiler = $compiler; \r
} \r
$_params = 'array(' . implode(",", $_paramsArray) . ')'; \r
// compile code\r
- $output = '<?php echo call_user_func_array($_smarty_tpl->smarty->registered_plugins[\'function\'][\'' . $tag . '\'][0],array(' . $_params . ',$_smarty_tpl->smarty,$_smarty_tpl));?>';\r
+ $function = $compiler->smarty->registered_plugins['function'][$tag][0]; \r
+ // compile code\r
+ if (!is_array($function)) {\r
+ $output = "<?php echo {$function}({$_params},\$_smarty_tpl->smarty,\$_smarty_tpl);?>\n";\r
+ } else if (is_object($function[0])) {\r
+ $output = "<?php echo call_user_func(\$_smarty_tpl->smarty->registered_plugins['function']['{$tag}'][0],{$_params},\$_smarty_tpl->smarty,\$_smarty_tpl);?>\n";\r
+ } else {\r
+ $output = "<?php echo call_user_func(array('{$function[0]}','{$function[1]}'),{$_params},\$_smarty_tpl->smarty,\$_smarty_tpl);?>\n";\r
+ } \r
return $output;\r
} \r
} \r
\r
-?>\r
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_data.php b/gosa-core/include/smarty/sysplugins/smarty_internal_data.php
index 61b9b52bd3363765e16aeb3952413365f869b9a1..63f98a1d36aeb37d86a69e63c30bf610ec3ea16b 100644 (file)
* @param mixed $value the value to assign
* @param boolean $nocache if true any output of this variable will be not cached
*/
- public function assign_global($varname, $value = null, $nocache = false)
+ public function assignGlobal($varname, $value = null, $nocache = false)
{
if ($varname != '') {
$this->smarty->global_tpl_vars[$varname] = new Smarty_variable($value, $nocache);
* @param boolean $nocache if true any output of this variable will be not cached
* @param boolean $scope the scope the variable will have (local,parent or root)
*/
- public function assign_by_ref($tpl_var, &$value, $nocache = false, $scope = SMARTY_LOCAL_SCOPE)
+ public function assignByRef($tpl_var, &$value, $nocache = false, $scope = SMARTY_LOCAL_SCOPE)
{
if ($tpl_var != '') {
$this->tpl_vars[$tpl_var] = new Smarty_variable(null, $nocache, $scope);
* @param mixed $ &$value the referenced value to append
* @param boolean $merge flag if array elements shall be merged
*/
- public function append_by_ref($tpl_var, &$value, $merge = false)
+ public function appendByRef($tpl_var, &$value, $merge = false)
{
if ($tpl_var != '' && isset($value)) {
if (!isset($this->tpl_vars[$tpl_var])) {
}
}
-
+ /**
+ * Returns a single or all template variables
+ *
+ * @param string $varname variable name or null
+ * @return string variable value or or array of variables
+ */
+ function getTemplateVars($varname = null, $_ptr = null, $search_parents = true)
+ {
+ if (isset($varname)) {
+ $_var = $this->getVariable($varname, $_ptr, $search_parents);
+ if (is_object($_var)) {
+ return $_var->value;
+ } else {
+ return null;
+ }
+ } else {
+ $_result = array();
+ if ($_ptr === null) {
+ $_ptr = $this;
+ } while ($_ptr !== null) {
+ foreach ($_ptr->tpl_vars AS $key => $var) {
+ $_result[$key] = $var->value;
+ }
+ // not found, try at parent
+ if ($search_parents) {
+ $_ptr = $_ptr->parent;
+ } else {
+ $_ptr = null;
+ }
+ }
+ if ($search_parents) {
+ foreach ($this->global_tpl_vars AS $key => $var) {
+ $_result[$key] = $var->value;
+ }
+ }
+ return $_result;
+ }
+ }
+
/**
* clear the given assigned template variable.
*
* @param string $ |array $tpl_var the template variable(s) to clear
*/
- public function clear_assign($tpl_var)
+ public function clearAssign($tpl_var)
{
if (is_array($tpl_var)) {
foreach ($tpl_var as $curr_var) {
/**
* clear all the assigned template variables.
*/
- public function clear_all_assign()
+ public function clearAllAssign()
{
$this->tpl_vars = array();
}
* @param string $config_file filename
* @param mixed $sections array of section names, single section or null
*/
- public function config_load($config_file, $sections = null)
+ public function configLoad($config_file, $sections = null)
{
// load Config class
$config = new Smarty_Internal_Config($config_file, $this->smarty);
}
/**
- * creates a template object
+ * Returns a single or all config variables
*
- * @param string $template the resource handle of the template file
- * @param object $parent next higher level of Smarty variables
- * @param mixed $cache_id cache id to be used with this template
- * @param mixed $compile_id compile id to be used with this template
- * @returns object template object
+ * @param string $varname variable name or null
+ * @return string variable value or or array of variables
*/
- public function createTemplate($template, $cache_id = null, $compile_id = null, $parent = null)
+ function getConfigVars($varname = null)
{
- if (is_object($cache_id) || is_array($cache_id)) {
- $parent = $cache_id;
- $cache_id = null;
- }
- if (is_array($parent)) {
- $data = $parent;
- $parent = null;
- } else {
- $data = null;
- }
- if (!is_object($template)) {
- // we got a template resource
- // already in template cache?
- $_templateId = crc32($template . $cache_id . $compile_id);
- if (isset($this->smarty->template_objects[$_templateId]) && $this->smarty->caching) {
- // return cached template object
- $tpl = $this->smarty->template_objects[$_templateId];
+ if (isset($varname)) {
+ if (isset($this->config_vars[$varname])) {
+ return $this->config_vars[$varname];
} else {
- // create new template object
- $tpl = new $this->template_class($template, $this->smarty, $parent, $cache_id, $compile_id);
+ return '';
}
} else {
- // just return a copy of template class
- $tpl = $template;
+ return $this->config_vars;
}
- // fill data if present
- if (is_array($data)) {
- // set up variable values
- foreach ($data as $_key => $_val) {
- $tpl->tpl_vars[$_key] = new Smarty_variable($_val);
- }
+ }
+
+ /**
+ * Deassigns a single or all config variables
+ *
+ * @param string $varname variable name or null
+ */
+ function clearConfig($varname = null)
+ {
+ if (isset($varname)) {
+ unset($this->config_vars[$varname]);
+ return;
+ } else {
+ $this->config_vars = array();
+ return;
}
- return $tpl;
}
/**
// back pointer to parent object
public $parent = null;
// config vars
- public $config_vars = array();
+ public $config_vars = array();
+ // Smarty object
+ public $smarty = null;
/**
* create Smarty data object
*/
- public function __construct ($_parent = null)
+ public function __construct ($_parent = null, $smarty = null)
{
+ $this->smarty = $smarty;
if (is_object($_parent)) {
// when object set up back pointer
$this->parent = $_parent;
foreach ($_parent as $_key => $_val) {
$this->tpl_vars[$_key] = new Smarty_variable($_val);
}
- } else {
+ } elseif ($_parent != null) {
throw new Exception("Wrong type for template variables");
}
}
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_filter_handler.php b/gosa-core/include/smarty/sysplugins/smarty_internal_filter_handler.php
index 1d81636e6067b4250648e61b334c167e7711d649..a8a43d48d32339a959ceeceb14bd0dbb7e3a9a42 100644 (file)
<?php
/**
-* Smarty Internal Plugin Filter Handler
-*
-* Smarty filter handler class
-*
-* @package Smarty
-* @subpackage PluginsInternal
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Filter Handler
+ *
+ * Smarty filter handler class
+ *
+ * @package Smarty
+ * @subpackage PluginsInternal
+ * @author Uwe Tews
+ */
/**
-* Class for filter processing
-*/
+ * Class for filter processing
+ */
class Smarty_Internal_Filter_Handler {
/**
- * Run filters over content
- *
- * The filters will be lazy loaded if required
- * class name format: Smarty_FilterType_FilterName
- * plugin filename format: filtertype.filtername.php
- * Smarty2 filter plugins could be used
- *
- * @param string $type the type of filter ('pre','post','output' or 'variable') which shall run
- * @param string $content the content which shall be processed by the filters
- * @return string the filtered content
- */
+ * Run filters over content
+ *
+ * The filters will be lazy loaded if required
+ * class name format: Smarty_FilterType_FilterName
+ * plugin filename format: filtertype.filtername.php
+ * Smarty2 filter plugins could be used
+ *
+ * @param string $type the type of filter ('pre','post','output' or 'variable') which shall run
+ * @param string $content the content which shall be processed by the filters
+ * @return string the filtered content
+ */
static function runFilter($type, $content, $smarty, $flag = null)
{
$output = $content;
foreach ((array)$smarty->autoload_filters[$type] as $name) {
$plugin_name = "Smarty_{$type}filter_{$name}";
if ($smarty->loadPlugin($plugin_name)) {
- // use class plugin if found
- if (class_exists($plugin_name, false)) {
- // loaded class of filter plugin
- $output = call_user_func_array(array($plugin_name, 'execute'), array($output, $smarty));
- } elseif (function_exists($plugin_name)) {
+ if (function_exists($plugin_name)) {
// use loaded Smarty2 style plugin
- $output = call_user_func_array($plugin_name, array($output, $smarty));
+ $output = $plugin_name($output, $smarty);
+ } elseif (class_exists($plugin_name, false)) {
+ // loaded class of filter plugin
+ $output = call_user_func(array($plugin_name, 'execute'), $output, $smarty);
}
} else {
// nothing found, throw exception
// loop over registerd filters of specified type
if (!empty($smarty->registered_filters[$type])) {
foreach ($smarty->registered_filters[$type] as $key => $name) {
- $output = call_user_func_array($smarty->registered_filters[$type][$key], array($output, $smarty));
+ if (is_array($smarty->registered_filters[$type][$key])) {
+ $output = call_user_func($smarty->registered_filters[$type][$key], $output, $smarty);
+ } else {
+ $output = $smarty->registered_filters[$type][$key]($output, $smarty);
+ }
}
}
}
}
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_function_call_handler.php b/gosa-core/include/smarty/sysplugins/smarty_internal_function_call_handler.php
index cdbd3fae9e963d771dfb79fe71b66c60eb883de8..c9b2948dca205bf24cedd36ba3c7bf2e1c81798c 100644 (file)
* Smarty Internal Plugin Function Call Handler\r
* \r
* @package Smarty\r
-* @subpackage Security\r
+* @subpackage PluginsInternal\r
* @author Uwe Tews \r
*/\r
/**\r
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_parsetree.php b/gosa-core/include/smarty/sysplugins/smarty_internal_parsetree.php
--- /dev/null
@@ -0,0 +1,121 @@
+<?php\r
+\r
+abstract class _smarty_parsetree {\r
+ abstract public function to_smarty_php();\r
+}\r
+\r
+/* A complete smarty tag. */\r
+\r
+class _smarty_tag extends _smarty_parsetree {\r
+ public $parser;\r
+ public $data;\r
+ public $saved_block_nesting;\r
+ function __construct($parser, $data)\r
+ {\r
+ $this->parser = $parser;\r
+ $this->data = $data;\r
+ $this->saved_block_nesting = $parser->block_nesting_level;\r
+ } \r
+\r
+ public function to_smarty_php()\r
+ {\r
+ return $this->data;\r
+ } \r
+\r
+ public function assign_to_var()\r
+ {\r
+ $var = sprintf('$_tmp%d', ++$this->parser->prefix_number);\r
+ $this->parser->compiler->prefix_code[] = sprintf('<?php ob_start();?>%s<?php %s=ob_get_clean();?>',\r
+ $this->data, $var);\r
+ return $var;\r
+ } \r
+} \r
+\r
+/* Code fragment inside a tag. */\r
+class _smarty_code extends _smarty_parsetree {\r
+ public $parser;\r
+ public $data;\r
+ function __construct($parser, $data)\r
+ {\r
+ $this->parser = $parser;\r
+ $this->data = $data;\r
+ } \r
+\r
+ public function to_smarty_php()\r
+ {\r
+ return sprintf("(%s)", $this->data);\r
+ } \r
+} \r
+\r
+/* Double quoted string inside a tag. */\r
+class _smarty_doublequoted extends _smarty_parsetree {\r
+ public $parser;\r
+ public $subtrees = Array();\r
+ function __construct($parser, _smarty_parsetree $subtree)\r
+ {\r
+ $this->parser = $parser;\r
+ $this->subtrees[] = $subtree;\r
+ if ($subtree instanceof _smarty_tag) {\r
+ $this->parser->block_nesting_level = count($this->parser->compiler->_tag_stack);\r
+ } \r
+ } \r
+\r
+ function append_subtree(_smarty_parsetree $subtree)\r
+ {\r
+ $last_subtree = count($this->subtrees)-1;\r
+ if ($last_subtree >= 0 && $this->subtrees[$last_subtree] instanceof _smarty_tag && $this->subtrees[$last_subtree]->saved_block_nesting < $this->parser->block_nesting_level) {\r
+ if ($subtree instanceof _smarty_code) {\r
+ $this->subtrees[$last_subtree]->data .= '<?php echo ' . $subtree->data . ';?>';\r
+ } else {\r
+ $this->subtrees[$last_subtree]->data .= $subtree->data;\r
+ } \r
+ } else {\r
+ $this->subtrees[] = $subtree;\r
+ } \r
+ if ($subtree instanceof _smarty_tag) {\r
+ $this->parser->block_nesting_level = count($this->parser->compiler->_tag_stack);\r
+ } \r
+ } \r
+\r
+ public function to_smarty_php()\r
+ {\r
+ $code = '';\r
+ foreach ($this->subtrees as $subtree) {\r
+ if ($code !== "") {\r
+ $code .= ".";\r
+ } \r
+ if ($subtree instanceof _smarty_tag) {\r
+ $more_php = $subtree->assign_to_var();\r
+ } else {\r
+ $more_php = $subtree->to_smarty_php();\r
+ } \r
+\r
+ $code .= $more_php;\r
+\r
+ if (!$subtree instanceof _smarty_dq_content) {\r
+ $this->parser->compiler->has_variable_string = true;\r
+ } \r
+ } \r
+\r
+// $code = sprintf("(%s)", $code);\r
+ return $code;\r
+ } \r
+} \r
+\r
+/* Raw chars as part of a double quoted string. */\r
+class _smarty_dq_content extends _smarty_parsetree {\r
+ public $data;\r
+ function __construct($parser, $data)\r
+ {\r
+ $this->parser = $parser;\r
+ $this->data = $data;\r
+ } \r
+\r
+ public function to_smarty_php()\r
+ {\r
+ return '"' . $this->data . '"';\r
+ } \r
+} \r
+\r
+\r
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_register.php b/gosa-core/include/smarty/sysplugins/smarty_internal_register.php
--- /dev/null
@@ -0,0 +1,247 @@
+<?php
+
+/**
+* Project: Smarty: the PHP compiling template engine
+* File: smarty_internal_register.php
+* SVN: $Id: $
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*
+* For questions, help, comments, discussion, etc., please join the
+* Smarty mailing list. Send a blank e-mail to
+* smarty-discussion-subscribe@googlegroups.com
+*
+* @link http://www.smarty.net/
+* @copyright 2008 New Digital Group, Inc.
+* @author Monte Ohrt <monte at ohrt dot com>
+* @author Uwe Tews
+* @package Smarty
+* @subpackage PluginsInternal
+* @version 3-SVN$Rev: 3286 $
+*/
+
+class Smarty_Internal_Register {
+
+ protected $smarty;
+
+ function __construct($smarty) {
+ $this->smarty = $smarty;
+ }
+
+ /**
+ * Registers block function to be used in templates
+ *
+ * @param string $block_tag name of template block
+ * @param string $block_impl PHP function to register
+ * @param boolean $cacheable if true (default) this fuction is cachable
+ * @param array $cache_attr caching attributes if any
+ */
+ function block($block_tag, $block_impl, $cacheable = true, $cache_attr = array())
+ {
+ if (isset($this->smarty->registered_plugins['block'][$block_tag])) {
+ throw new Exception("Plugin tag \"{$block_tag}\" already registered");
+ } elseif (!is_callable($block_impl)) {
+ throw new Exception("Plugin \"{$block_tag}\" not callable");
+ } else {
+ $this->smarty->registered_plugins['block'][$block_tag] =
+ array($block_impl, $cacheable, $cache_attr);
+ }
+ }
+
+ /**
+ * Registers compiler function
+ *
+ * @param string $compiler_tag of template function
+ * @param string $compiler_impl name of PHP function to register
+ * @param boolean $cacheable if true (default) this fuction is cachable
+ */
+ function compilerFunction($compiler_tag, $compiler_impl, $cacheable = true)
+ {
+ if (isset($this->smarty->registered_plugins['compiler'][$compiler_tag])) {
+ throw new Exception("Plugin tag \"{$compiler_tag}\" already registered");
+ } elseif (!is_callable($compiler_impl)) {
+ throw new Exception("Plugin \"{$compiler_tag}\" not callable");
+ } else {
+ $this->smarty->registered_plugins['compiler'][$compiler_tag] =
+ array($compiler_impl, $cacheable);
+ }
+ }
+
+ /**
+ * Registers custom function to be used in templates
+ *
+ * @param string $function_tag the name of the template function
+ * @param string $function_impl the name of the PHP function to register
+ * @param boolean $cacheable if true (default) this fuction is cachable
+ * @param array $cache_attr caching attributes if any
+ */
+ function templateFunction($function_tag, $function_impl, $cacheable = true, $cache_attr = array())
+ {
+ if (isset($this->smarty->registered_plugins['function'][$function_tag])) {
+ throw new Exception("Plugin tag \"{$function_tag}\" already registered");
+ } elseif (!is_callable($function_impl)) {
+ throw new Exception("Plugin \"{$function_tag}\" not callable");
+ } else {
+ $this->smarty->registered_plugins['function'][$function_tag] =
+ array($function_impl, $cacheable, $cache_attr);
+ }
+ }
+
+ /**
+ * Registers modifier to be used in templates
+ *
+ * @param string $modifier_name name of template modifier
+ * @param string $modifier_impl name of PHP function to register
+ */
+ function modifier($modifier_name, $modifier_impl)
+ {
+ if (isset($this->smarty->registered_plugins['modifier'][$modifier_name])) {
+ throw new Exception("Plugin \"{$modifier}\" already registered");
+ } elseif (!is_callable($modifier_impl)) {
+ throw new Exception("Plugin \"{$modifier}\" not callable");
+ } else {
+ $this->smarty->registered_plugins['modifier'][$modifier_name] =
+ array($modifier_impl);
+ }
+ }
+
+ /**
+ * Registers object to be used in templates
+ *
+ * @param string $object name of template object
+ * @param object $ &$object_impl the referenced PHP object to register
+ * @param mixed null | array $allowed list of allowed methods (empty = all)
+ * @param boolean $smarty_args smarty argument format, else traditional
+ * @param mixed null | array $block_functs list of methods that are block format
+ */
+ function templateObject($object_name, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
+ {
+ // test if allowed methodes callable
+ if (!empty($allowed)) {
+ foreach ((array)$allowed as $method) {
+ if (!is_callable(array($object_impl, $method))) {
+ throw new Exception("Undefined method '$method' in registered object");
+ }
+ }
+ }
+ // test if block methodes callable
+ if (!empty($block_methods)) {
+ foreach ((array)$block_methods as $method) {
+ if (!is_callable(array($object_impl, $method))) {
+ throw new Exception("Undefined method '$method' in registered object");
+ }
+ }
+ }
+ // register the object
+ $this->smarty->registered_objects[$object_name] =
+ array($object_impl, (array)$allowed, (boolean)$smarty_args, (array)$block_methods);
+ }
+
+ /**
+ * Registers an output filter function to apply
+ * to a template output
+ *
+ * @param callback $function_name
+ */
+ function outputFilter($function_name)
+ {
+ $this->smarty->registered_filters['output'][$this->smarty->_get_filter_name($function_name)] = $function_name;
+ }
+
+ /**
+ * Registers a postfilter function to apply
+ * to a compiled template after compilation
+ *
+ * @param callback $function_name
+ */
+ function postFilter($function_name)
+ {
+ $this->smarty->registered_filters['post'][$this->smarty->_get_filter_name($function_name)] = $function_name;
+ }
+
+ /**
+ * Registers a prefilter function to apply
+ * to a template before compiling
+ *
+ * @param callback $function_name
+ */
+ function preFilter($function_name)
+ {
+ $this->smarty->registered_filters['pre'][$this->smarty->_get_filter_name($function_name)] = $function_name;
+ }
+
+ /**
+ * Registers a resource to fetch a template
+ *
+ * @param string $resource_type name of resource type
+ * @param array $function_names array of functions to handle resource
+ */
+ function resource($resource_type, $function_names)
+ {
+ if (count($function_names) == 4) {
+ $this->smarty->_plugins['resource'][$resource_type] =
+ array($function_names, false);
+ } elseif (count($function_names) == 5) {
+ $this->smarty->_plugins['resource'][$resource_type] =
+ array(array(array(&$function_names[0], $function_names[1]),
+ array(&$function_names[0], $function_names[2]),
+ array(&$function_names[0], $function_names[3]),
+ array(&$function_names[0], $function_names[4])),
+ false);
+ } else {
+ throw new Exception("malformed function-list for '$resource_type' in register_resource");
+ }
+ }
+
+ /**
+ * Registers an output filter function which
+ * runs over any variable output
+ *
+ * @param callback $function_name
+ */
+ function variableFilter($function_name)
+ {
+ $this->smarty->registered_filters['variable'][$this->smarty->_get_filter_name($function_name)] = $function_name;
+ }
+
+ /**
+ * Registers a default plugin handler
+ *
+ * @param $function_name mixed string | array $plugin class/methode name
+ */
+ function defaultPluginHandler($function_name)
+ {
+ if (is_callable($function_name)) {
+ $this->smarty->default_plugin_handler_func = $function_name;
+ } else {
+ throw new Exception("Default plugin handler '$function_name' not callable");
+ }
+ }
+
+ /**
+ * Registers a default template handler
+ *
+ * @param $function_name mixed string | array class/method name
+ */
+ function defaultTemplateHandler($function_name)
+ {
+ if (is_callable($function_name)) {
+ $this->smarty->default_template_handler_func = $function_name;
+ } else {
+ throw new Exception("Default template handler '$function_name' not callable");
+ }
+ }
+
+}
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_resource_extends.php b/gosa-core/include/smarty/sysplugins/smarty_internal_resource_extends.php
index b796de775cb64f2e7fb1f92aca664260bbd79139..64526346ae33f998e53f07b82c8c8ca13f94b4ac 100644 (file)
<?php
/**
-* Smarty Internal Plugin Resource Extends
-*
-* Implements the file system as resource for Smarty which does extend a chain of template files templates
-*
-* @package Smarty
-* @subpackage TemplateResources
-* @author Uwe Tews
-*/
+ * Smarty Internal Plugin Resource Extends
+ *
+ * Implements the file system as resource for Smarty which does extend a chain of template files templates
+ *
+ * @package Smarty
+ * @subpackage TemplateResources
+ * @author Uwe Tews
+ */
/**
-* Smarty Internal Plugin Resource Extends
-*/
+ * Smarty Internal Plugin Resource Extends
+ */
class Smarty_Internal_Resource_Extends {
public function __construct($smarty)
{
public $allFilepaths = array();
/**
- * Return flag if template source is existing
- *
- * @param object $_template template object
- * @return boolean result
- */
+ * Return flag if template source is existing
+ *
+ * @param object $_template template object
+ * @return boolean result
+ */
public function isExisting($_template)
{
if ($_template->getTemplateFilepath() === false) {
}
}
/**
- * Get filepath to template source
- *
- * @param object $_template template object
- * @return string filepath to template source file
- */
+ * Get filepath to template source
+ *
+ * @param object $_template template object
+ * @return string filepath to template source file
+ */
public function getTemplateFilepath($_template)
{
$sha1String = '';
}
/**
- * Get timestamp to template source
- *
- * @param object $_template template object
- * @return integer timestamp of template source file
- */
+ * Get timestamp to template source
+ *
+ * @param object $_template template object
+ * @return integer timestamp of template source file
+ */
public function getTemplateTimestamp($_template)
{
return filemtime($_template->getTemplateFilepath());
}
/**
- * Read template source from file
- *
- * @param object $_template template object
- * @return string content of template source file
- */
+ * Read template source from file
+ *
+ * @param object $_template template object
+ * @return string content of template source file
+ */
public function getTemplateSource($_template)
{
$this->template = $_template;
$_template->template_filepath = $_filepath;
$_content = file_get_contents($_filepath);
if ($_filepath != $_files[count($_files)-1]) {
- if (preg_match_all("!({$this->_ldl}block(.+?){$this->_rdl})!", $_content, $_open, PREG_OFFSET_CAPTURE) !=
- preg_match_all("!({$this->_ldl}/block(.*?){$this->_rdl})!", $_content, $_close, PREG_OFFSET_CAPTURE)) {
- $this->smarty->trigger_error('unmatched {block} {/block} pairs');
+ if (preg_match_all("!({$this->_ldl}block(.+?){$this->_rdl})!", $_content, $_open) !=
+ preg_match_all("!({$this->_ldl}/block(.*?){$this->_rdl})!", $_content, $_close)) {
+ $this->smarty->trigger_error("unmatched {block} {/block} pairs in file '$_filepath'");
}
- $_block_count = count($_open[0]);
- for ($_i = 0; $_i < $_block_count; $_i++) {
- $_block_content = str_replace($this->smarty->left_delimiter . '$smarty.parent' . $this->smarty->right_delimiter, '%%%%SMARTY_PARENT%%%%',
- substr($_content, $_open[0][$_i][1] + strlen($_open[0][$_i][0]), $_close[0][$_i][1] - $_open[0][$_i][1] - strlen($_open[0][$_i][0])));
- $this->saveBlockData($_block_content, $_open[0][$_i][0], $_filepath);
+ preg_match_all("!{$this->_ldl}block(.+?){$this->_rdl}|{$this->_ldl}/block.*{$this->_rdl}!", $_content, $_result, PREG_OFFSET_CAPTURE);
+ $_result_count = count($_result[0]);
+ $_start = 0;
+ while ($_start < $_result_count) {
+ $_end = 0;
+ $_level = 1;
+ while ($_level != 0) {
+ $_end++;
+ if (!strpos($_result[0][$_start + $_end][0], '/')) {
+ $_level++;
+ } else {
+ $_level--;
+ }
+ }
+ $_block_content = str_replace($this->smarty->left_delimiter . '$smarty.block.parent' . $this->smarty->right_delimiter, '%%%%SMARTY_PARENT%%%%',
+ substr($_content, $_result[0][$_start][1] + strlen($_result[0][$_start][0]), $_result[0][$_start + $_end][1] - $_result[0][$_start][1] - + strlen($_result[0][$_start][0])));
+ $this->saveBlockData($_block_content, $_result[0][$_start][0], $_filepath);
+ $_start = $_start + $_end + 1;
}
} else {
$_template->template_source = $_content;
protected function saveBlockData($block_content, $block_tag, $_filepath)
{
if (0 == preg_match("!(.?)(name=)(.*?)(?=(\s|{$this->_rdl}))!", $block_tag, $_match)) {
- $this->smarty->trigger_error("'{$block_tag}' missing name attribute");
+ $this->smarty->trigger_error("'{$block_tag}' missing name attribute in file '$_filepath'");
} else {
$_name = trim($_match[3], '\'"');
+ // replace {$smarty.block.child}
+ if (strpos($block_content, $this->smarty->left_delimiter . '$smarty.block.child' . $this->smarty->right_delimiter) !== false) {
+ if (isset($this->smarty->block_data[$_name])) {
+ $block_content = str_replace($this->smarty->left_delimiter . '$smarty.block.child' . $this->smarty->right_delimiter,
+ $this->smarty->block_data[$_name]['source'], $block_content);
+ unset($this->smarty->block_data[$_name]);
+ } else {
+ $block_content = str_replace($this->smarty->left_delimiter . '$smarty.block.child' . $this->smarty->right_delimiter,
+ '', $block_content);
+ }
+ }
if (isset($this->smarty->block_data[$_name])) {
if (strpos($this->smarty->block_data[$_name]['source'], '%%%%SMARTY_PARENT%%%%') !== false) {
$this->smarty->block_data[$_name]['source'] =
}
/**
- * Get filepath to compiled template
- *
- * @param object $_template template object
- * @return string return path to compiled template
- */
+ * Get filepath to compiled template
+ *
+ * @param object $_template template object
+ * @return string return path to compiled template
+ */
public function getCompiledFilepath($_template)
{
$_compile_id = isset($_template->compile_id) ? preg_replace('![^\w\|]+!', '_', $_template->compile_id) : null;
}
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_resource_registered.php b/gosa-core/include/smarty/sysplugins/smarty_internal_resource_registered.php
index 36a09cdc0a94cb65abc1c46a6cb7e46c1474b4bc..92347a178a1956912b820310600cdad2da3ecf39 100644 (file)
*/
public function isExisting($_template)
{
- if (is_integer($this->getTemplateTimestamp($_template))) {
+ if (is_integer($_template->getTemplateTimestamp())) {
return true;
} else {
return false;
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_security_handler.php b/gosa-core/include/smarty/sysplugins/smarty_internal_security_handler.php
index f433e9e9d60d230a89fc241f8088f9d1d6add8cd..1833d4f870b0b1cb416cad4a6a285bd39e3ac2f4 100644 (file)
if (empty($this->smarty->security_policy->php_functions) || in_array($function_name, $this->smarty->security_policy->php_functions)) {
return true;
} else {
- $compiler->trigger_template_error ("PHP function \"" . $function_name . "\" not allowed by security setting");
+ $compiler->trigger_template_error ("PHP function '{$function_name}' not allowed by security setting");
return false;
}
}
+ /**
+ * Check if static class is trusted.
+ *
+ * @param string $class_name
+ * @param object $compiler compiler object
+ * @return boolean true if class is trusted
+ */
+ function isTrustedStaticClass($class_name, $compiler)
+ {
+ if (empty($this->smarty->security_policy->static_classes) || in_array($class_name, $this->smarty->security_policy->static_classes)) {
+ return true;
+ } else {
+ $compiler->trigger_template_error ("access to static class '{$class_name}' not allowed by security setting");
+ return false;
+ }
+ }
/**
* Check if modifier is trusted.
*
if (empty($this->smarty->security_policy->modifiers) || in_array($modifier_name, $this->smarty->security_policy->modifiers)) {
return true;
} else {
- $compiler->trigger_template_error ("modifier \"" . $modifier_name . "\" not allowed by security setting");
+ $compiler->trigger_template_error ("modifier '{$modifier_name}' not allowed by security setting");
return false;
}
}
if (empty($this->smarty->security_policy->streams) || in_array($stream_name, $this->smarty->security_policy->streams)) {
return true;
} else {
- throw new Exception ("stream \"" . $stream_name . "\" not allowed by security setting");
+ throw new Exception ("stream '{$stream_name}' not allowed by security setting");
return false;
}
}
}
}
- throw new Exception ("directory \"" . $_rp . "\" not allowed by security setting");
+ throw new Exception ("directory '{$_rp}' not allowed by security setting");
return false;
}
/**
}
}
- throw new Exception ("directory \"" . $_rp . "\" not allowed by security setting");
+ throw new Exception ("directory '{$_rp}' not allowed by security setting");
return false;
}
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_smartytemplatecompiler.php b/gosa-core/include/smarty/sysplugins/smarty_internal_smartytemplatecompiler.php
index 2246f035c86cca494180729b0fdcd0b21c2a18d5..a6b7e7c3b215d542a6e11b38f533326b47e70488 100644 (file)
* @subpackage Compiler
* @author Uwe Tews
*/
+require_once("smarty_internal_parsetree.php");
/**
* Class SmartyTemplateCompiler
*/
}
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_template.php b/gosa-core/include/smarty/sysplugins/smarty_internal_template.php
index fab9d0847c8e0de20e90f076b857f585b89e5c13..60bb8a982506166a8e1c3c11d943705341c9afd6 100644 (file)
public $resource_name = null;
public $resource_object = null;
private $isExisting = null;
- public $templateUid = '';
+ public $templateUid = '';
// Template source
public $template_filepath = null;
public $template_source = null;
// storage for block data
public $block_data = array();
// required plugins
- public $required_plugins = array('compiled' => array(), 'cache' => array());
+ public $required_plugins = array('compiled' => array(), 'nocache' => array());
/**
* Create template data object
}
// load cache resource
if (!$this->resource_object->isEvaluated && ($this->caching == SMARTY_CACHING_LIFETIME_CURRENT || $this->caching == SMARTY_CACHING_LIFETIME_SAVED)) {
- $this->cache_resource_object = $this->smarty->loadCacheResource();
+ $this->cache_resource_object = $this->smarty->cache->loadResource();
}
}
// compiling succeded
if (!$this->resource_object->isEvaluated) {
// write compiled template
- Smarty_Internal_Write_File::writeFile($this->getCompiledFilepath(), $this->compiled_template, $this->smarty);
+ Smarty_Internal_Write_File::writeFile($this->getCompiledFilepath(), $this->compiled_template, $this->smarty);
}
} else {
// error compiling template
{
if ($this->isCached === null) {
$this->isCached = false;
- if (($this->caching == SMARTY_CACHING_LIFETIME_CURRENT || $this->caching == SMARTY_CACHING_LIFETIME_SAVED) && !$this->resource_object->isEvaluated && !$this->force_compile && !$this->force_cache) {
+ if (($this->caching == SMARTY_CACHING_LIFETIME_CURRENT || $this->caching == SMARTY_CACHING_LIFETIME_SAVED) && !$this->resource_object->isEvaluated) {
+ if (!isset($this->cache_resource_object)) {
+ $this->cache_resource_object = $this->smarty->loadCacheResource();
+ }
$cachedTimestamp = $this->getCachedTimestamp();
- if ($cachedTimestamp === false) {
+ if ($cachedTimestamp === false || $this->force_compile || $this->force_cache) {
return $this->isCached;
}
if ($this->caching === SMARTY_CACHING_LIFETIME_SAVED || ($this->caching == SMARTY_CACHING_LIFETIME_CURRENT && (time() <= ($cachedTimestamp + $this->cache_lifetime) || $this->cache_lifetime < 0))) {
}
if ($this->parent instanceof Smarty_Template or $this->parent instanceof Smarty_Internal_Template) {
$this->parent->properties['file_dependency'] = array_merge($this->parent->properties['file_dependency'], $this->properties['file_dependency']);
- $this->parent->required_plugins['compiled'] = array_merge($this->parent->required_plugins['compiled'], $this->required_plugins['compiled']);
- $this->parent->required_plugins['cache'] = array_merge($this->parent->required_plugins['cache'], $this->required_plugins['cache']);
+ foreach($this->required_plugins as $code => $tmp1) {
+ foreach($tmp1 as $name => $tmp) {
+ foreach($tmp as $type => $data) {
+ $this->parent->required_plugins[$code][$name][$type] = $data;
+ }
+ }
+ }
}
if ($this->smarty->debugging) {
Smarty_Internal_Debug::end_render($this);
eval("?>" . $output);
$this->rendered_content = ob_get_clean();
// write cache file content
- $this->writeCachedContent($output);
+ $this->writeCachedContent($output);
if ($this->smarty->debugging) {
Smarty_Internal_Debug::end_cache($this);
}
* @param string $resource_type return resource type
* @param string $resource_name return resource name
*/
- private function getResourceTypeName ($template_resource, &$resource_type, &$resource_name)
+ protected function getResourceTypeName ($template_resource, &$resource_type, &$resource_name)
{
if (strpos($template_resource, ':') === false) {
// no resource given, use default
$resource_type = 'file';
$resource_name = $template_resource;
} else {
- $resource_type = strtolower($resource_type);
+ $resource_type = $resource_type;
}
}
}
* @param string $resource_type template resource type
* @return object resource handler object
*/
- private function loadTemplateResourceHandler ($resource_type)
+ protected function loadTemplateResourceHandler ($resource_type)
{
// try registered resource
if (isset($this->smarty->_plugins['resource'][$resource_type])) {
if (!$cache) {
if (!empty($this->required_plugins['compiled'])) {
$plugins_string = '<?php ';
- foreach($this->required_plugins['compiled'] as $plugin_name => $data) {
- $plugin = 'smarty_' . $data['type'] . '_' . $plugin_name;
- $plugins_string .= "if (!is_callable('{$plugin}')) include '{$data['file']}';\n";
+ foreach($this->required_plugins['compiled'] as $tmp) {
+ foreach($tmp as $data) {
+ $plugins_string .= "if (!is_callable('{$data['function']}')) include '{$data['file']}';\n";
+ }
}
$plugins_string .= '?>';
}
- if (!empty($this->required_plugins['cache'])) {
+ if (!empty($this->required_plugins['nocache'])) {
$this->has_nocache_code = true;
$plugins_string .= "<?php echo '/*%%SmartyNocache:{$this->properties['nocache_hash']}%%*/<?php ";
- foreach($this->required_plugins['cache'] as $plugin_name => $data) {
- $plugin = 'smarty_' . $data['type'] . '_' . $plugin_name;
- $plugins_string .= "if (!is_callable(\'{$plugin}\')) include \'{$data['file']}\';\n";
+ foreach($this->required_plugins['nocache'] as $tmp) {
+ foreach($tmp as $data) {
+ $plugins_string .= "if (!is_callable(\'{$data['function']}\')) include \'{$data['file']}\';\n";
+ }
}
$plugins_string .= "?>/*/%%SmartyNocache:{$this->properties['nocache_hash']}%%*/';?>\n";
}
{
return $this->smarty->fetch($this);
}
- /**
- * wrapper for is_cached
- */
- public function is_cached ()
- {
- return $this->iscached($this);
- }
}
/**
class Smarty_Template extends Smarty_Internal_Template {
}
-?>
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_templatecompilerbase.php b/gosa-core/include/smarty/sysplugins/smarty_internal_templatecompilerbase.php
index 68e3efd99fcc7c24c1cbb9bc68b0644cc9150678..0b008903f36a03d67bdacc13759cb536b3b925c6 100644 (file)
<?php\r
/**\r
-* Smarty Internal Plugin Smarty Template Compiler Base\r
-* \r
-* This file contains the basic classes and methodes for compiling Smarty templates with lexer/parser\r
-* \r
-* @package Smarty\r
-* @subpackage Compiler\r
-* @author Uwe Tews \r
-*/\r
+ * Smarty Internal Plugin Smarty Template Compiler Base\r
+ * \r
+ * This file contains the basic classes and methodes for compiling Smarty templates with lexer/parser\r
+ * \r
+ * @package Smarty\r
+ * @subpackage Compiler\r
+ * @author Uwe Tews \r
+ */\r
/**\r
-* Main compiler class\r
-*/\r
+ * Main compiler class\r
+ */\r
class Smarty_Internal_TemplateCompilerBase {\r
// hash for nocache sections\r
private $nocache_hash = null; \r
// suppress generation of nocache code\r
- public $suppressNocacheProcessing = false;\r
+ public $suppressNocacheProcessing = false; \r
// compile tag objects\r
static $_tag_objects = array(); \r
// tag stack\r
public $_tag_stack = array(); \r
// current template\r
- public $template = null; \r
- // required plugins\r
- public $required_plugins_call = array(); \r
+ public $template = null;\r
\r
/**\r
- * Initialize compiler\r
- */\r
+ * Initialize compiler\r
+ */\r
public function __construct()\r
{\r
$this->nocache_hash = str_replace('.', '-', uniqid(rand(), true));\r
} \r
// abstract function doCompile($_content);\r
/**\r
- * Methode to compile a Smarty template\r
- * \r
- * @param $template template object to compile\r
- * @return bool true if compiling succeeded, false if it failed\r
- */\r
+ * Methode to compile a Smarty template\r
+ * \r
+ * @param $template template object to compile\r
+ * @return bool true if compiling succeeded, false if it failed\r
+ */\r
public function compileTemplate($template)\r
{\r
if (empty($template->properties['nocache_hash'])) {\r
} \r
\r
/**\r
- * Compile Tag\r
- * \r
- * This is a call back from the lexer/parser\r
- * It executes the required compile plugin for the Smarty tag\r
- * \r
- * @param string $tag tag name\r
- * @param array $args array with tag attributes\r
- * @return string compiled code\r
- */\r
+ * Compile Tag\r
+ * \r
+ * This is a call back from the lexer/parser\r
+ * It executes the required compile plugin for the Smarty tag\r
+ * \r
+ * @param string $tag tag name\r
+ * @param array $args array with tag attributes\r
+ * @return string compiled code\r
+ */\r
public function compileTag($tag, $args)\r
{ \r
// $args contains the attributes parsed and compiled by the lexer/parser\r
foreach ($this->smarty->plugin_search_order as $plugin_type) {\r
if ($plugin_type == 'compiler' && $this->smarty->loadPlugin('smarty_compiler_' . $tag)) {\r
$plugin = 'smarty_compiler_' . $tag;\r
- if (class_exists($plugin, false)) {\r
- $plugin = array(new $plugin, 'compile');\r
- } \r
if (is_callable($plugin)) {\r
- return call_user_func_array($plugin, array($args, $this));\r
- } else {\r
- throw new Exception("Plugin \"{$tag}\" not callable");\r
+ return $plugin($args, $this->smarty);\r
+ } \r
+ if (class_exists($plugin, false)) {\r
+ $plugin_object = new $plugin;\r
+ if (method_exists($plugin_object, 'compile')) {\r
+ return $plugin_object->compile($args, $this);\r
+ } \r
} \r
+ throw new Exception("Plugin \"{$tag}\" not callable");\r
} else {\r
if ($function = $this->getPlugin($tag, $plugin_type)) {\r
return $this->callTagCompiler('private_' . $plugin_type . '_plugin', $args, $tag, $function);\r
} \r
if ($this->smarty->loadPlugin('smarty_compiler_' . $tag)) {\r
$plugin = 'smarty_compiler_' . $tag;\r
- if (class_exists($plugin, false)) {\r
- $plugin = array(new $plugin, 'compile');\r
- } \r
if (is_callable($plugin)) {\r
- return call_user_func_array($plugin, array($args, $this));\r
- } else {\r
- throw new Exception("Plugin \"{$tag}\" not callable");\r
+ return $plugin($args, $this->smarty);\r
} \r
+ if (class_exists($plugin, false)) {\r
+ $plugin_object = new $plugin;\r
+ if (method_exists($plugin_object, 'compile')) {\r
+ return $plugin_object->compile($args, $this);\r
+ } \r
+ } \r
+ throw new Exception("Plugin \"{$tag}\" not callable");\r
} \r
} \r
$this->trigger_template_error ("unknown tag \"" . $tag . "\"", $this->lex->taglineno);\r
} \r
\r
/**\r
- * lazy loads internal compile plugin for tag and calls the compile methode\r
- * \r
- * compile objects cached for reuse.\r
- * class name format: Smarty_Internal_Compile_TagName\r
- * plugin filename format: Smarty_Internal_Tagname.php\r
- * \r
- * @param $tag string tag name\r
- * @param $args array with tag attributes\r
- * @param $param1 optional parameter\r
- * @param $param2 optional parameter\r
- * @param $param3 optional parameter\r
- * @return string compiled code\r
- */\r
+ * lazy loads internal compile plugin for tag and calls the compile methode\r
+ * \r
+ * compile objects cached for reuse.\r
+ * class name format: Smarty_Internal_Compile_TagName\r
+ * plugin filename format: Smarty_Internal_Tagname.php\r
+ * \r
+ * @param $tag string tag name\r
+ * @param $args array with tag attributes\r
+ * @param $param1 optional parameter\r
+ * @param $param2 optional parameter\r
+ * @param $param3 optional parameter\r
+ * @return string compiled code\r
+ */\r
public function callTagCompiler($tag, $args, $param1 = null, $param2 = null, $param3 = null)\r
{ \r
// re-use object if already exists\r
if (isset(self::$_tag_objects[$tag])) {\r
// compile this tag\r
- return call_user_func(array(self::$_tag_objects[$tag], 'compile'), $args, $this, $param1, $param2, $param3);\r
+ return self::$_tag_objects[$tag]->compile($args, $this, $param1, $param2, $param3);\r
} \r
// lazy load internal compiler plugin\r
$class_name = 'Smarty_Internal_Compile_' . $tag;\r
// use plugin if found\r
self::$_tag_objects[$tag] = new $class_name; \r
// compile this tag\r
- return call_user_func(array(self::$_tag_objects[$tag], 'compile'), $args, $this, $param1, $param2, $param3);\r
+ return self::$_tag_objects[$tag]->compile($args, $this, $param1, $param2, $param3);\r
} \r
// no internal compile plugin for this tag\r
return false;\r
} \r
\r
/**\r
- * Check for plugins and return function name\r
- * \r
- * @param $pugin_name string name of plugin or function\r
- * @param $type string type of plugin\r
- * @return string call name of function\r
- */\r
+ * Check for plugins and return function name\r
+ * \r
+ * @param $pugin_name string name of plugin or function\r
+ * @param $type string type of plugin\r
+ * @return string call name of function\r
+ */\r
public function getPlugin($plugin_name, $type)\r
{\r
- if (isset($this->template->required_plugins_call[$plugin_name][$type])) {\r
- if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {\r
- if (isset($this->template->required_plugins['compiled'][$plugin_name])) {\r
- $this->template->required_plugins['cache'][$plugin_name] = $this->template->required_plugins['compiled'][$plugin_name];\r
- } \r
- } else {\r
- if (isset($this->template->required_plugins['cache'][$plugin_name])) {\r
- $this->template->required_plugins['compiled'][$plugin_name] = $this->template->required_plugins['compiled'][$plugin_name];\r
- } \r
+ $function = null;\r
+ if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {\r
+ if (isset($this->template->required_plugins['nocache'][$plugin_name][$type])) {\r
+ $function = $this->template->required_plugins['nocache'][$plugin_name][$type]['function'];\r
+ } else if (isset($this->template->required_plugins['compiled'][$plugin_name][$type])) {\r
+ $this->template->required_plugins['nocache'][$plugin_name][$type] = $this->template->required_plugins['compiled'][$plugin_name][$type];\r
+ $function = $this->template->required_plugins['nocache'][$plugin_name][$type]['function'];\r
+ } \r
+ } else {\r
+ if (isset($this->template->required_plugins['compiled'][$plugin_name][$type])) {\r
+ $function = $this->template->required_plugins['compiled'][$plugin_name][$type]['function'];\r
+ } else if (isset($this->template->required_plugins['compiled'][$plugin_name][$type])) {\r
+ $this->template->required_plugins['compiled'][$plugin_name][$type] = $this->template->required_plugins['nocache'][$plugin_name][$type];\r
+ $function = $this->template->required_plugins['compiled'][$plugin_name][$type]['function'];\r
} \r
+ } \r
+ if (isset($function)) {\r
if ($type == 'modifier') {\r
$this->template->saved_modifer[$plugin_name] = true;\r
} \r
- return $this->template->required_plugins_call[$plugin_name][$type];\r
+ return $function;\r
} \r
+ /**\r
+ * if (isset($this->template->required_plugins_call[$plugin_name][$type])) {\r
+ * if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {\r
+ * if (isset($this->template->required_plugins['compiled'][$plugin_name])) {\r
+ * $this->template->required_plugins['cache'][$plugin_name] = $this->template->required_plugins['compiled'][$plugin_name];\r
+ * } \r
+ * } else {\r
+ * if (isset($this->template->required_plugins['cache'][$plugin_name])) {\r
+ * $this->template->required_plugins['compiled'][$plugin_name] = $this->template->required_plugins['cache'][$plugin_name];\r
+ * } \r
+ * } \r
+ * if ($type == 'modifier') {\r
+ * $this->template->saved_modifer[$plugin_name] = true;\r
+ * } \r
+ * return $this->template->required_plugins_call[$plugin_name][$type];\r
+ * }\r
+ */\r
// loop through plugin dirs and find the plugin\r
- $plugin = 'smarty_' . $type . '_' . $plugin_name;\r
+ $function = 'smarty_' . $type . '_' . $plugin_name;\r
$found = false;\r
foreach((array)$this->smarty->plugins_dir as $_plugin_dir) {\r
$file = rtrim($_plugin_dir, '/\\') . DS . $type . '.' . $plugin_name . '.php';\r
} \r
if ($found) {\r
// if (is_callable($plugin)) {\r
- $this->template->required_plugins_call[$plugin_name][$type] = $plugin;\r
if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {\r
- $this->template->required_plugins['cache'][$plugin_name]['file'] = $file;\r
- $this->template->required_plugins['cache'][$plugin_name]['type'] = $type;\r
+ $this->template->required_plugins['nocache'][$plugin_name][$type]['file'] = $file;\r
+ $this->template->required_plugins['nocache'][$plugin_name][$type]['function'] = $function;\r
} else {\r
- $this->template->required_plugins['compiled'][$plugin_name]['file'] = $file;\r
- $this->template->required_plugins['compiled'][$plugin_name]['type'] = $type;\r
+ $this->template->required_plugins['compiled'][$plugin_name][$type]['file'] = $file;\r
+ $this->template->required_plugins['compiled'][$plugin_name][$type]['function'] = $function;\r
} \r
+ /**\r
+ * $this->template->required_plugins_call[$plugin_name][$type] = $plugin;\r
+ * if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {\r
+ * $this->template->required_plugins['cache'][$plugin_name]['file'] = $file;\r
+ * $this->template->required_plugins['cache'][$plugin_name]['type'] = $type;\r
+ * } else {\r
+ * $this->template->required_plugins['compiled'][$plugin_name]['file'] = $file;\r
+ * $this->template->required_plugins['compiled'][$plugin_name]['type'] = $type;\r
+ * }\r
+ */\r
if ($type == 'modifier') {\r
$this->template->saved_modifer[$plugin_name] = true;\r
} \r
-\r
- return $plugin;\r
+ return $function;\r
} \r
- if (is_callable($plugin)) {\r
+ if (is_callable($function)) {\r
// plugin function is defined in the script\r
- return $plugin;\r
+ return $function;\r
} \r
return false;\r
} \r
/**\r
- * Inject inline code for nocache template sections\r
- * \r
- * This method gets the content of each template element from the parser.\r
- * If the content is compiled code and it should be not cached the code is injected\r
- * into the rendered output.\r
- * \r
- * @param string $content content of template element\r
- * @param boolean $tag_nocache true if the parser detected a nocache situation\r
- * @param boolean $is_code true if content is compiled code\r
- * @return string content\r
- */\r
+ * Inject inline code for nocache template sections\r
+ * \r
+ * This method gets the content of each template element from the parser.\r
+ * If the content is compiled code and it should be not cached the code is injected\r
+ * into the rendered output.\r
+ * \r
+ * @param string $content content of template element\r
+ * @param boolean $tag_nocache true if the parser detected a nocache situation\r
+ * @param boolean $is_code true if content is compiled code\r
+ * @return string content\r
+ */\r
public function processNocacheCode ($content, $is_code)\r
{ \r
// If the template is not evaluated and we have a nocache section and or a nocache tag\r
// make sure we include modifer plugins for nocache code\r
if (isset($this->template->saved_modifer)) {\r
foreach ($this->template->saved_modifer as $plugin_name => $dummy) {\r
- if (isset($this->template->required_plugins['compiled'][$plugin_name])) {\r
- $this->template->required_plugins['cache'][$plugin_name] = $this->template->required_plugins['compiled'][$plugin_name];\r
+ if (isset($this->template->required_plugins['compiled'][$plugin_name]['modifier'])) {\r
+ $this->template->required_plugins['nocache'][$plugin_name]['modifier'] = $this->template->required_plugins['compiled'][$plugin_name]['modifier'];\r
} \r
} \r
unset($this->template->saved_modifer);\r
return $_output;\r
} \r
/**\r
- * display compiler error messages without dying\r
- * \r
- * If parameter $args is empty it is a parser detected syntax error.\r
- * In this case the parser is called to obtain information about expected tokens.\r
- * \r
- * If parameter $args contains a string this is used as error message\r
- * \r
- * @param $args string individual error message or null\r
- */\r
+ * display compiler error messages without dying\r
+ * \r
+ * If parameter $args is empty it is a parser detected syntax error.\r
+ * In this case the parser is called to obtain information about expected tokens.\r
+ * \r
+ * If parameter $args contains a string this is used as error message\r
+ * \r
+ * @param $args string individual error message or null\r
+ */\r
public function trigger_template_error($args = null, $line = null)\r
{ \r
// get template source line which has error\r
$line = $this->lex->line;\r
} \r
$match = preg_split("/\n/", $this->lex->data);\r
- $error_text = 'Syntax Error in template "' . $this->template->getTemplateFilepath() . '" on line ' . $line . ' "' . $match[$line-1] . '" ';\r
+ $error_text = 'Syntax Error in template "' . $this->template->getTemplateFilepath() . '" on line ' . $line . ' "' . htmlspecialchars($match[$line-1]) . '" ';\r
if (isset($args)) {\r
// individual error message\r
$error_text .= $args;\r
} \r
} \r
\r
-?>\r
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_templatelexer.php b/gosa-core/include/smarty/sysplugins/smarty_internal_templatelexer.php
index fb259847f071831f746ac144310f36e8d40a5645..4a9ab57882b37b6182c310f67a4e5a389579cb54 100644 (file)
{
// set instance object
self::instance($this);
- $this->data = preg_replace("/(\r\n|\r|\n)/", "\n", $data);
+// $this->data = preg_replace("/(\r\n|\r|\n)/", "\n", $data);
+ $this->data = $data;
$this->counter = 0;
$this->line = 1;
$this->smarty = $compiler->smarty;
if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
- $yy_global_pattern = "/^(\\{\\})|^(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|^(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)/";
+ $yy_global_pattern = "/^(\\{\\})|^(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|^(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)(?=([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?)))|^([\S\s]+)/";
do {
if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
if (in_array($this->value, Array('<?', '<?=', '<?php'))) {
$this->token = Smarty_Internal_Templateparser::TP_PHPSTARTTAG;
$this->yypushstate(self::PHP);
+ } elseif ($this->value == '<?xml') {
+ $this->token = Smarty_Internal_Templateparser::TP_XMLTAG;
} else {
$this->token = Smarty_Internal_Templateparser::TP_FAKEPHPSTARTTAG;
$this->value = substr($this->value, 0, 2);
{
$this->token = Smarty_Internal_Templateparser::TP_OTHER;
- if (substr($this->value,-2) == '<?') {
- $this->value = substr($this->value,0,-2);
- } elseif (substr($this->value,-strlen($this->smarty->left_delimiter)) == $this->smarty->left_delimiter){
- $this->value = substr($this->value,0,-strlen($this->smarty->left_delimiter));
- } else {
- $this->value = rtrim($this->value);
- }
- if (strlen($this->value) == 0) {
- return true; // rescan
- }
}
function yy_r1_16($yy_subpatterns)
{
function yylex2()
{
$tokenMap = array (
- 1 => 1,
+ 1 => 0,
+ 2 => 0,
3 => 0,
4 => 0,
5 => 0,
6 => 0,
7 => 0,
8 => 0,
- 9 => 0,
- 10 => 0,
+ 9 => 1,
11 => 1,
13 => 1,
15 => 0,
if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
- $yy_global_pattern = "/^((\\\\\"|\\\\'))|^('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|else if|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)/";
+ $yy_global_pattern = "/^('[^'\\\\]*(?:\\\\.[^'\\\\]*)*')|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|else if|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)/";
do {
if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
function yy_r2_1($yy_subpatterns)
{
- $this->token = Smarty_Internal_Templateparser::TP_OTHER;
- }
- function yy_r2_3($yy_subpatterns)
- {
-
$this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING;
}
- function yy_r2_4($yy_subpatterns)
+ function yy_r2_2($yy_subpatterns)
{
if ($this->smarty->auto_literal) {
$this->taglineno = $this->line;
}
}
- function yy_r2_5($yy_subpatterns)
+ function yy_r2_3($yy_subpatterns)
{
if ($this->smarty->auto_literal) {
$this->taglineno = $this->line;
}
}
- function yy_r2_6($yy_subpatterns)
+ function yy_r2_4($yy_subpatterns)
{
if ($this->smarty->auto_literal) {
$this->yypopstate();
}
}
- function yy_r2_7($yy_subpatterns)
+ function yy_r2_5($yy_subpatterns)
{
$this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
$this->yypushstate(self::SMARTY);
$this->taglineno = $this->line;
}
- function yy_r2_8($yy_subpatterns)
+ function yy_r2_6($yy_subpatterns)
{
$this->token = Smarty_Internal_Templateparser::TP_LDEL;
$this->yypushstate(self::SMARTY);
$this->taglineno = $this->line;
}
- function yy_r2_9($yy_subpatterns)
+ function yy_r2_7($yy_subpatterns)
{
$this->token = Smarty_Internal_Templateparser::TP_RDEL;
$this->yypopstate();
}
- function yy_r2_10($yy_subpatterns)
+ function yy_r2_8($yy_subpatterns)
{
$this->token = Smarty_Internal_Templateparser::TP_ISIN;
}
- function yy_r2_11($yy_subpatterns)
+ function yy_r2_9($yy_subpatterns)
{
$this->token = Smarty_Internal_Templateparser::TP_AS;
}
- function yy_r2_13($yy_subpatterns)
+ function yy_r2_11($yy_subpatterns)
{
$this->token = Smarty_Internal_Templateparser::TP_TO;
+ }
+ function yy_r2_13($yy_subpatterns)
+ {
+
+ $this->token = Smarty_Internal_Templateparser::TP_STEP;
}
function yy_r2_15($yy_subpatterns)
{
2 => 0,
3 => 0,
4 => 0,
- 5 => 1,
- 7 => 0,
+ 5 => 2,
+ 8 => 0,
);
if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
- $yy_global_pattern = "/^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|^(\\?>)|^([\S\s]+?(".$this->ldel."\/?literal".$this->rdel."|<\\?))|^([\S\s]+)/";
+ $yy_global_pattern = "/^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(<\\?(?:php\\w+|=|[a-zA-Z]+)?)|^(\\?>)|^(([\S\s]*?)(?=(".$this->ldel."\/?literal".$this->rdel."|<\\?)))|^([\S\s]+)/";
do {
if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
function yy_r12_5($yy_subpatterns)
{
- $lenght_literal = strlen($this->smarty->left_delimiter.$this->smarty->right_delimiter)+7;
- if (substr($this->value,-2,2) === '<?') {
- $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
- $this->value = substr($this->value,0,-2);
- } else if (substr($this->value,-$lenght_literal,$lenght_literal) === $this->smarty->left_delimiter.'literal'.$this->smarty->right_delimiter) {
- $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
- $this->value = substr($this->value,0,-$lenght_literal);
- } else {
- assert(substr($this->value,-$lenght_literal-1,$lenght_literal+1) === $this->smarty->left_delimiter.'/literal'.$this->smarty->right_delimiter);
- $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
- $this->value = substr($this->value,0,-$lenght_literal-1);
- }
+ $this->token = Smarty_Internal_Templateparser::TP_LITERAL;
}
- function yy_r12_7($yy_subpatterns)
+ function yy_r12_8($yy_subpatterns)
{
$this->compiler->trigger_template_error ("missing or misspelled literal closing tag");
6 => 0,
7 => 0,
8 => 0,
- 9 => 2,
- 12 => 0,
+ 9 => 3,
+ 13 => 0,
);
if ($this->counter >= strlen($this->data)) {
return false; // end of input
}
- $yy_global_pattern = "/^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)/";
+ $yy_global_pattern = "/^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$[0-9]*[a-zA-Z_]\\w*)|^(\\$)|^(([^\"\\\\]*?)((?:\\\\.[^\"\\\\]*?)*?)(?=(".$this->ldel."|\\$|`\\$|\")))|^([\S\s]+)/";
do {
if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
{
$this->token = Smarty_Internal_Templateparser::TP_OTHER;
- if (substr($this->value,-strlen($this->smarty->left_delimiter)) == $this->smarty->left_delimiter) {
- $this->value = substr($this->value,0,-strlen($this->smarty->left_delimiter));
- } elseif (substr($this->value,-2) == '`$') {
- $this->value = substr($this->value,0,-2);
- } elseif (strpbrk(substr($this->value,-1),'"$') !== false) {
- $this->value = substr($this->value,0,-1);
- }
- if (strlen($this->value) == 0) {
- return true; // rescan
- }
}
- function yy_r13_12($yy_subpatterns)
+ function yy_r13_13($yy_subpatterns)
{
$this->token = Smarty_Internal_Templateparser::TP_OTHER;
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_templateparser.php b/gosa-core/include/smarty/sysplugins/smarty_internal_templateparser.php
index 3ad06029e270bb07a701fa24b09f24b06f43ffe1..8e1531cf39f2e137bdd26e5bffd6d395d1f12dcf 100644 (file)
@@ -109,6 +109,7 @@ class Smarty_Internal_Templateparser#line 79 "smarty_internal_templateparser.php
$this->compiler->has_variable_string = false;\r
$this->compiler->prefix_code = array();\r
$this->prefix_number = 0;\r
+ $this->block_nesting_level = 0;\r
}\r
public static function &instance($new_instance = null)\r
{\r
@@ -130,772 +131,815 @@ class Smarty_Internal_Templateparser#line 79 "smarty_internal_templateparser.php
}\r
\r
\r
-#line 126 "smarty_internal_templateparser.php"\r
+#line 127 "smarty_internal_templateparser.php"\r
\r
- const TP_COMMENT = 1;\r
- const TP_PHPSTARTTAG = 2;\r
- const TP_PHPENDTAG = 3;\r
- const TP_OTHER = 4;\r
- const TP_FAKEPHPSTARTTAG = 5;\r
- const TP_PHP_CODE = 6;\r
- const TP_PHP_CODE_START_DOUBLEQUOTE = 7;\r
- const TP_PHP_CODE_DOUBLEQUOTE = 8;\r
- const TP_PHP_HEREDOC_START = 9;\r
- const TP_PHP_HEREDOC_END = 10;\r
- const TP_PHP_NOWDOC_START = 11;\r
- const TP_PHP_NOWDOC_END = 12;\r
- const TP_PHP_DQ_CONTENT = 13;\r
- const TP_PHP_DQ_EMBED_START = 14;\r
- const TP_PHP_DQ_EMBED_END = 15;\r
- const TP_LITERALSTART = 16;\r
- const TP_LITERALEND = 17;\r
- const TP_LITERAL = 18;\r
- const TP_LDEL = 19;\r
- const TP_RDEL = 20;\r
- const TP_DOLLAR = 21;\r
- const TP_ID = 22;\r
- const TP_EQUAL = 23;\r
- const TP_FOREACH = 24;\r
- const TP_PTR = 25;\r
- const TP_IF = 26;\r
- const TP_SPACE = 27;\r
- const TP_UNIMATH = 28;\r
- const TP_FOR = 29;\r
- const TP_SEMICOLON = 30;\r
- const TP_INCDEC = 31;\r
- const TP_TO = 32;\r
- const TP_AS = 33;\r
- const TP_APTR = 34;\r
- const TP_LDELSLASH = 35;\r
- const TP_INTEGER = 36;\r
- const TP_COMMA = 37;\r
- const TP_COLON = 38;\r
- const TP_MATH = 39;\r
- const TP_ANDSYM = 40;\r
- const TP_OPENP = 41;\r
- const TP_CLOSEP = 42;\r
- const TP_QMARK = 43;\r
- const TP_NOT = 44;\r
- const TP_TYPECAST = 45;\r
- const TP_DOT = 46;\r
- const TP_BOOLEAN = 47;\r
- const TP_NULL = 48;\r
- const TP_SINGLEQUOTESTRING = 49;\r
- const TP_QUOTE = 50;\r
- const TP_DOUBLECOLON = 51;\r
- const TP_AT = 52;\r
- const TP_HATCH = 53;\r
- const TP_OPENB = 54;\r
- const TP_CLOSEB = 55;\r
- const TP_VERT = 56;\r
- const TP_ISIN = 57;\r
- const TP_ISDIVBY = 58;\r
- const TP_ISNOTDIVBY = 59;\r
- const TP_ISEVEN = 60;\r
- const TP_ISNOTEVEN = 61;\r
- const TP_ISEVENBY = 62;\r
- const TP_ISNOTEVENBY = 63;\r
- const TP_ISODD = 64;\r
- const TP_ISNOTODD = 65;\r
- const TP_ISODDBY = 66;\r
- const TP_ISNOTODDBY = 67;\r
- const TP_INSTANCEOF = 68;\r
- const TP_EQUALS = 69;\r
- const TP_NOTEQUALS = 70;\r
- const TP_GREATERTHAN = 71;\r
- const TP_LESSTHAN = 72;\r
- const TP_GREATEREQUAL = 73;\r
- const TP_LESSEQUAL = 74;\r
- const TP_IDENTITY = 75;\r
- const TP_NONEIDENTITY = 76;\r
- const TP_MOD = 77;\r
- const TP_LAND = 78;\r
- const TP_LOR = 79;\r
- const TP_LXOR = 80;\r
- const TP_BACKTICK = 81;\r
- const TP_DOLLARID = 82;\r
- const YY_NO_ACTION = 613;\r
- const YY_ACCEPT_ACTION = 612;\r
- const YY_ERROR_ACTION = 611;\r
+ const TP_VERT = 1;\r
+ const TP_COLON = 2;\r
+ const TP_COMMENT = 3;\r
+ const TP_PHPSTARTTAG = 4;\r
+ const TP_PHPENDTAG = 5;\r
+ const TP_FAKEPHPSTARTTAG = 6;\r
+ const TP_XMLTAG = 7;\r
+ const TP_OTHER = 8;\r
+ const TP_PHP_CODE = 9;\r
+ const TP_PHP_CODE_START_DOUBLEQUOTE = 10;\r
+ const TP_PHP_CODE_DOUBLEQUOTE = 11;\r
+ const TP_PHP_HEREDOC_START = 12;\r
+ const TP_PHP_HEREDOC_END = 13;\r
+ const TP_PHP_NOWDOC_START = 14;\r
+ const TP_PHP_NOWDOC_END = 15;\r
+ const TP_PHP_DQ_CONTENT = 16;\r
+ const TP_PHP_DQ_EMBED_START = 17;\r
+ const TP_PHP_DQ_EMBED_END = 18;\r
+ const TP_LITERALSTART = 19;\r
+ const TP_LITERALEND = 20;\r
+ const TP_LITERAL = 21;\r
+ const TP_LDEL = 22;\r
+ const TP_RDEL = 23;\r
+ const TP_DOLLAR = 24;\r
+ const TP_ID = 25;\r
+ const TP_EQUAL = 26;\r
+ const TP_FOREACH = 27;\r
+ const TP_PTR = 28;\r
+ const TP_IF = 29;\r
+ const TP_SPACE = 30;\r
+ const TP_FOR = 31;\r
+ const TP_SEMICOLON = 32;\r
+ const TP_INCDEC = 33;\r
+ const TP_TO = 34;\r
+ const TP_STEP = 35;\r
+ const TP_AS = 36;\r
+ const TP_APTR = 37;\r
+ const TP_LDELSLASH = 38;\r
+ const TP_INTEGER = 39;\r
+ const TP_COMMA = 40;\r
+ const TP_MATH = 41;\r
+ const TP_UNIMATH = 42;\r
+ const TP_ANDSYM = 43;\r
+ const TP_ISIN = 44;\r
+ const TP_ISDIVBY = 45;\r
+ const TP_ISNOTDIVBY = 46;\r
+ const TP_ISEVEN = 47;\r
+ const TP_ISNOTEVEN = 48;\r
+ const TP_ISEVENBY = 49;\r
+ const TP_ISNOTEVENBY = 50;\r
+ const TP_ISODD = 51;\r
+ const TP_ISNOTODD = 52;\r
+ const TP_ISODDBY = 53;\r
+ const TP_ISNOTODDBY = 54;\r
+ const TP_INSTANCEOF = 55;\r
+ const TP_OPENP = 56;\r
+ const TP_CLOSEP = 57;\r
+ const TP_QMARK = 58;\r
+ const TP_NOT = 59;\r
+ const TP_TYPECAST = 60;\r
+ const TP_DOT = 61;\r
+ const TP_BOOLEAN = 62;\r
+ const TP_NULL = 63;\r
+ const TP_SINGLEQUOTESTRING = 64;\r
+ const TP_DOUBLECOLON = 65;\r
+ const TP_AT = 66;\r
+ const TP_HATCH = 67;\r
+ const TP_OPENB = 68;\r
+ const TP_CLOSEB = 69;\r
+ const TP_EQUALS = 70;\r
+ const TP_NOTEQUALS = 71;\r
+ const TP_GREATERTHAN = 72;\r
+ const TP_LESSTHAN = 73;\r
+ const TP_GREATEREQUAL = 74;\r
+ const TP_LESSEQUAL = 75;\r
+ const TP_IDENTITY = 76;\r
+ const TP_NONEIDENTITY = 77;\r
+ const TP_MOD = 78;\r
+ const TP_LAND = 79;\r
+ const TP_LOR = 80;\r
+ const TP_LXOR = 81;\r
+ const TP_QUOTE = 82;\r
+ const TP_BACKTICK = 83;\r
+ const TP_DOLLARID = 84;\r
+ const YY_NO_ACTION = 585;\r
+ const YY_ACCEPT_ACTION = 584;\r
+ const YY_ERROR_ACTION = 583;\r
\r
- const YY_SZ_ACTTAB = 1771;\r
+ const YY_SZ_ACTTAB = 1995;\r
static public $yy_action = array(\r
- /* 0 */ 19, 25, 98, 62, 192, 106, 376, 210, 202, 48,\r
- /* 10 */ 224, 228, 42, 214, 22, 188, 129, 225, 330, 95,\r
- /* 20 */ 202, 92, 11, 96, 143, 52, 50, 22, 300, 301,\r
- /* 30 */ 312, 61, 97, 282, 65, 14, 19, 143, 100, 194,\r
- /* 40 */ 344, 339, 202, 340, 141, 48, 612, 59, 273, 332,\r
- /* 50 */ 335, 202, 129, 225, 60, 346, 345, 51, 26, 304,\r
- /* 60 */ 28, 52, 50, 226, 300, 301, 312, 61, 47, 49,\r
- /* 70 */ 65, 14, 264, 19, 9, 89, 209, 253, 344, 339,\r
- /* 80 */ 328, 340, 48, 229, 267, 27, 362, 100, 157, 129,\r
- /* 90 */ 225, 2, 60, 30, 345, 26, 317, 33, 52, 50,\r
- /* 100 */ 202, 300, 301, 312, 61, 285, 240, 65, 14, 19,\r
- /* 110 */ 22, 89, 209, 30, 310, 254, 317, 32, 48, 65,\r
- /* 120 */ 143, 51, 269, 326, 266, 129, 225, 217, 258, 476,\r
- /* 130 */ 51, 5, 47, 49, 8, 50, 476, 300, 301, 312,\r
- /* 140 */ 61, 47, 49, 65, 14, 19, 216, 89, 199, 64,\r
- /* 150 */ 22, 274, 324, 277, 48, 236, 275, 239, 475, 214,\r
- /* 160 */ 143, 129, 225, 30, 368, 214, 317, 26, 187, 303,\r
- /* 170 */ 52, 50, 351, 300, 301, 312, 61, 1, 218, 65,\r
- /* 180 */ 14, 19, 303, 100, 203, 150, 30, 369, 202, 317,\r
- /* 190 */ 48, 186, 100, 241, 127, 22, 30, 129, 225, 317,\r
- /* 200 */ 304, 248, 256, 26, 202, 143, 52, 50, 391, 300,\r
- /* 210 */ 301, 312, 61, 289, 39, 65, 14, 19, 191, 100,\r
- /* 220 */ 213, 40, 109, 4, 65, 56, 48, 30, 22, 216,\r
- /* 230 */ 317, 32, 287, 129, 225, 138, 270, 479, 143, 26,\r
- /* 240 */ 386, 186, 52, 50, 479, 300, 301, 312, 61, 202,\r
- /* 250 */ 304, 65, 14, 19, 29, 100, 200, 56, 30, 367,\r
- /* 260 */ 30, 317, 48, 317, 39, 406, 313, 3, 10, 129,\r
- /* 270 */ 207, 30, 370, 214, 317, 26, 23, 303, 52, 50,\r
- /* 280 */ 156, 300, 301, 312, 61, 53, 186, 65, 14, 19,\r
- /* 290 */ 293, 89, 193, 221, 352, 304, 388, 177, 48, 246,\r
- /* 300 */ 320, 214, 319, 109, 350, 129, 225, 144, 56, 242,\r
- /* 310 */ 63, 16, 303, 186, 8, 50, 147, 300, 301, 312,\r
- /* 320 */ 61, 386, 304, 65, 14, 19, 186, 103, 209, 192,\r
- /* 330 */ 202, 304, 281, 153, 48, 327, 83, 42, 293, 190,\r
- /* 340 */ 41, 129, 225, 306, 53, 238, 90, 5, 304, 39,\r
- /* 350 */ 8, 50, 164, 300, 301, 312, 61, 214, 202, 65,\r
- /* 360 */ 14, 19, 186, 89, 209, 78, 271, 304, 43, 152,\r
- /* 370 */ 48, 333, 332, 335, 220, 185, 350, 129, 225, 306,\r
- /* 380 */ 262, 349, 63, 16, 304, 39, 8, 50, 146, 300,\r
- /* 390 */ 301, 312, 61, 35, 348, 65, 14, 19, 9, 100,\r
- /* 400 */ 213, 140, 404, 304, 261, 374, 48, 189, 360, 214,\r
- /* 410 */ 373, 202, 214, 129, 225, 214, 304, 214, 9, 26,\r
- /* 420 */ 202, 45, 52, 50, 245, 300, 301, 312, 61, 260,\r
- /* 430 */ 90, 65, 31, 400, 396, 395, 397, 398, 399, 380,\r
- /* 440 */ 379, 361, 6, 7, 296, 359, 13, 12, 358, 354,\r
- /* 450 */ 18, 17, 342, 169, 68, 44, 202, 101, 290, 214,\r
- /* 460 */ 168, 135, 353, 355, 356, 19, 30, 100, 208, 317,\r
- /* 470 */ 375, 372, 268, 378, 48, 85, 304, 214, 214, 366,\r
- /* 480 */ 214, 129, 225, 279, 278, 223, 214, 26, 306, 391,\r
- /* 490 */ 52, 50, 66, 300, 301, 312, 61, 21, 173, 65,\r
- /* 500 */ 133, 6, 7, 296, 359, 13, 12, 358, 354, 18,\r
- /* 510 */ 17, 365, 389, 214, 391, 384, 186, 305, 214, 214,\r
- /* 520 */ 181, 353, 355, 356, 214, 319, 6, 7, 296, 359,\r
- /* 530 */ 13, 12, 358, 354, 18, 17, 364, 155, 323, 24,\r
- /* 540 */ 322, 178, 202, 377, 357, 214, 353, 355, 356, 130,\r
- /* 550 */ 214, 214, 6, 7, 296, 359, 13, 12, 358, 354,\r
- /* 560 */ 18, 17, 30, 391, 252, 211, 159, 371, 314, 311,\r
- /* 570 */ 142, 283, 353, 355, 356, 214, 214, 154, 214, 136,\r
- /* 580 */ 6, 7, 296, 359, 13, 12, 358, 354, 18, 17,\r
- /* 590 */ 215, 82, 304, 30, 304, 390, 247, 341, 331, 82,\r
- /* 600 */ 353, 355, 356, 255, 214, 6, 7, 296, 359, 13,\r
- /* 610 */ 12, 358, 354, 18, 17, 214, 70, 202, 45, 235,\r
- /* 620 */ 90, 325, 90, 250, 82, 353, 355, 356, 128, 362,\r
- /* 630 */ 400, 396, 395, 397, 398, 399, 380, 379, 361, 251,\r
- /* 640 */ 205, 107, 391, 202, 45, 145, 6, 7, 296, 359,\r
- /* 650 */ 13, 12, 358, 354, 18, 17, 400, 396, 395, 397,\r
- /* 660 */ 398, 399, 380, 379, 361, 131, 353, 355, 356, 6,\r
- /* 670 */ 7, 296, 359, 13, 12, 358, 354, 18, 17, 391,\r
- /* 680 */ 334, 80, 299, 338, 347, 73, 132, 477, 257, 353,\r
- /* 690 */ 355, 356, 175, 165, 477, 60, 475, 319, 19, 387,\r
- /* 700 */ 391, 322, 387, 214, 151, 163, 180, 234, 304, 233,\r
- /* 710 */ 302, 319, 233, 109, 129, 158, 109, 38, 88, 304,\r
- /* 720 */ 304, 237, 315, 202, 45, 309, 321, 336, 309, 394,\r
- /* 730 */ 304, 386, 202, 45, 386, 276, 400, 396, 395, 397,\r
- /* 740 */ 398, 399, 380, 379, 361, 400, 396, 395, 397, 398,\r
- /* 750 */ 399, 380, 379, 361, 403, 387, 34, 81, 337, 79,\r
- /* 760 */ 318, 214, 387, 197, 183, 233, 74, 272, 124, 109,\r
- /* 770 */ 401, 391, 233, 391, 227, 36, 109, 392, 93, 295,\r
- /* 780 */ 201, 309, 294, 240, 405, 53, 294, 386, 309, 28,\r
- /* 790 */ 202, 45, 363, 102, 386, 329, 71, 20, 111, 381,\r
- /* 800 */ 229, 20, 263, 400, 396, 395, 397, 398, 399, 380,\r
- /* 810 */ 379, 361, 387, 129, 1, 99, 23, 129, 265, 343,\r
- /* 820 */ 204, 320, 233, 55, 105, 57, 109, 43, 280, 214,\r
- /* 830 */ 160, 108, 292, 46, 392, 322, 219, 201, 309, 286,\r
- /* 840 */ 387, 230, 306, 382, 386, 91, 15, 336, 249, 363,\r
- /* 850 */ 233, 77, 284, 117, 109, 336, 336, 243, 336, 37,\r
- /* 860 */ 288, 336, 392, 37, 288, 201, 309, 336, 387, 336,\r
- /* 870 */ 336, 336, 386, 336, 336, 336, 249, 363, 233, 54,\r
- /* 880 */ 110, 58, 109, 336, 336, 336, 336, 336, 336, 336,\r
- /* 890 */ 392, 336, 336, 201, 309, 336, 387, 336, 336, 336,\r
- /* 900 */ 386, 336, 336, 336, 249, 363, 233, 77, 336, 125,\r
- /* 910 */ 109, 336, 336, 336, 336, 336, 336, 336, 392, 336,\r
- /* 920 */ 336, 201, 309, 336, 336, 336, 387, 336, 386, 336,\r
- /* 930 */ 336, 336, 336, 363, 249, 336, 233, 77, 336, 113,\r
- /* 940 */ 109, 336, 336, 336, 336, 387, 336, 336, 392, 336,\r
- /* 950 */ 336, 201, 309, 291, 387, 233, 336, 336, 386, 109,\r
- /* 960 */ 336, 336, 259, 363, 233, 77, 336, 126, 109, 336,\r
- /* 970 */ 336, 309, 336, 336, 336, 336, 392, 386, 336, 201,\r
- /* 980 */ 309, 336, 387, 336, 336, 336, 386, 336, 336, 336,\r
- /* 990 */ 249, 363, 233, 77, 336, 122, 109, 336, 336, 336,\r
- /* 1000 */ 336, 336, 336, 336, 392, 336, 336, 201, 309, 336,\r
- /* 1010 */ 387, 336, 336, 336, 386, 336, 336, 336, 249, 363,\r
- /* 1020 */ 233, 77, 336, 115, 109, 336, 336, 336, 336, 336,\r
- /* 1030 */ 336, 336, 392, 336, 336, 201, 309, 336, 336, 336,\r
- /* 1040 */ 387, 336, 386, 336, 336, 336, 336, 363, 249, 336,\r
- /* 1050 */ 233, 76, 336, 116, 109, 336, 336, 336, 336, 387,\r
- /* 1060 */ 336, 336, 392, 336, 336, 201, 309, 297, 387, 233,\r
- /* 1070 */ 336, 336, 386, 109, 336, 336, 249, 363, 233, 77,\r
- /* 1080 */ 336, 120, 109, 336, 336, 309, 336, 336, 336, 336,\r
- /* 1090 */ 392, 386, 336, 201, 309, 336, 387, 336, 336, 336,\r
- /* 1100 */ 386, 336, 336, 336, 249, 363, 233, 77, 336, 123,\r
- /* 1110 */ 109, 336, 336, 336, 336, 336, 336, 336, 392, 336,\r
- /* 1120 */ 336, 201, 309, 336, 387, 336, 336, 336, 386, 336,\r
- /* 1130 */ 336, 336, 244, 363, 233, 179, 336, 336, 109, 336,\r
- /* 1140 */ 336, 336, 336, 336, 336, 336, 392, 336, 336, 201,\r
- /* 1150 */ 309, 336, 336, 336, 336, 336, 386, 336, 336, 336,\r
- /* 1160 */ 387, 336, 336, 336, 206, 393, 336, 336, 249, 336,\r
- /* 1170 */ 233, 77, 336, 118, 109, 336, 336, 336, 336, 387,\r
- /* 1180 */ 336, 336, 392, 336, 336, 201, 309, 316, 387, 233,\r
- /* 1190 */ 336, 336, 386, 109, 336, 336, 249, 363, 233, 77,\r
- /* 1200 */ 336, 121, 109, 336, 336, 309, 336, 336, 336, 336,\r
- /* 1210 */ 392, 386, 336, 201, 309, 336, 387, 336, 336, 336,\r
- /* 1220 */ 386, 336, 336, 336, 249, 363, 233, 76, 336, 114,\r
- /* 1230 */ 109, 336, 336, 336, 336, 336, 336, 336, 392, 336,\r
- /* 1240 */ 336, 201, 309, 336, 387, 336, 336, 336, 386, 336,\r
- /* 1250 */ 336, 336, 249, 363, 233, 77, 336, 119, 109, 336,\r
- /* 1260 */ 336, 336, 336, 336, 336, 336, 392, 336, 336, 201,\r
- /* 1270 */ 309, 336, 336, 336, 387, 336, 386, 336, 336, 336,\r
- /* 1280 */ 336, 363, 249, 336, 233, 75, 336, 112, 109, 336,\r
- /* 1290 */ 336, 336, 336, 336, 336, 336, 392, 336, 336, 201,\r
- /* 1300 */ 309, 336, 387, 336, 336, 336, 386, 336, 336, 336,\r
- /* 1310 */ 244, 363, 233, 179, 336, 387, 109, 336, 336, 336,\r
- /* 1320 */ 336, 336, 336, 307, 392, 233, 161, 201, 309, 109,\r
- /* 1330 */ 336, 336, 336, 336, 386, 336, 336, 392, 336, 336,\r
- /* 1340 */ 201, 309, 387, 385, 222, 336, 336, 386, 336, 336,\r
- /* 1350 */ 307, 336, 233, 161, 336, 336, 109, 336, 336, 336,\r
- /* 1360 */ 336, 336, 387, 336, 392, 336, 336, 201, 309, 336,\r
- /* 1370 */ 307, 231, 233, 161, 386, 387, 109, 336, 336, 336,\r
- /* 1380 */ 336, 336, 336, 307, 392, 233, 161, 201, 309, 109,\r
- /* 1390 */ 336, 383, 336, 336, 386, 336, 336, 392, 387, 336,\r
- /* 1400 */ 201, 309, 336, 387, 232, 336, 87, 386, 86, 67,\r
- /* 1410 */ 104, 87, 94, 84, 72, 104, 336, 94, 336, 336,\r
- /* 1420 */ 392, 336, 336, 201, 309, 392, 336, 336, 201, 309,\r
- /* 1430 */ 386, 387, 336, 336, 336, 386, 336, 336, 336, 307,\r
- /* 1440 */ 387, 212, 137, 336, 336, 109, 336, 336, 307, 336,\r
- /* 1450 */ 233, 184, 336, 392, 109, 336, 201, 309, 336, 387,\r
- /* 1460 */ 336, 336, 392, 386, 336, 201, 309, 307, 336, 233,\r
- /* 1470 */ 176, 336, 386, 109, 336, 336, 336, 336, 336, 387,\r
- /* 1480 */ 336, 392, 336, 336, 201, 309, 336, 307, 387, 233,\r
- /* 1490 */ 134, 386, 336, 109, 336, 336, 307, 336, 233, 172,\r
- /* 1500 */ 336, 392, 109, 336, 201, 309, 336, 336, 387, 336,\r
- /* 1510 */ 392, 386, 336, 201, 309, 336, 307, 387, 233, 170,\r
- /* 1520 */ 386, 336, 109, 336, 336, 307, 336, 233, 149, 336,\r
- /* 1530 */ 392, 109, 336, 201, 309, 336, 387, 336, 336, 392,\r
- /* 1540 */ 386, 336, 201, 309, 307, 387, 233, 174, 336, 386,\r
- /* 1550 */ 109, 336, 336, 307, 336, 233, 166, 336, 392, 109,\r
- /* 1560 */ 336, 201, 309, 336, 336, 336, 336, 392, 386, 336,\r
- /* 1570 */ 201, 309, 387, 336, 336, 336, 336, 386, 336, 336,\r
- /* 1580 */ 307, 387, 233, 167, 336, 336, 109, 336, 336, 307,\r
- /* 1590 */ 336, 233, 171, 336, 392, 109, 336, 201, 309, 336,\r
- /* 1600 */ 336, 387, 336, 392, 386, 336, 201, 309, 336, 307,\r
- /* 1610 */ 387, 233, 162, 386, 336, 109, 336, 336, 307, 336,\r
- /* 1620 */ 233, 148, 336, 392, 109, 336, 201, 309, 336, 336,\r
- /* 1630 */ 387, 336, 392, 386, 336, 201, 309, 336, 307, 336,\r
- /* 1640 */ 233, 69, 386, 387, 109, 336, 336, 336, 336, 336,\r
- /* 1650 */ 387, 307, 392, 233, 182, 201, 309, 109, 298, 336,\r
- /* 1660 */ 233, 336, 386, 336, 109, 392, 336, 336, 201, 309,\r
- /* 1670 */ 387, 336, 336, 336, 336, 386, 309, 336, 307, 387,\r
- /* 1680 */ 233, 139, 386, 336, 109, 336, 336, 307, 336, 233,\r
- /* 1690 */ 336, 336, 392, 109, 336, 201, 309, 336, 387, 387,\r
- /* 1700 */ 336, 392, 386, 336, 198, 309, 307, 308, 233, 233,\r
- /* 1710 */ 336, 386, 109, 109, 336, 336, 336, 336, 387, 336,\r
- /* 1720 */ 392, 336, 336, 196, 309, 309, 307, 336, 233, 336,\r
- /* 1730 */ 386, 386, 109, 336, 336, 336, 336, 336, 387, 336,\r
- /* 1740 */ 392, 336, 336, 195, 309, 336, 402, 336, 233, 336,\r
- /* 1750 */ 386, 336, 109, 336, 336, 336, 336, 336, 336, 336,\r
- /* 1760 */ 336, 336, 336, 336, 309, 336, 336, 336, 336, 336,\r
- /* 1770 */ 386,\r
+ /* 0 */ 373, 584, 55, 252, 258, 280, 8, 196, 283, 115,\r
+ /* 10 */ 59, 107, 247, 119, 255, 112, 257, 122, 41, 43,\r
+ /* 20 */ 45, 40, 25, 27, 299, 298, 20, 28, 296, 297,\r
+ /* 30 */ 15, 14, 8, 330, 31, 17, 294, 239, 322, 35,\r
+ /* 40 */ 196, 112, 146, 294, 326, 337, 162, 312, 313, 314,\r
+ /* 50 */ 311, 310, 306, 307, 308, 309, 338, 339, 369, 196,\r
+ /* 60 */ 304, 23, 24, 202, 34, 37, 17, 360, 7, 322,\r
+ /* 70 */ 41, 43, 45, 40, 25, 27, 299, 298, 20, 28,\r
+ /* 80 */ 296, 297, 15, 14, 452, 17, 276, 17, 322, 36,\r
+ /* 90 */ 322, 452, 251, 258, 280, 2, 253, 109, 201, 312,\r
+ /* 100 */ 313, 314, 311, 310, 306, 307, 308, 309, 338, 339,\r
+ /* 110 */ 369, 133, 219, 17, 158, 42, 322, 8, 38, 213,\r
+ /* 120 */ 109, 154, 114, 365, 17, 351, 112, 322, 304, 22,\r
+ /* 130 */ 196, 227, 47, 46, 242, 315, 316, 317, 328, 243,\r
+ /* 140 */ 60, 41, 43, 45, 40, 25, 27, 299, 298, 20,\r
+ /* 150 */ 28, 296, 297, 15, 14, 56, 17, 231, 10, 322,\r
+ /* 160 */ 35, 54, 4, 60, 54, 32, 17, 117, 272, 241,\r
+ /* 170 */ 312, 313, 314, 311, 310, 306, 307, 308, 309, 338,\r
+ /* 180 */ 339, 369, 268, 41, 43, 45, 40, 25, 27, 299,\r
+ /* 190 */ 298, 20, 28, 296, 297, 15, 14, 139, 348, 282,\r
+ /* 200 */ 231, 209, 109, 218, 344, 273, 274, 185, 17, 358,\r
+ /* 210 */ 327, 322, 312, 313, 314, 311, 310, 306, 307, 308,\r
+ /* 220 */ 309, 338, 339, 369, 202, 41, 43, 45, 40, 25,\r
+ /* 230 */ 27, 299, 298, 20, 28, 296, 297, 15, 14, 97,\r
+ /* 240 */ 451, 324, 267, 180, 347, 60, 368, 196, 182, 265,\r
+ /* 250 */ 294, 207, 327, 196, 312, 313, 314, 311, 310, 306,\r
+ /* 260 */ 307, 308, 309, 338, 339, 369, 16, 41, 43, 45,\r
+ /* 270 */ 40, 25, 27, 299, 298, 20, 28, 296, 297, 15,\r
+ /* 280 */ 14, 149, 96, 261, 17, 8, 182, 199, 229, 116,\r
+ /* 290 */ 202, 54, 278, 101, 112, 304, 312, 313, 314, 311,\r
+ /* 300 */ 310, 306, 307, 308, 309, 338, 339, 369, 249, 41,\r
+ /* 310 */ 43, 45, 40, 25, 27, 299, 298, 20, 28, 296,\r
+ /* 320 */ 297, 15, 14, 156, 190, 224, 17, 321, 184, 322,\r
+ /* 330 */ 320, 13, 166, 347, 165, 347, 302, 304, 312, 313,\r
+ /* 340 */ 314, 311, 310, 306, 307, 308, 309, 338, 339, 369,\r
+ /* 350 */ 202, 287, 12, 41, 43, 45, 40, 25, 27, 299,\r
+ /* 360 */ 298, 20, 28, 296, 297, 15, 14, 202, 100, 244,\r
+ /* 370 */ 198, 362, 372, 381, 202, 19, 186, 222, 196, 114,\r
+ /* 380 */ 196, 327, 312, 313, 314, 311, 310, 306, 307, 308,\r
+ /* 390 */ 309, 338, 339, 369, 196, 328, 9, 23, 24, 240,\r
+ /* 400 */ 98, 271, 65, 21, 44, 41, 43, 45, 40, 25,\r
+ /* 410 */ 27, 299, 298, 20, 28, 296, 297, 15, 14, 145,\r
+ /* 420 */ 190, 44, 171, 64, 187, 367, 238, 13, 44, 353,\r
+ /* 430 */ 168, 5, 152, 304, 312, 313, 314, 311, 310, 306,\r
+ /* 440 */ 307, 308, 309, 338, 339, 369, 304, 41, 43, 45,\r
+ /* 450 */ 40, 25, 27, 299, 298, 20, 28, 296, 297, 15,\r
+ /* 460 */ 14, 8, 105, 236, 98, 342, 343, 380, 263, 98,\r
+ /* 470 */ 112, 183, 196, 196, 196, 327, 312, 313, 314, 311,\r
+ /* 480 */ 310, 306, 307, 308, 309, 338, 339, 369, 147, 41,\r
+ /* 490 */ 43, 45, 40, 25, 27, 299, 298, 20, 28, 296,\r
+ /* 500 */ 297, 15, 14, 332, 137, 329, 143, 281, 371, 288,\r
+ /* 510 */ 196, 267, 196, 279, 196, 196, 153, 327, 312, 313,\r
+ /* 520 */ 314, 311, 310, 306, 307, 308, 309, 338, 339, 369,\r
+ /* 530 */ 304, 41, 43, 45, 40, 25, 27, 299, 298, 20,\r
+ /* 540 */ 28, 296, 297, 15, 14, 148, 361, 293, 159, 341,\r
+ /* 550 */ 366, 6, 291, 196, 196, 270, 196, 196, 233, 304,\r
+ /* 560 */ 312, 313, 314, 311, 310, 306, 307, 308, 309, 338,\r
+ /* 570 */ 339, 369, 228, 41, 43, 45, 40, 25, 27, 299,\r
+ /* 580 */ 298, 20, 28, 296, 297, 15, 14, 349, 225, 305,\r
+ /* 590 */ 379, 174, 347, 63, 196, 26, 196, 196, 54, 110,\r
+ /* 600 */ 326, 178, 312, 313, 314, 311, 310, 306, 307, 308,\r
+ /* 610 */ 309, 338, 339, 369, 48, 41, 43, 45, 40, 25,\r
+ /* 620 */ 27, 299, 298, 20, 28, 296, 297, 15, 14, 202,\r
+ /* 630 */ 215, 333, 230, 116, 108, 209, 206, 116, 123, 221,\r
+ /* 640 */ 226, 246, 196, 262, 312, 313, 314, 311, 310, 306,\r
+ /* 650 */ 307, 308, 309, 338, 339, 369, 175, 128, 196, 303,\r
+ /* 660 */ 170, 289, 116, 250, 7, 41, 43, 45, 40, 25,\r
+ /* 670 */ 27, 299, 298, 20, 28, 296, 297, 15, 14, 144,\r
+ /* 680 */ 383, 275, 118, 26, 188, 5, 325, 113, 285, 211,\r
+ /* 690 */ 215, 334, 336, 304, 312, 313, 314, 311, 310, 306,\r
+ /* 700 */ 307, 308, 309, 338, 339, 369, 323, 41, 43, 45,\r
+ /* 710 */ 40, 25, 27, 299, 298, 20, 28, 296, 297, 15,\r
+ /* 720 */ 14, 18, 135, 245, 346, 277, 292, 62, 355, 335,\r
+ /* 730 */ 259, 126, 300, 242, 157, 327, 312, 313, 314, 311,\r
+ /* 740 */ 310, 306, 307, 308, 309, 338, 339, 369, 304, 354,\r
+ /* 750 */ 294, 382, 196, 111, 39, 217, 161, 350, 324, 295,\r
+ /* 760 */ 41, 43, 45, 40, 25, 27, 299, 298, 20, 28,\r
+ /* 770 */ 296, 297, 15, 14, 326, 131, 33, 11, 95, 61,\r
+ /* 780 */ 48, 254, 232, 256, 332, 332, 332, 332, 327, 312,\r
+ /* 790 */ 313, 314, 311, 310, 306, 307, 308, 309, 338, 339,\r
+ /* 800 */ 369, 202, 41, 43, 45, 40, 25, 27, 299, 298,\r
+ /* 810 */ 20, 28, 296, 297, 15, 14, 132, 332, 332, 332,\r
+ /* 820 */ 332, 332, 332, 378, 332, 332, 332, 332, 332, 327,\r
+ /* 830 */ 196, 312, 313, 314, 311, 310, 306, 307, 308, 309,\r
+ /* 840 */ 338, 339, 369, 332, 140, 332, 264, 332, 332, 136,\r
+ /* 850 */ 332, 332, 332, 332, 2, 44, 121, 57, 304, 125,\r
+ /* 860 */ 3, 223, 327, 235, 2, 142, 106, 191, 332, 163,\r
+ /* 870 */ 133, 219, 295, 332, 42, 332, 133, 332, 332, 304,\r
+ /* 880 */ 133, 219, 332, 304, 42, 332, 332, 332, 29, 332,\r
+ /* 890 */ 202, 47, 46, 295, 315, 316, 317, 295, 22, 60,\r
+ /* 900 */ 1, 47, 46, 332, 315, 316, 317, 332, 332, 60,\r
+ /* 910 */ 1, 269, 454, 332, 56, 2, 332, 106, 205, 454,\r
+ /* 920 */ 284, 30, 266, 332, 56, 2, 332, 109, 193, 332,\r
+ /* 930 */ 332, 133, 219, 17, 359, 42, 322, 332, 332, 332,\r
+ /* 940 */ 332, 133, 197, 332, 44, 42, 332, 332, 220, 22,\r
+ /* 950 */ 332, 332, 47, 46, 332, 315, 316, 317, 141, 22,\r
+ /* 960 */ 60, 1, 47, 46, 332, 315, 316, 317, 264, 332,\r
+ /* 970 */ 60, 1, 304, 23, 24, 56, 2, 332, 109, 201,\r
+ /* 980 */ 332, 332, 3, 332, 332, 56, 2, 332, 106, 205,\r
+ /* 990 */ 332, 332, 133, 219, 332, 332, 42, 332, 133, 332,\r
+ /* 1000 */ 332, 332, 133, 219, 332, 332, 42, 332, 332, 332,\r
+ /* 1010 */ 22, 332, 332, 47, 46, 332, 315, 316, 317, 151,\r
+ /* 1020 */ 29, 60, 1, 47, 46, 332, 315, 316, 317, 332,\r
+ /* 1030 */ 332, 60, 1, 304, 23, 24, 56, 2, 332, 106,\r
+ /* 1040 */ 194, 332, 290, 30, 266, 332, 56, 2, 332, 106,\r
+ /* 1050 */ 192, 332, 332, 133, 219, 332, 332, 42, 332, 332,\r
+ /* 1060 */ 332, 332, 332, 133, 219, 332, 332, 42, 332, 332,\r
+ /* 1070 */ 332, 22, 332, 332, 47, 46, 332, 315, 316, 317,\r
+ /* 1080 */ 332, 29, 60, 1, 47, 46, 332, 315, 316, 317,\r
+ /* 1090 */ 332, 332, 60, 1, 332, 332, 332, 56, 2, 332,\r
+ /* 1100 */ 120, 205, 332, 332, 332, 160, 332, 56, 2, 332,\r
+ /* 1110 */ 109, 204, 332, 332, 133, 219, 332, 332, 42, 304,\r
+ /* 1120 */ 23, 24, 332, 332, 133, 219, 332, 332, 42, 332,\r
+ /* 1130 */ 332, 332, 22, 332, 332, 47, 46, 332, 315, 316,\r
+ /* 1140 */ 317, 332, 22, 60, 1, 47, 46, 332, 315, 316,\r
+ /* 1150 */ 317, 332, 332, 60, 332, 332, 332, 319, 56, 2,\r
+ /* 1160 */ 332, 109, 203, 332, 332, 155, 332, 208, 56, 332,\r
+ /* 1170 */ 114, 332, 332, 332, 332, 133, 219, 332, 234, 42,\r
+ /* 1180 */ 332, 332, 332, 331, 318, 332, 328, 260, 99, 332,\r
+ /* 1190 */ 352, 356, 357, 22, 332, 332, 47, 46, 332, 315,\r
+ /* 1200 */ 316, 317, 332, 173, 60, 319, 2, 332, 332, 332,\r
+ /* 1210 */ 332, 332, 332, 138, 332, 208, 94, 332, 114, 56,\r
+ /* 1220 */ 332, 332, 133, 332, 332, 319, 370, 332, 332, 332,\r
+ /* 1230 */ 332, 331, 318, 58, 328, 104, 53, 129, 102, 332,\r
+ /* 1240 */ 332, 332, 332, 200, 364, 332, 370, 332, 319, 332,\r
+ /* 1250 */ 332, 331, 318, 332, 328, 319, 58, 332, 103, 51,\r
+ /* 1260 */ 129, 102, 332, 181, 332, 208, 332, 332, 114, 370,\r
+ /* 1270 */ 332, 332, 332, 332, 331, 318, 301, 328, 332, 332,\r
+ /* 1280 */ 332, 331, 318, 319, 328, 332, 332, 319, 332, 332,\r
+ /* 1290 */ 332, 150, 332, 208, 66, 134, 114, 208, 50, 127,\r
+ /* 1300 */ 114, 332, 332, 332, 370, 376, 374, 375, 370, 331,\r
+ /* 1310 */ 318, 332, 328, 331, 318, 319, 328, 332, 332, 210,\r
+ /* 1320 */ 173, 340, 377, 150, 332, 208, 66, 319, 114, 332,\r
+ /* 1330 */ 332, 332, 332, 332, 332, 150, 370, 208, 66, 332,\r
+ /* 1340 */ 114, 331, 318, 332, 328, 332, 332, 332, 370, 319,\r
+ /* 1350 */ 332, 216, 332, 331, 318, 332, 328, 138, 332, 208,\r
+ /* 1360 */ 94, 332, 114, 286, 332, 332, 332, 332, 332, 332,\r
+ /* 1370 */ 370, 332, 332, 319, 332, 331, 318, 332, 328, 332,\r
+ /* 1380 */ 332, 150, 332, 208, 66, 319, 114, 332, 363, 332,\r
+ /* 1390 */ 332, 332, 332, 130, 370, 208, 79, 248, 114, 331,\r
+ /* 1400 */ 318, 332, 328, 332, 332, 319, 370, 332, 332, 212,\r
+ /* 1410 */ 332, 331, 318, 150, 328, 208, 71, 319, 114, 332,\r
+ /* 1420 */ 332, 237, 332, 332, 332, 150, 370, 208, 52, 124,\r
+ /* 1430 */ 114, 331, 318, 332, 328, 332, 332, 332, 370, 319,\r
+ /* 1440 */ 332, 332, 332, 331, 318, 332, 328, 150, 332, 195,\r
+ /* 1450 */ 67, 332, 114, 332, 332, 332, 332, 332, 332, 332,\r
+ /* 1460 */ 370, 332, 332, 319, 332, 331, 318, 332, 328, 332,\r
+ /* 1470 */ 332, 150, 332, 208, 89, 319, 114, 332, 332, 332,\r
+ /* 1480 */ 332, 332, 332, 150, 370, 208, 92, 319, 114, 331,\r
+ /* 1490 */ 318, 332, 328, 332, 332, 150, 370, 208, 70, 319,\r
+ /* 1500 */ 114, 331, 318, 332, 328, 332, 332, 150, 370, 208,\r
+ /* 1510 */ 93, 319, 114, 331, 318, 332, 328, 332, 332, 150,\r
+ /* 1520 */ 370, 208, 88, 332, 114, 331, 318, 332, 328, 332,\r
+ /* 1530 */ 332, 332, 370, 319, 332, 332, 332, 331, 318, 332,\r
+ /* 1540 */ 328, 150, 319, 208, 78, 332, 114, 332, 332, 332,\r
+ /* 1550 */ 150, 332, 208, 81, 370, 114, 332, 332, 332, 331,\r
+ /* 1560 */ 318, 332, 328, 370, 319, 332, 332, 332, 331, 318,\r
+ /* 1570 */ 332, 328, 150, 319, 208, 82, 332, 114, 332, 332,\r
+ /* 1580 */ 332, 150, 332, 208, 73, 370, 114, 332, 332, 332,\r
+ /* 1590 */ 331, 318, 332, 328, 370, 332, 332, 319, 332, 331,\r
+ /* 1600 */ 318, 319, 328, 332, 332, 150, 332, 208, 86, 150,\r
+ /* 1610 */ 114, 208, 80, 332, 114, 332, 332, 332, 370, 332,\r
+ /* 1620 */ 332, 332, 370, 331, 318, 332, 328, 331, 318, 332,\r
+ /* 1630 */ 328, 319, 332, 332, 332, 332, 332, 332, 332, 150,\r
+ /* 1640 */ 319, 208, 76, 332, 114, 332, 332, 332, 150, 332,\r
+ /* 1650 */ 208, 90, 370, 114, 332, 332, 332, 331, 318, 332,\r
+ /* 1660 */ 328, 370, 319, 332, 332, 332, 331, 318, 332, 328,\r
+ /* 1670 */ 150, 319, 208, 83, 332, 114, 332, 332, 332, 150,\r
+ /* 1680 */ 332, 208, 84, 370, 114, 332, 332, 332, 331, 318,\r
+ /* 1690 */ 332, 328, 370, 332, 332, 319, 332, 331, 318, 319,\r
+ /* 1700 */ 328, 332, 332, 150, 332, 208, 75, 150, 114, 208,\r
+ /* 1710 */ 85, 332, 114, 332, 332, 332, 370, 332, 332, 332,\r
+ /* 1720 */ 370, 331, 318, 332, 328, 331, 318, 332, 328, 319,\r
+ /* 1730 */ 332, 332, 332, 332, 332, 332, 332, 150, 319, 208,\r
+ /* 1740 */ 49, 332, 114, 332, 332, 332, 150, 332, 208, 74,\r
+ /* 1750 */ 370, 114, 332, 332, 332, 331, 318, 332, 328, 370,\r
+ /* 1760 */ 319, 332, 332, 332, 331, 318, 332, 328, 150, 319,\r
+ /* 1770 */ 208, 72, 332, 114, 332, 332, 332, 150, 332, 208,\r
+ /* 1780 */ 68, 370, 114, 332, 332, 332, 331, 318, 332, 328,\r
+ /* 1790 */ 370, 332, 332, 319, 332, 331, 318, 319, 328, 332,\r
+ /* 1800 */ 332, 150, 332, 208, 91, 150, 114, 208, 77, 332,\r
+ /* 1810 */ 114, 332, 332, 332, 370, 332, 332, 332, 370, 331,\r
+ /* 1820 */ 318, 332, 328, 331, 318, 332, 328, 319, 332, 332,\r
+ /* 1830 */ 332, 332, 332, 332, 332, 150, 319, 208, 87, 332,\r
+ /* 1840 */ 114, 332, 332, 332, 150, 332, 208, 69, 370, 114,\r
+ /* 1850 */ 332, 332, 332, 331, 318, 332, 328, 370, 319, 202,\r
+ /* 1860 */ 332, 332, 331, 318, 332, 328, 172, 319, 208, 332,\r
+ /* 1870 */ 332, 114, 332, 332, 332, 177, 332, 208, 332, 332,\r
+ /* 1880 */ 114, 345, 332, 332, 331, 318, 214, 328, 196, 332,\r
+ /* 1890 */ 332, 319, 332, 331, 318, 319, 328, 332, 332, 189,\r
+ /* 1900 */ 332, 208, 332, 169, 114, 208, 332, 332, 114, 332,\r
+ /* 1910 */ 332, 332, 332, 332, 8, 332, 332, 331, 318, 332,\r
+ /* 1920 */ 328, 331, 318, 112, 328, 319, 332, 332, 332, 332,\r
+ /* 1930 */ 332, 332, 332, 179, 319, 208, 332, 332, 114, 332,\r
+ /* 1940 */ 332, 332, 176, 332, 208, 332, 332, 114, 332, 332,\r
+ /* 1950 */ 332, 331, 318, 332, 328, 332, 319, 332, 332, 332,\r
+ /* 1960 */ 331, 318, 332, 328, 167, 319, 208, 332, 332, 114,\r
+ /* 1970 */ 332, 332, 332, 164, 332, 208, 332, 332, 114, 332,\r
+ /* 1980 */ 332, 332, 331, 318, 332, 328, 332, 332, 332, 332,\r
+ /* 1990 */ 332, 331, 318, 332, 328,\r
);\r
static public $yy_lookahead = array(\r
- /* 0 */ 19, 37, 21, 22, 46, 24, 20, 26, 56, 28,\r
- /* 10 */ 29, 25, 54, 27, 41, 20, 35, 36, 6, 7,\r
- /* 20 */ 56, 9, 41, 11, 51, 44, 45, 41, 47, 48,\r
- /* 30 */ 49, 50, 21, 81, 53, 54, 19, 51, 21, 22,\r
- /* 40 */ 2, 3, 56, 5, 96, 28, 84, 85, 86, 87,\r
- /* 50 */ 88, 56, 35, 36, 16, 17, 18, 28, 41, 111,\r
- /* 60 */ 23, 44, 45, 22, 47, 48, 49, 50, 39, 40,\r
- /* 70 */ 53, 54, 55, 19, 126, 21, 22, 36, 2, 3,\r
- /* 80 */ 10, 5, 28, 46, 55, 19, 42, 21, 22, 35,\r
- /* 90 */ 36, 23, 16, 19, 18, 41, 22, 23, 44, 45,\r
- /* 100 */ 56, 47, 48, 49, 50, 31, 38, 53, 54, 19,\r
- /* 110 */ 41, 21, 22, 19, 122, 46, 22, 23, 28, 53,\r
- /* 120 */ 51, 28, 20, 8, 55, 35, 36, 21, 22, 20,\r
- /* 130 */ 28, 41, 39, 40, 44, 45, 27, 47, 48, 49,\r
- /* 140 */ 50, 39, 40, 53, 54, 19, 52, 21, 22, 22,\r
- /* 150 */ 41, 24, 20, 26, 28, 33, 29, 25, 20, 27,\r
- /* 160 */ 51, 35, 36, 19, 20, 27, 22, 41, 20, 31,\r
- /* 170 */ 44, 45, 22, 47, 48, 49, 50, 23, 34, 53,\r
- /* 180 */ 54, 19, 31, 21, 22, 96, 19, 20, 56, 22,\r
- /* 190 */ 28, 102, 21, 22, 107, 41, 19, 35, 36, 22,\r
- /* 200 */ 111, 34, 52, 41, 56, 51, 44, 45, 121, 47,\r
- /* 210 */ 48, 49, 50, 20, 125, 53, 54, 19, 97, 21,\r
- /* 220 */ 22, 34, 101, 23, 53, 25, 28, 19, 41, 52,\r
- /* 230 */ 22, 23, 81, 35, 36, 96, 115, 20, 51, 41,\r
- /* 240 */ 119, 102, 44, 45, 27, 47, 48, 49, 50, 56,\r
- /* 250 */ 111, 53, 54, 19, 19, 21, 22, 25, 19, 20,\r
- /* 260 */ 19, 22, 28, 22, 125, 20, 20, 27, 28, 35,\r
- /* 270 */ 36, 19, 20, 27, 22, 41, 41, 31, 44, 45,\r
- /* 280 */ 96, 47, 48, 49, 50, 68, 102, 53, 54, 19,\r
- /* 290 */ 87, 21, 22, 52, 20, 111, 20, 117, 28, 97,\r
- /* 300 */ 120, 27, 122, 101, 88, 35, 36, 96, 25, 93,\r
- /* 310 */ 94, 41, 31, 102, 44, 45, 96, 47, 48, 49,\r
- /* 320 */ 50, 119, 111, 53, 54, 19, 102, 21, 22, 46,\r
- /* 330 */ 56, 111, 129, 96, 28, 13, 14, 54, 87, 102,\r
- /* 340 */ 38, 35, 36, 123, 68, 91, 92, 41, 111, 125,\r
- /* 350 */ 44, 45, 96, 47, 48, 49, 50, 27, 56, 53,\r
- /* 360 */ 54, 19, 102, 21, 22, 114, 20, 111, 38, 96,\r
- /* 370 */ 28, 86, 87, 88, 33, 102, 88, 35, 36, 123,\r
- /* 380 */ 129, 93, 94, 41, 111, 125, 44, 45, 96, 47,\r
- /* 390 */ 48, 49, 50, 38, 17, 53, 54, 19, 126, 21,\r
- /* 400 */ 22, 96, 20, 111, 20, 20, 28, 102, 20, 27,\r
- /* 410 */ 20, 56, 27, 35, 36, 27, 111, 27, 126, 41,\r
- /* 420 */ 56, 57, 44, 45, 22, 47, 48, 49, 50, 91,\r
- /* 430 */ 92, 53, 34, 69, 70, 71, 72, 73, 74, 75,\r
- /* 440 */ 76, 77, 58, 59, 60, 61, 62, 63, 64, 65,\r
- /* 450 */ 66, 67, 20, 30, 103, 19, 56, 21, 22, 27,\r
- /* 460 */ 37, 96, 78, 79, 80, 19, 19, 21, 22, 22,\r
- /* 470 */ 20, 20, 36, 20, 28, 107, 111, 27, 27, 20,\r
- /* 480 */ 27, 35, 36, 47, 48, 42, 27, 41, 123, 121,\r
- /* 490 */ 44, 45, 118, 47, 48, 49, 50, 37, 30, 53,\r
- /* 500 */ 107, 58, 59, 60, 61, 62, 63, 64, 65, 66,\r
- /* 510 */ 67, 20, 20, 27, 121, 55, 102, 20, 27, 27,\r
- /* 520 */ 117, 78, 79, 80, 27, 122, 58, 59, 60, 61,\r
- /* 530 */ 62, 63, 64, 65, 66, 67, 42, 118, 20, 41,\r
- /* 540 */ 121, 103, 56, 20, 20, 27, 78, 79, 80, 107,\r
- /* 550 */ 27, 27, 58, 59, 60, 61, 62, 63, 64, 65,\r
- /* 560 */ 66, 67, 19, 121, 42, 22, 118, 20, 20, 20,\r
- /* 570 */ 118, 20, 78, 79, 80, 27, 27, 96, 27, 96,\r
- /* 580 */ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,\r
- /* 590 */ 89, 90, 111, 19, 111, 22, 22, 20, 89, 90,\r
- /* 600 */ 78, 79, 80, 42, 27, 58, 59, 60, 61, 62,\r
- /* 610 */ 63, 64, 65, 66, 67, 27, 103, 56, 57, 91,\r
- /* 620 */ 92, 91, 92, 89, 90, 78, 79, 80, 107, 42,\r
- /* 630 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 104,\r
- /* 640 */ 105, 42, 121, 56, 57, 118, 58, 59, 60, 61,\r
- /* 650 */ 62, 63, 64, 65, 66, 67, 69, 70, 71, 72,\r
- /* 660 */ 73, 74, 75, 76, 77, 107, 78, 79, 80, 58,\r
- /* 670 */ 59, 60, 61, 62, 63, 64, 65, 66, 67, 121,\r
- /* 680 */ 1, 2, 36, 4, 5, 103, 107, 20, 108, 78,\r
- /* 690 */ 79, 80, 117, 96, 27, 16, 20, 122, 19, 87,\r
- /* 700 */ 121, 121, 87, 27, 96, 96, 117, 95, 111, 97,\r
- /* 710 */ 95, 122, 97, 101, 35, 96, 101, 32, 21, 111,\r
- /* 720 */ 111, 109, 22, 56, 57, 113, 22, 3, 113, 42,\r
- /* 730 */ 111, 119, 56, 57, 119, 20, 69, 70, 71, 72,\r
- /* 740 */ 73, 74, 75, 76, 77, 69, 70, 71, 72, 73,\r
- /* 750 */ 74, 75, 76, 77, 20, 87, 43, 107, 15, 107,\r
- /* 760 */ 22, 27, 87, 95, 22, 97, 98, 99, 100, 101,\r
- /* 770 */ 95, 121, 97, 121, 22, 43, 101, 109, 21, 20,\r
- /* 780 */ 112, 113, 4, 38, 109, 68, 4, 119, 113, 23,\r
- /* 790 */ 56, 57, 124, 21, 119, 12, 22, 19, 27, 53,\r
- /* 800 */ 46, 19, 55, 69, 70, 71, 72, 73, 74, 75,\r
- /* 810 */ 76, 77, 87, 35, 23, 21, 41, 35, 42, 111,\r
- /* 820 */ 95, 120, 97, 98, 99, 100, 101, 38, 50, 27,\r
- /* 830 */ 118, 115, 50, 27, 109, 121, 110, 112, 113, 27,\r
- /* 840 */ 87, 106, 123, 53, 119, 21, 106, 130, 95, 124,\r
- /* 850 */ 97, 98, 104, 100, 101, 130, 130, 104, 130, 81,\r
- /* 860 */ 82, 130, 109, 81, 82, 112, 113, 130, 87, 130,\r
- /* 870 */ 130, 130, 119, 130, 130, 130, 95, 124, 97, 98,\r
- /* 880 */ 99, 100, 101, 130, 130, 130, 130, 130, 130, 130,\r
- /* 890 */ 109, 130, 130, 112, 113, 130, 87, 130, 130, 130,\r
- /* 900 */ 119, 130, 130, 130, 95, 124, 97, 98, 130, 100,\r
- /* 910 */ 101, 130, 130, 130, 130, 130, 130, 130, 109, 130,\r
- /* 920 */ 130, 112, 113, 130, 130, 130, 87, 130, 119, 130,\r
- /* 930 */ 130, 130, 130, 124, 95, 130, 97, 98, 130, 100,\r
- /* 940 */ 101, 130, 130, 130, 130, 87, 130, 130, 109, 130,\r
- /* 950 */ 130, 112, 113, 95, 87, 97, 130, 130, 119, 101,\r
- /* 960 */ 130, 130, 95, 124, 97, 98, 130, 100, 101, 130,\r
- /* 970 */ 130, 113, 130, 130, 130, 130, 109, 119, 130, 112,\r
- /* 980 */ 113, 130, 87, 130, 130, 130, 119, 130, 130, 130,\r
- /* 990 */ 95, 124, 97, 98, 130, 100, 101, 130, 130, 130,\r
- /* 1000 */ 130, 130, 130, 130, 109, 130, 130, 112, 113, 130,\r
- /* 1010 */ 87, 130, 130, 130, 119, 130, 130, 130, 95, 124,\r
- /* 1020 */ 97, 98, 130, 100, 101, 130, 130, 130, 130, 130,\r
- /* 1030 */ 130, 130, 109, 130, 130, 112, 113, 130, 130, 130,\r
- /* 1040 */ 87, 130, 119, 130, 130, 130, 130, 124, 95, 130,\r
- /* 1050 */ 97, 98, 130, 100, 101, 130, 130, 130, 130, 87,\r
- /* 1060 */ 130, 130, 109, 130, 130, 112, 113, 95, 87, 97,\r
- /* 1070 */ 130, 130, 119, 101, 130, 130, 95, 124, 97, 98,\r
- /* 1080 */ 130, 100, 101, 130, 130, 113, 130, 130, 130, 130,\r
- /* 1090 */ 109, 119, 130, 112, 113, 130, 87, 130, 130, 130,\r
- /* 1100 */ 119, 130, 130, 130, 95, 124, 97, 98, 130, 100,\r
- /* 1110 */ 101, 130, 130, 130, 130, 130, 130, 130, 109, 130,\r
- /* 1120 */ 130, 112, 113, 130, 87, 130, 130, 130, 119, 130,\r
- /* 1130 */ 130, 130, 95, 124, 97, 98, 130, 130, 101, 130,\r
- /* 1140 */ 130, 130, 130, 130, 130, 130, 109, 130, 130, 112,\r
- /* 1150 */ 113, 130, 130, 130, 130, 130, 119, 130, 130, 130,\r
- /* 1160 */ 87, 130, 130, 130, 127, 128, 130, 130, 95, 130,\r
- /* 1170 */ 97, 98, 130, 100, 101, 130, 130, 130, 130, 87,\r
- /* 1180 */ 130, 130, 109, 130, 130, 112, 113, 95, 87, 97,\r
- /* 1190 */ 130, 130, 119, 101, 130, 130, 95, 124, 97, 98,\r
- /* 1200 */ 130, 100, 101, 130, 130, 113, 130, 130, 130, 130,\r
- /* 1210 */ 109, 119, 130, 112, 113, 130, 87, 130, 130, 130,\r
- /* 1220 */ 119, 130, 130, 130, 95, 124, 97, 98, 130, 100,\r
- /* 1230 */ 101, 130, 130, 130, 130, 130, 130, 130, 109, 130,\r
- /* 1240 */ 130, 112, 113, 130, 87, 130, 130, 130, 119, 130,\r
- /* 1250 */ 130, 130, 95, 124, 97, 98, 130, 100, 101, 130,\r
- /* 1260 */ 130, 130, 130, 130, 130, 130, 109, 130, 130, 112,\r
- /* 1270 */ 113, 130, 130, 130, 87, 130, 119, 130, 130, 130,\r
- /* 1280 */ 130, 124, 95, 130, 97, 98, 130, 100, 101, 130,\r
- /* 1290 */ 130, 130, 130, 130, 130, 130, 109, 130, 130, 112,\r
- /* 1300 */ 113, 130, 87, 130, 130, 130, 119, 130, 130, 130,\r
- /* 1310 */ 95, 124, 97, 98, 130, 87, 101, 130, 130, 130,\r
- /* 1320 */ 130, 130, 130, 95, 109, 97, 98, 112, 113, 101,\r
- /* 1330 */ 130, 130, 130, 130, 119, 130, 130, 109, 130, 130,\r
- /* 1340 */ 112, 113, 87, 128, 116, 130, 130, 119, 130, 130,\r
- /* 1350 */ 95, 130, 97, 98, 130, 130, 101, 130, 130, 130,\r
- /* 1360 */ 130, 130, 87, 130, 109, 130, 130, 112, 113, 130,\r
- /* 1370 */ 95, 116, 97, 98, 119, 87, 101, 130, 130, 130,\r
- /* 1380 */ 130, 130, 130, 95, 109, 97, 98, 112, 113, 101,\r
- /* 1390 */ 130, 116, 130, 130, 119, 130, 130, 109, 87, 130,\r
- /* 1400 */ 112, 113, 130, 87, 116, 130, 95, 119, 97, 98,\r
- /* 1410 */ 99, 95, 101, 97, 98, 99, 130, 101, 130, 130,\r
- /* 1420 */ 109, 130, 130, 112, 113, 109, 130, 130, 112, 113,\r
- /* 1430 */ 119, 87, 130, 130, 130, 119, 130, 130, 130, 95,\r
- /* 1440 */ 87, 97, 98, 130, 130, 101, 130, 130, 95, 130,\r
- /* 1450 */ 97, 98, 130, 109, 101, 130, 112, 113, 130, 87,\r
- /* 1460 */ 130, 130, 109, 119, 130, 112, 113, 95, 130, 97,\r
- /* 1470 */ 98, 130, 119, 101, 130, 130, 130, 130, 130, 87,\r
- /* 1480 */ 130, 109, 130, 130, 112, 113, 130, 95, 87, 97,\r
- /* 1490 */ 98, 119, 130, 101, 130, 130, 95, 130, 97, 98,\r
- /* 1500 */ 130, 109, 101, 130, 112, 113, 130, 130, 87, 130,\r
- /* 1510 */ 109, 119, 130, 112, 113, 130, 95, 87, 97, 98,\r
- /* 1520 */ 119, 130, 101, 130, 130, 95, 130, 97, 98, 130,\r
- /* 1530 */ 109, 101, 130, 112, 113, 130, 87, 130, 130, 109,\r
- /* 1540 */ 119, 130, 112, 113, 95, 87, 97, 98, 130, 119,\r
- /* 1550 */ 101, 130, 130, 95, 130, 97, 98, 130, 109, 101,\r
- /* 1560 */ 130, 112, 113, 130, 130, 130, 130, 109, 119, 130,\r
- /* 1570 */ 112, 113, 87, 130, 130, 130, 130, 119, 130, 130,\r
- /* 1580 */ 95, 87, 97, 98, 130, 130, 101, 130, 130, 95,\r
- /* 1590 */ 130, 97, 98, 130, 109, 101, 130, 112, 113, 130,\r
- /* 1600 */ 130, 87, 130, 109, 119, 130, 112, 113, 130, 95,\r
- /* 1610 */ 87, 97, 98, 119, 130, 101, 130, 130, 95, 130,\r
- /* 1620 */ 97, 98, 130, 109, 101, 130, 112, 113, 130, 130,\r
- /* 1630 */ 87, 130, 109, 119, 130, 112, 113, 130, 95, 130,\r
- /* 1640 */ 97, 98, 119, 87, 101, 130, 130, 130, 130, 130,\r
- /* 1650 */ 87, 95, 109, 97, 98, 112, 113, 101, 95, 130,\r
- /* 1660 */ 97, 130, 119, 130, 101, 109, 130, 130, 112, 113,\r
- /* 1670 */ 87, 130, 130, 130, 130, 119, 113, 130, 95, 87,\r
- /* 1680 */ 97, 98, 119, 130, 101, 130, 130, 95, 130, 97,\r
- /* 1690 */ 130, 130, 109, 101, 130, 112, 113, 130, 87, 87,\r
- /* 1700 */ 130, 109, 119, 130, 112, 113, 95, 95, 97, 97,\r
- /* 1710 */ 130, 119, 101, 101, 130, 130, 130, 130, 87, 130,\r
- /* 1720 */ 109, 130, 130, 112, 113, 113, 95, 130, 97, 130,\r
- /* 1730 */ 119, 119, 101, 130, 130, 130, 130, 130, 87, 130,\r
- /* 1740 */ 109, 130, 130, 112, 113, 130, 95, 130, 97, 130,\r
- /* 1750 */ 119, 130, 101, 130, 130, 130, 130, 130, 130, 130,\r
- /* 1760 */ 130, 130, 130, 130, 113, 130, 130, 130, 130, 130,\r
- /* 1770 */ 119,\r
+ /* 0 */ 23, 86, 87, 88, 89, 90, 56, 30, 9, 10,\r
+ /* 10 */ 25, 12, 27, 14, 29, 65, 31, 24, 41, 42,\r
+ /* 20 */ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,\r
+ /* 30 */ 53, 54, 56, 23, 22, 22, 33, 61, 25, 26,\r
+ /* 40 */ 30, 65, 119, 33, 121, 69, 98, 70, 71, 72,\r
+ /* 50 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 30,\r
+ /* 60 */ 112, 113, 114, 1, 35, 34, 22, 23, 56, 25,\r
+ /* 70 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,\r
+ /* 80 */ 51, 52, 53, 54, 23, 22, 83, 22, 25, 26,\r
+ /* 90 */ 25, 30, 88, 89, 90, 22, 33, 24, 25, 70,\r
+ /* 100 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,\r
+ /* 110 */ 81, 38, 39, 22, 98, 42, 25, 56, 22, 99,\r
+ /* 120 */ 24, 25, 102, 23, 22, 23, 65, 25, 112, 56,\r
+ /* 130 */ 30, 66, 59, 60, 2, 62, 63, 64, 118, 37,\r
+ /* 140 */ 67, 41, 42, 43, 44, 45, 46, 47, 48, 49,\r
+ /* 150 */ 50, 51, 52, 53, 54, 82, 22, 66, 26, 25,\r
+ /* 160 */ 26, 28, 26, 67, 28, 22, 22, 24, 25, 25,\r
+ /* 170 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\r
+ /* 180 */ 80, 81, 39, 41, 42, 43, 44, 45, 46, 47,\r
+ /* 190 */ 48, 49, 50, 51, 52, 53, 54, 108, 90, 57,\r
+ /* 200 */ 66, 65, 24, 25, 96, 62, 63, 23, 22, 23,\r
+ /* 210 */ 121, 25, 70, 71, 72, 73, 74, 75, 76, 77,\r
+ /* 220 */ 78, 79, 80, 81, 1, 41, 42, 43, 44, 45,\r
+ /* 230 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 108,\r
+ /* 240 */ 23, 120, 89, 122, 123, 67, 23, 30, 103, 23,\r
+ /* 250 */ 33, 28, 121, 30, 70, 71, 72, 73, 74, 75,\r
+ /* 260 */ 76, 77, 78, 79, 80, 81, 37, 41, 42, 43,\r
+ /* 270 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,\r
+ /* 280 */ 54, 98, 129, 130, 22, 56, 103, 25, 93, 94,\r
+ /* 290 */ 1, 28, 16, 17, 65, 112, 70, 71, 72, 73,\r
+ /* 300 */ 74, 75, 76, 77, 78, 79, 80, 81, 13, 41,\r
+ /* 310 */ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\r
+ /* 320 */ 52, 53, 54, 98, 61, 36, 22, 25, 103, 25,\r
+ /* 330 */ 123, 68, 122, 123, 122, 123, 25, 112, 70, 71,\r
+ /* 340 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,\r
+ /* 350 */ 1, 83, 40, 41, 42, 43, 44, 45, 46, 47,\r
+ /* 360 */ 48, 49, 50, 51, 52, 53, 54, 1, 108, 105,\r
+ /* 370 */ 106, 23, 23, 23, 1, 58, 99, 66, 30, 102,\r
+ /* 380 */ 30, 121, 70, 71, 72, 73, 74, 75, 76, 77,\r
+ /* 390 */ 78, 79, 80, 81, 30, 118, 40, 113, 114, 91,\r
+ /* 400 */ 92, 124, 104, 37, 55, 41, 42, 43, 44, 45,\r
+ /* 410 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 98,\r
+ /* 420 */ 61, 55, 32, 104, 103, 69, 25, 68, 55, 23,\r
+ /* 430 */ 40, 26, 98, 112, 70, 71, 72, 73, 74, 75,\r
+ /* 440 */ 76, 77, 78, 79, 80, 81, 112, 41, 42, 43,\r
+ /* 450 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,\r
+ /* 460 */ 54, 56, 108, 91, 92, 23, 23, 23, 91, 92,\r
+ /* 470 */ 65, 23, 30, 30, 30, 121, 70, 71, 72, 73,\r
+ /* 480 */ 74, 75, 76, 77, 78, 79, 80, 81, 119, 41,\r
+ /* 490 */ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,\r
+ /* 500 */ 52, 53, 54, 23, 108, 23, 119, 23, 23, 57,\r
+ /* 510 */ 30, 89, 30, 23, 30, 30, 98, 121, 70, 71,\r
+ /* 520 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,\r
+ /* 530 */ 112, 41, 42, 43, 44, 45, 46, 47, 48, 49,\r
+ /* 540 */ 50, 51, 52, 53, 54, 98, 23, 23, 119, 23,\r
+ /* 550 */ 23, 30, 130, 30, 30, 23, 30, 30, 25, 112,\r
+ /* 560 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,\r
+ /* 570 */ 80, 81, 39, 41, 42, 43, 44, 45, 46, 47,\r
+ /* 580 */ 48, 49, 50, 51, 52, 53, 54, 23, 109, 23,\r
+ /* 590 */ 23, 122, 123, 104, 30, 26, 30, 30, 28, 24,\r
+ /* 600 */ 121, 104, 70, 71, 72, 73, 74, 75, 76, 77,\r
+ /* 610 */ 78, 79, 80, 81, 2, 41, 42, 43, 44, 45,\r
+ /* 620 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 1,\r
+ /* 630 */ 61, 117, 93, 94, 24, 65, 93, 94, 124, 24,\r
+ /* 640 */ 25, 36, 30, 69, 70, 71, 72, 73, 74, 75,\r
+ /* 650 */ 76, 77, 78, 79, 80, 81, 32, 30, 30, 25,\r
+ /* 660 */ 25, 93, 94, 23, 56, 41, 42, 43, 44, 45,\r
+ /* 670 */ 46, 47, 48, 49, 50, 51, 52, 53, 54, 98,\r
+ /* 680 */ 15, 11, 24, 26, 103, 26, 25, 24, 57, 25,\r
+ /* 690 */ 61, 69, 67, 112, 70, 71, 72, 73, 74, 75,\r
+ /* 700 */ 76, 77, 78, 79, 80, 81, 25, 41, 42, 43,\r
+ /* 710 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,\r
+ /* 720 */ 54, 2, 108, 57, 25, 5, 23, 25, 18, 67,\r
+ /* 730 */ 23, 57, 39, 2, 98, 121, 70, 71, 72, 73,\r
+ /* 740 */ 74, 75, 76, 77, 78, 79, 80, 81, 112, 23,\r
+ /* 750 */ 33, 112, 30, 24, 30, 111, 119, 20, 120, 126,\r
+ /* 760 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,\r
+ /* 770 */ 51, 52, 53, 54, 121, 108, 107, 56, 95, 119,\r
+ /* 780 */ 2, 30, 107, 105, 131, 131, 131, 131, 121, 70,\r
+ /* 790 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,\r
+ /* 800 */ 81, 1, 41, 42, 43, 44, 45, 46, 47, 48,\r
+ /* 810 */ 49, 50, 51, 52, 53, 54, 108, 131, 131, 131,\r
+ /* 820 */ 131, 131, 131, 23, 131, 131, 131, 131, 131, 121,\r
+ /* 830 */ 30, 70, 71, 72, 73, 74, 75, 76, 77, 78,\r
+ /* 840 */ 79, 80, 81, 131, 98, 131, 8, 131, 131, 108,\r
+ /* 850 */ 131, 131, 131, 131, 22, 55, 24, 25, 112, 27,\r
+ /* 860 */ 22, 29, 121, 31, 22, 98, 24, 25, 131, 98,\r
+ /* 870 */ 38, 39, 126, 131, 42, 131, 38, 131, 131, 112,\r
+ /* 880 */ 38, 39, 131, 112, 42, 131, 131, 131, 56, 131,\r
+ /* 890 */ 1, 59, 60, 126, 62, 63, 64, 126, 56, 67,\r
+ /* 900 */ 68, 59, 60, 131, 62, 63, 64, 131, 131, 67,\r
+ /* 910 */ 68, 69, 23, 131, 82, 22, 131, 24, 25, 30,\r
+ /* 920 */ 82, 83, 84, 131, 82, 22, 131, 24, 25, 131,\r
+ /* 930 */ 131, 38, 39, 22, 23, 42, 25, 131, 131, 131,\r
+ /* 940 */ 131, 38, 39, 131, 55, 42, 131, 131, 37, 56,\r
+ /* 950 */ 131, 131, 59, 60, 131, 62, 63, 64, 98, 56,\r
+ /* 960 */ 67, 68, 59, 60, 131, 62, 63, 64, 8, 131,\r
+ /* 970 */ 67, 68, 112, 113, 114, 82, 22, 131, 24, 25,\r
+ /* 980 */ 131, 131, 22, 131, 131, 82, 22, 131, 24, 25,\r
+ /* 990 */ 131, 131, 38, 39, 131, 131, 42, 131, 38, 131,\r
+ /* 1000 */ 131, 131, 38, 39, 131, 131, 42, 131, 131, 131,\r
+ /* 1010 */ 56, 131, 131, 59, 60, 131, 62, 63, 64, 98,\r
+ /* 1020 */ 56, 67, 68, 59, 60, 131, 62, 63, 64, 131,\r
+ /* 1030 */ 131, 67, 68, 112, 113, 114, 82, 22, 131, 24,\r
+ /* 1040 */ 25, 131, 82, 83, 84, 131, 82, 22, 131, 24,\r
+ /* 1050 */ 25, 131, 131, 38, 39, 131, 131, 42, 131, 131,\r
+ /* 1060 */ 131, 131, 131, 38, 39, 131, 131, 42, 131, 131,\r
+ /* 1070 */ 131, 56, 131, 131, 59, 60, 131, 62, 63, 64,\r
+ /* 1080 */ 131, 56, 67, 68, 59, 60, 131, 62, 63, 64,\r
+ /* 1090 */ 131, 131, 67, 68, 131, 131, 131, 82, 22, 131,\r
+ /* 1100 */ 24, 25, 131, 131, 131, 98, 131, 82, 22, 131,\r
+ /* 1110 */ 24, 25, 131, 131, 38, 39, 131, 131, 42, 112,\r
+ /* 1120 */ 113, 114, 131, 131, 38, 39, 131, 131, 42, 131,\r
+ /* 1130 */ 131, 131, 56, 131, 131, 59, 60, 131, 62, 63,\r
+ /* 1140 */ 64, 131, 56, 67, 68, 59, 60, 131, 62, 63,\r
+ /* 1150 */ 64, 131, 131, 67, 131, 131, 131, 89, 82, 22,\r
+ /* 1160 */ 131, 24, 25, 131, 131, 97, 131, 99, 82, 131,\r
+ /* 1170 */ 102, 131, 131, 131, 131, 38, 39, 131, 110, 42,\r
+ /* 1180 */ 131, 131, 131, 115, 116, 131, 118, 3, 4, 131,\r
+ /* 1190 */ 6, 7, 8, 56, 131, 131, 59, 60, 131, 62,\r
+ /* 1200 */ 63, 64, 131, 19, 67, 89, 22, 131, 131, 131,\r
+ /* 1210 */ 131, 131, 131, 97, 131, 99, 100, 131, 102, 82,\r
+ /* 1220 */ 131, 131, 38, 131, 131, 89, 110, 131, 131, 131,\r
+ /* 1230 */ 131, 115, 116, 97, 118, 99, 100, 101, 102, 131,\r
+ /* 1240 */ 131, 131, 131, 127, 128, 131, 110, 131, 89, 131,\r
+ /* 1250 */ 131, 115, 116, 131, 118, 89, 97, 131, 99, 100,\r
+ /* 1260 */ 101, 102, 131, 97, 131, 99, 131, 131, 102, 110,\r
+ /* 1270 */ 131, 131, 131, 131, 115, 116, 110, 118, 131, 131,\r
+ /* 1280 */ 131, 115, 116, 89, 118, 131, 131, 89, 131, 131,\r
+ /* 1290 */ 131, 97, 131, 99, 100, 97, 102, 99, 100, 101,\r
+ /* 1300 */ 102, 131, 131, 131, 110, 4, 5, 6, 110, 115,\r
+ /* 1310 */ 116, 131, 118, 115, 116, 89, 118, 131, 131, 125,\r
+ /* 1320 */ 19, 20, 21, 97, 131, 99, 100, 89, 102, 131,\r
+ /* 1330 */ 131, 131, 131, 131, 131, 97, 110, 99, 100, 131,\r
+ /* 1340 */ 102, 115, 116, 131, 118, 131, 131, 131, 110, 89,\r
+ /* 1350 */ 131, 125, 131, 115, 116, 131, 118, 97, 131, 99,\r
+ /* 1360 */ 100, 131, 102, 125, 131, 131, 131, 131, 131, 131,\r
+ /* 1370 */ 110, 131, 131, 89, 131, 115, 116, 131, 118, 131,\r
+ /* 1380 */ 131, 97, 131, 99, 100, 89, 102, 131, 128, 131,\r
+ /* 1390 */ 131, 131, 131, 97, 110, 99, 100, 101, 102, 115,\r
+ /* 1400 */ 116, 131, 118, 131, 131, 89, 110, 131, 131, 125,\r
+ /* 1410 */ 131, 115, 116, 97, 118, 99, 100, 89, 102, 131,\r
+ /* 1420 */ 131, 105, 131, 131, 131, 97, 110, 99, 100, 101,\r
+ /* 1430 */ 102, 115, 116, 131, 118, 131, 131, 131, 110, 89,\r
+ /* 1440 */ 131, 131, 131, 115, 116, 131, 118, 97, 131, 99,\r
+ /* 1450 */ 100, 131, 102, 131, 131, 131, 131, 131, 131, 131,\r
+ /* 1460 */ 110, 131, 131, 89, 131, 115, 116, 131, 118, 131,\r
+ /* 1470 */ 131, 97, 131, 99, 100, 89, 102, 131, 131, 131,\r
+ /* 1480 */ 131, 131, 131, 97, 110, 99, 100, 89, 102, 115,\r
+ /* 1490 */ 116, 131, 118, 131, 131, 97, 110, 99, 100, 89,\r
+ /* 1500 */ 102, 115, 116, 131, 118, 131, 131, 97, 110, 99,\r
+ /* 1510 */ 100, 89, 102, 115, 116, 131, 118, 131, 131, 97,\r
+ /* 1520 */ 110, 99, 100, 131, 102, 115, 116, 131, 118, 131,\r
+ /* 1530 */ 131, 131, 110, 89, 131, 131, 131, 115, 116, 131,\r
+ /* 1540 */ 118, 97, 89, 99, 100, 131, 102, 131, 131, 131,\r
+ /* 1550 */ 97, 131, 99, 100, 110, 102, 131, 131, 131, 115,\r
+ /* 1560 */ 116, 131, 118, 110, 89, 131, 131, 131, 115, 116,\r
+ /* 1570 */ 131, 118, 97, 89, 99, 100, 131, 102, 131, 131,\r
+ /* 1580 */ 131, 97, 131, 99, 100, 110, 102, 131, 131, 131,\r
+ /* 1590 */ 115, 116, 131, 118, 110, 131, 131, 89, 131, 115,\r
+ /* 1600 */ 116, 89, 118, 131, 131, 97, 131, 99, 100, 97,\r
+ /* 1610 */ 102, 99, 100, 131, 102, 131, 131, 131, 110, 131,\r
+ /* 1620 */ 131, 131, 110, 115, 116, 131, 118, 115, 116, 131,\r
+ /* 1630 */ 118, 89, 131, 131, 131, 131, 131, 131, 131, 97,\r
+ /* 1640 */ 89, 99, 100, 131, 102, 131, 131, 131, 97, 131,\r
+ /* 1650 */ 99, 100, 110, 102, 131, 131, 131, 115, 116, 131,\r
+ /* 1660 */ 118, 110, 89, 131, 131, 131, 115, 116, 131, 118,\r
+ /* 1670 */ 97, 89, 99, 100, 131, 102, 131, 131, 131, 97,\r
+ /* 1680 */ 131, 99, 100, 110, 102, 131, 131, 131, 115, 116,\r
+ /* 1690 */ 131, 118, 110, 131, 131, 89, 131, 115, 116, 89,\r
+ /* 1700 */ 118, 131, 131, 97, 131, 99, 100, 97, 102, 99,\r
+ /* 1710 */ 100, 131, 102, 131, 131, 131, 110, 131, 131, 131,\r
+ /* 1720 */ 110, 115, 116, 131, 118, 115, 116, 131, 118, 89,\r
+ /* 1730 */ 131, 131, 131, 131, 131, 131, 131, 97, 89, 99,\r
+ /* 1740 */ 100, 131, 102, 131, 131, 131, 97, 131, 99, 100,\r
+ /* 1750 */ 110, 102, 131, 131, 131, 115, 116, 131, 118, 110,\r
+ /* 1760 */ 89, 131, 131, 131, 115, 116, 131, 118, 97, 89,\r
+ /* 1770 */ 99, 100, 131, 102, 131, 131, 131, 97, 131, 99,\r
+ /* 1780 */ 100, 110, 102, 131, 131, 131, 115, 116, 131, 118,\r
+ /* 1790 */ 110, 131, 131, 89, 131, 115, 116, 89, 118, 131,\r
+ /* 1800 */ 131, 97, 131, 99, 100, 97, 102, 99, 100, 131,\r
+ /* 1810 */ 102, 131, 131, 131, 110, 131, 131, 131, 110, 115,\r
+ /* 1820 */ 116, 131, 118, 115, 116, 131, 118, 89, 131, 131,\r
+ /* 1830 */ 131, 131, 131, 131, 131, 97, 89, 99, 100, 131,\r
+ /* 1840 */ 102, 131, 131, 131, 97, 131, 99, 100, 110, 102,\r
+ /* 1850 */ 131, 131, 131, 115, 116, 131, 118, 110, 89, 1,\r
+ /* 1860 */ 131, 131, 115, 116, 131, 118, 97, 89, 99, 131,\r
+ /* 1870 */ 131, 102, 131, 131, 131, 97, 131, 99, 131, 131,\r
+ /* 1880 */ 102, 23, 131, 131, 115, 116, 28, 118, 30, 131,\r
+ /* 1890 */ 131, 89, 131, 115, 116, 89, 118, 131, 131, 97,\r
+ /* 1900 */ 131, 99, 131, 97, 102, 99, 131, 131, 102, 131,\r
+ /* 1910 */ 131, 131, 131, 131, 56, 131, 131, 115, 116, 131,\r
+ /* 1920 */ 118, 115, 116, 65, 118, 89, 131, 131, 131, 131,\r
+ /* 1930 */ 131, 131, 131, 97, 89, 99, 131, 131, 102, 131,\r
+ /* 1940 */ 131, 131, 97, 131, 99, 131, 131, 102, 131, 131,\r
+ /* 1950 */ 131, 115, 116, 131, 118, 131, 89, 131, 131, 131,\r
+ /* 1960 */ 115, 116, 131, 118, 97, 89, 99, 131, 131, 102,\r
+ /* 1970 */ 131, 131, 131, 97, 131, 99, 131, 131, 102, 131,\r
+ /* 1980 */ 131, 131, 115, 116, 131, 118, 131, 131, 131, 131,\r
+ /* 1990 */ 131, 115, 116, 131, 118,\r
);\r
- const YY_SHIFT_USE_DFLT = -49;\r
- const YY_SHIFT_MAX = 260;\r
+ const YY_SHIFT_USE_DFLT = -51;\r
+ const YY_SHIFT_MAX = 246;\r
static public $yy_shift_ofst = array(\r
- /* 0 */ 679, 270, 342, 306, 342, 90, 90, 90, 90, 90,\r
- /* 10 */ 90, 90, 90, 90, 126, 90, 90, 90, 90, -19,\r
- /* 20 */ -19, 126, 54, 54, 54, 54, 54, 54, 54, 54,\r
- /* 30 */ 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,\r
- /* 40 */ 54, 54, 17, 162, 198, 198, 234, 378, 378, 378,\r
- /* 50 */ 378, 378, 378, 446, 676, 734, 66, 588, 588, 679,\r
- /* 60 */ 38, 782, -14, 76, 132, 171, 283, 274, 330, 486,\r
- /* 70 */ 330, 486, 486, 330, 667, 587, 561, 364, 778, 74,\r
- /* 80 */ 12, 94, 12, 12, 138, 177, 246, 577, 447, 574,\r
- /* 90 */ 322, 447, 322, 447, 200, 322, 322, 447, 543, 447,\r
- /* 100 */ 447, 447, 447, 574, 802, 802, 806, 232, 232, 232,\r
- /* 110 */ 802, 824, 494, 384, 522, 468, 443, 547, 611, 611,\r
- /* 120 */ 611, 611, 611, 611, 611, 611, 611, 167, 144, 127,\r
- /* 130 */ 239, 208, 241, 252, 302, 390, 432, -48, 382, -5,\r
- /* 140 */ 385, 388, -42, 106, 551, -42, 450, 497, 193, 44,\r
- /* 150 */ 491, 492, 518, 523, 549, -42, 548, 235, 524, -42,\r
- /* 160 */ -42, -36, 355, 459, 453, 451, 148, 400, 824, 812,\r
- /* 170 */ 400, 400, 400, 812, 400, 232, 400, 232, 789, 400,\r
- /* 180 */ 232, 232, 400, 498, 400, -49, -49, -49, -49, -49,\r
- /* 190 */ -49, -49, 436, 109, 69, 29, 102, 217, 93, 187,\r
- /* 200 */ 154, 93, 150, -27, 276, 423, 460, 37, -27, -27,\r
- /* 210 */ 240, 68, 151, -27, 41, 743, 738, 742, 757, 715,\r
- /* 220 */ 697, 704, 687, 732, 771, 754, 791, 747, 774, 646,\r
- /* 230 */ 772, 776, 599, 281, 341, 70, 11, 122, 115, 402,\r
- /* 240 */ 573, 790, 377, 245, 398, 346, 746, 745, 794, 717,\r
- /* 250 */ 724, 685, 732, 766, 752, 713, 700, 759, 775, 717,\r
- /* 260 */ 783,\r
+ /* 0 */ 1184, 1015, 832, 832, 964, 1025, 1076, 893, 893, 1015,\r
+ /* 10 */ 964, 893, 893, 842, 893, 893, 893, 893, 893, 893,\r
+ /* 20 */ 893, 893, 893, 893, 893, 893, 893, 893, 893, 893,\r
+ /* 30 */ 893, 893, 893, 893, 893, 893, 893, 893, 893, 903,\r
+ /* 40 */ 954, 73, 73, 73, 1137, 73, 73, 73, 1086, 29,\r
+ /* 50 */ -23, 100, 364, 364, 96, 1184, 838, 1858, 800, 223,\r
+ /* 60 */ 178, 263, 628, 612, 612, 612, 312, 268, 226, 184,\r
+ /* 70 */ 142, 406, 624, 574, 448, 490, 532, 666, 719, 761,\r
+ /* 80 */ 761, 761, 761, 761, 761, 761, 761, 761, 761, 761,\r
+ /* 90 */ 761, 761, 761, 761, 761, 1301, 960, 134, -1, -1,\r
+ /* 100 */ 63, -1, 136, 10, 217, 91, 144, 276, 304, 304,\r
+ /* 110 */ 304, 304, 615, 304, 570, 276, 276, 304, 304, 276,\r
+ /* 120 */ 144, 262, 304, 133, 722, 724, 133, 722, 729, 722,\r
+ /* 130 */ 889, 911, 102, -15, 349, 44, 13, 186, 366, 65,\r
+ /* 140 */ 566, 348, 526, 359, 524, 564, 359, 359, 523, 567,\r
+ /* 150 */ 373, 444, 443, 350, 12, 289, 485, 482, 527, 359,\r
+ /* 160 */ 484, 359, 480, 442, 62, 133, 133, 62, 729, 62,\r
+ /* 170 */ 721, 751, 62, 737, 133, 751, 62, 62, 778, 62,\r
+ /* 180 */ 133, 62, -51, -51, -51, -51, -51, -51, -51, -51,\r
+ /* 190 */ 143, -24, 61, 405, 229, 3, 533, 569, 390, 132,\r
+ /* 200 */ 356, -50, 311, -50, -50, -50, 295, 401, 717, 699,\r
+ /* 210 */ 452, 622, 631, 625, 702, 693, 674, 707, 662, 629,\r
+ /* 220 */ 663, 635, 634, 521, 610, 640, 608, 661, 657, 665,\r
+ /* 230 */ 670, 681, 658, 659, 605, 627, 710, 726, 703, 664,\r
+ /* 240 */ 720, 731, 302, -7, 31, 317, 575,\r
);\r
- const YY_REDUCE_USE_DFLT = -53;\r
- const YY_REDUCE_MAX = 191;\r
+ const YY_REDUCE_USE_DFLT = -86;\r
+ const YY_REDUCE_MAX = 189;\r
static public $yy_reduce_ofst = array(\r
- /* 0 */ -38, 668, 725, 753, 781, 1187, 895, 1157, 867, 809,\r
- /* 10 */ 839, 953, 981, 1101, 1037, 923, 1129, 1009, 1073, 1316,\r
- /* 20 */ 1311, 1215, 1228, 1255, 1288, 1275, 1430, 1458, 1556, 1583,\r
- /* 30 */ 1523, 1449, 1485, 1494, 1514, 1421, 1392, 1344, 1543, 1353,\r
- /* 40 */ 1372, 1401, 1631, 1592, 1611, 675, 612, 1612, 615, 858,\r
- /* 50 */ 972, 1092, 1563, 1651, 89, 139, 121, -52, 292, 285,\r
- /* 60 */ 216, 251, 305, 288, 273, 202, 180, 184, 220, 211,\r
- /* 70 */ 256, 237, 184, 365, 260, 224, 260, 224, 203, 580,\r
- /* 80 */ 534, 419, 509, 501, 481, 419, 481, 483, 521, 368,\r
- /* 90 */ 530, 558, 528, 442, 403, 254, 338, 87, 368, 393,\r
- /* 100 */ 368, 579, 652, 650, 608, 619, 597, 575, 589, 403,\r
- /* 110 */ 609, 535, 272, 272, 272, 272, 272, 272, 272, 272,\r
- /* 120 */ 272, 272, 272, 272, 272, 272, 272, 714, 714, 726,\r
- /* 130 */ 714, 714, 714, 714, 414, 708, 708, 414, 708, 414,\r
- /* 140 */ 708, 708, 701, 716, 708, 701, 708, 708, 414, 414,\r
- /* 150 */ 708, 708, 708, 708, 708, 701, 708, 712, 708, 701,\r
- /* 160 */ 701, 414, 414, 708, 708, 708, 414, 414, 748, 740,\r
- /* 170 */ 414, 414, 414, 735, 414, -8, 414, -8, 719, 414,\r
- /* 180 */ -8, -8, 414, 374, 414, 351, 438, 448, 527, 582,\r
- /* 190 */ 513, 452,\r
+ /* 0 */ -85, 1116, 1136, 1159, 1328, 1296, 1316, 1284, 1194, 1260,\r
+ /* 10 */ 1198, 1226, 1238, 1484, 1475, 1508, 1512, 1542, 1453, 1444,\r
+ /* 20 */ 1386, 1374, 1398, 1410, 1422, 1551, 1573, 1704, 1738, 1708,\r
+ /* 30 */ 1350, 1747, 1680, 1671, 1606, 1582, 1610, 1640, 1649, 1068,\r
+ /* 40 */ 1166, 1769, 1876, 1867, 1845, 1806, 1836, 1778, 1802, 1007,\r
+ /* 50 */ 921, -52, 860, -52, 277, 4, 153, 321, 183, 225,\r
+ /* 60 */ 20, 121, 581, 746, 767, 771, 284, 284, 284, 284,\r
+ /* 70 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,\r
+ /* 80 */ 284, 284, 284, 284, 284, 284, 284, 284, 284, 284,\r
+ /* 90 */ 284, 284, 284, 284, 284, 108, 422, -77, 377, 308,\r
+ /* 100 */ 479, 372, 469, 636, 636, -77, 354, 543, 708, 354,\r
+ /* 110 */ 667, 741, 514, 614, 469, 539, 568, 89, 260, 195,\r
+ /* 120 */ 131, 354, 396, 212, 447, 334, 210, 418, 264, 16,\r
+ /* 130 */ 145, 653, 653, 644, 145, 653, 653, 653, 145, 653,\r
+ /* 140 */ 639, 639, 639, 638, 639, 639, 638, 638, 639, 639,\r
+ /* 150 */ 145, 639, 639, 639, 637, 145, 639, 639, 639, 638,\r
+ /* 160 */ 639, 638, 639, 639, 145, 207, 207, 145, 678, 145,\r
+ /* 170 */ 660, 669, 145, 683, 207, 675, 145, 145, 633, 145,\r
+ /* 180 */ 207, 145, 497, 429, 489, 387, 369, 298, 319, 145,\r
);\r
static public $yyExpectedTokens = array(\r
- /* 0 */ array(1, 2, 4, 5, 16, 19, 35, ),\r
- /* 1 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 2 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 3 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 4 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 5 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 6 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 7 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 8 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 9 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 10 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 11 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 12 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 13 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 14 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 15 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 16 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 17 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 18 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 19 */ array(19, 21, 22, 24, 26, 28, 29, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 20 */ array(19, 21, 22, 24, 26, 28, 29, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 21 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 22 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 23 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 24 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 25 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 26 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 27 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 28 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 29 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 30 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 31 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 32 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 33 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 34 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 35 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 36 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 37 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 38 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 39 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 40 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 41 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 42 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, 55, ),\r
- /* 43 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 44 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 45 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 46 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, 54, ),\r
- /* 47 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, ),\r
- /* 48 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, ),\r
- /* 49 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, ),\r
- /* 50 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, ),\r
- /* 51 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, ),\r
- /* 52 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, ),\r
- /* 53 */ array(19, 21, 22, 28, 35, 36, 41, 44, 45, 47, 48, 49, 50, 53, ),\r
- /* 54 */ array(20, 27, 56, 57, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),\r
- /* 55 */ array(20, 27, 56, 57, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),\r
- /* 56 */ array(19, 21, 22, 53, ),\r
- /* 57 */ array(27, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 58 */ array(27, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 59 */ array(1, 2, 4, 5, 16, 19, 35, ),\r
- /* 60 */ array(2, 3, 5, 16, 17, 18, ),\r
- /* 61 */ array(4, 19, 35, 50, 81, 82, ),\r
- /* 62 */ array(20, 25, 27, 41, 51, 56, ),\r
- /* 63 */ array(2, 3, 5, 16, 18, ),\r
- /* 64 */ array(20, 25, 27, 56, ),\r
- /* 65 */ array(21, 22, 53, ),\r
- /* 66 */ array(25, 46, 54, ),\r
- /* 67 */ array(20, 27, 56, ),\r
- /* 68 */ array(27, 38, ),\r
- /* 69 */ array(27, 56, ),\r
- /* 70 */ array(27, 38, ),\r
- /* 71 */ array(27, 56, ),\r
- /* 72 */ array(27, 56, ),\r
- /* 73 */ array(27, 38, ),\r
- /* 74 */ array(20, 27, 56, 57, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),\r
- /* 75 */ array(42, 56, 57, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),\r
- /* 76 */ array(42, 56, 57, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),\r
- /* 77 */ array(56, 57, 69, 70, 71, 72, 73, 74, 75, 76, 77, ),\r
- /* 78 */ array(4, 19, 35, 50, 81, 82, ),\r
- /* 79 */ array(19, 22, 23, 31, ),\r
- /* 80 */ array(6, 7, 9, 11, ),\r
- /* 81 */ array(19, 22, 23, 52, ),\r
- /* 82 */ array(6, 7, 9, 11, ),\r
- /* 83 */ array(6, 7, 9, 11, ),\r
- /* 84 */ array(20, 27, 31, ),\r
- /* 85 */ array(19, 22, 52, ),\r
- /* 86 */ array(20, 27, 31, ),\r
- /* 87 */ array(20, 27, ),\r
- /* 88 */ array(19, 22, ),\r
- /* 89 */ array(19, 22, ),\r
- /* 90 */ array(13, 14, ),\r
- /* 91 */ array(19, 22, ),\r
- /* 92 */ array(13, 14, ),\r
- /* 93 */ array(19, 22, ),\r
- /* 94 */ array(23, 25, ),\r
- /* 95 */ array(13, 14, ),\r
- /* 96 */ array(13, 14, ),\r
- /* 97 */ array(19, 22, ),\r
- /* 98 */ array(19, 22, ),\r
- /* 99 */ array(19, 22, ),\r
- /* 100 */ array(19, 22, ),\r
- /* 101 */ array(19, 22, ),\r
- /* 102 */ array(19, 22, ),\r
- /* 103 */ array(19, 22, ),\r
- /* 104 */ array(27, ),\r
- /* 105 */ array(27, ),\r
- /* 106 */ array(27, ),\r
- /* 107 */ array(25, ),\r
- /* 108 */ array(25, ),\r
- /* 109 */ array(25, ),\r
- /* 110 */ array(27, ),\r
- /* 111 */ array(21, ),\r
- /* 112 */ array(42, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 113 */ array(20, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 114 */ array(42, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 115 */ array(30, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 116 */ array(42, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 117 */ array(20, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 118 */ array(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 119 */ array(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 120 */ array(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 121 */ array(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 122 */ array(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 123 */ array(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 124 */ array(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 125 */ array(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 126 */ array(58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 78, 79, 80, ),\r
- /* 127 */ array(19, 20, 22, 34, ),\r
- /* 128 */ array(19, 20, 22, 34, ),\r
- /* 129 */ array(22, 24, 26, 29, ),\r
- /* 130 */ array(19, 20, 22, ),\r
- /* 131 */ array(19, 22, 23, ),\r
- /* 132 */ array(19, 22, 52, ),\r
- /* 133 */ array(19, 20, 22, ),\r
- /* 134 */ array(38, 56, ),\r
- /* 135 */ array(20, 27, ),\r
- /* 136 */ array(20, 27, ),\r
- /* 137 */ array(56, 81, ),\r
- /* 138 */ array(20, 27, ),\r
- /* 139 */ array(20, 56, ),\r
- /* 140 */ array(20, 27, ),\r
- /* 141 */ array(20, 27, ),\r
- /* 142 */ array(46, 54, ),\r
- /* 143 */ array(21, 22, ),\r
- /* 144 */ array(20, 27, ),\r
- /* 145 */ array(46, 54, ),\r
- /* 146 */ array(20, 27, ),\r
- /* 147 */ array(20, 27, ),\r
- /* 148 */ array(20, 56, ),\r
- /* 149 */ array(42, 56, ),\r
- /* 150 */ array(20, 27, ),\r
- /* 151 */ array(20, 27, ),\r
- /* 152 */ array(20, 27, ),\r
- /* 153 */ array(20, 27, ),\r
- /* 154 */ array(20, 27, ),\r
- /* 155 */ array(46, 54, ),\r
- /* 156 */ array(20, 27, ),\r
- /* 157 */ array(19, 41, ),\r
- /* 158 */ array(20, 27, ),\r
- /* 159 */ array(46, 54, ),\r
- /* 160 */ array(46, 54, ),\r
- /* 161 */ array(37, 56, ),\r
- /* 162 */ array(38, 56, ),\r
- /* 163 */ array(20, 27, ),\r
- /* 164 */ array(20, 27, ),\r
- /* 165 */ array(20, 27, ),\r
- /* 166 */ array(20, 56, ),\r
- /* 167 */ array(56, ),\r
- /* 168 */ array(21, ),\r
- /* 169 */ array(27, ),\r
+ /* 0 */ array(3, 4, 6, 7, 8, 19, 22, 38, ),\r
+ /* 1 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 2 */ array(22, 24, 25, 27, 29, 31, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 3 */ array(22, 24, 25, 27, 29, 31, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 4 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 5 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 6 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 7 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 8 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 9 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 10 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 11 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 12 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 13 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 69, 82, ),\r
+ /* 14 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 15 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 16 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 17 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 18 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 19 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 20 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 21 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 22 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 23 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 24 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 25 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 26 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 27 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 28 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 29 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 30 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 31 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 32 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 33 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 34 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 35 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 36 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 37 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 38 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 39 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 40 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 68, 82, ),\r
+ /* 41 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 82, ),\r
+ /* 42 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 82, ),\r
+ /* 43 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 82, ),\r
+ /* 44 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 82, ),\r
+ /* 45 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 82, ),\r
+ /* 46 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 82, ),\r
+ /* 47 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 82, ),\r
+ /* 48 */ array(22, 24, 25, 38, 39, 42, 56, 59, 60, 62, 63, 64, 67, 82, ),\r
+ /* 49 */ array(30, 35, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 50 */ array(23, 30, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 51 */ array(23, 30, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 52 */ array(30, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 53 */ array(30, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 54 */ array(22, 24, 25, 67, ),\r
+ /* 55 */ array(3, 4, 6, 7, 8, 19, 22, 38, ),\r
+ /* 56 */ array(8, 22, 38, 82, 83, 84, ),\r
+ /* 57 */ array(1, 23, 28, 30, 56, 65, ),\r
+ /* 58 */ array(1, 23, 30, 55, ),\r
+ /* 59 */ array(1, 23, 28, 30, ),\r
+ /* 60 */ array(24, 25, 67, ),\r
+ /* 61 */ array(28, 61, 68, ),\r
+ /* 62 */ array(1, 30, ),\r
+ /* 63 */ array(2, 30, ),\r
+ /* 64 */ array(2, 30, ),\r
+ /* 65 */ array(2, 30, ),\r
+ /* 66 */ array(40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 67 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 83, ),\r
+ /* 68 */ array(23, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 69 */ array(23, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 70 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 71 */ array(23, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 72 */ array(32, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 73 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 74 */ array(23, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 75 */ array(23, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 76 */ array(23, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 77 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 57, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 78 */ array(2, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 79 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 80 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 81 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 82 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 83 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 84 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 85 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 86 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 87 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 88 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 89 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 90 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 91 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 92 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 93 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 94 */ array(41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, ),\r
+ /* 95 */ array(4, 5, 6, 19, 20, 21, ),\r
+ /* 96 */ array(8, 22, 38, 82, 83, 84, ),\r
+ /* 97 */ array(22, 25, 26, 66, ),\r
+ /* 98 */ array(9, 10, 12, 14, ),\r
+ /* 99 */ array(9, 10, 12, 14, ),\r
+ /* 100 */ array(22, 25, 26, 33, ),\r
+ /* 101 */ array(9, 10, 12, 14, ),\r
+ /* 102 */ array(26, 28, 65, ),\r
+ /* 103 */ array(23, 30, 33, ),\r
+ /* 104 */ array(23, 30, 33, ),\r
+ /* 105 */ array(22, 25, 66, ),\r
+ /* 106 */ array(22, 25, ),\r
+ /* 107 */ array(16, 17, ),\r
+ /* 108 */ array(22, 25, ),\r
+ /* 109 */ array(22, 25, ),\r
+ /* 110 */ array(22, 25, ),\r
+ /* 111 */ array(22, 25, ),\r
+ /* 112 */ array(24, 25, ),\r
+ /* 113 */ array(22, 25, ),\r
+ /* 114 */ array(28, 65, ),\r
+ /* 115 */ array(16, 17, ),\r
+ /* 116 */ array(16, 17, ),\r
+ /* 117 */ array(22, 25, ),\r
+ /* 118 */ array(22, 25, ),\r
+ /* 119 */ array(16, 17, ),\r
+ /* 120 */ array(22, 25, ),\r
+ /* 121 */ array(22, 25, ),\r
+ /* 122 */ array(22, 25, ),\r
+ /* 123 */ array(28, ),\r
+ /* 124 */ array(30, ),\r
+ /* 125 */ array(30, ),\r
+ /* 126 */ array(28, ),\r
+ /* 127 */ array(30, ),\r
+ /* 128 */ array(24, ),\r
+ /* 129 */ array(30, ),\r
+ /* 130 */ array(1, 23, 30, 55, ),\r
+ /* 131 */ array(22, 23, 25, 37, ),\r
+ /* 132 */ array(22, 23, 25, 37, ),\r
+ /* 133 */ array(25, 27, 29, 31, ),\r
+ /* 134 */ array(1, 23, 55, ),\r
+ /* 135 */ array(22, 23, 25, ),\r
+ /* 136 */ array(22, 25, 26, ),\r
+ /* 137 */ array(22, 23, 25, ),\r
+ /* 138 */ array(1, 37, 55, ),\r
+ /* 139 */ array(22, 25, 66, ),\r
+ /* 140 */ array(23, 30, ),\r
+ /* 141 */ array(23, 30, ),\r
+ /* 142 */ array(23, 30, ),\r
+ /* 143 */ array(61, 68, ),\r
+ /* 144 */ array(23, 30, ),\r
+ /* 145 */ array(23, 30, ),\r
+ /* 146 */ array(61, 68, ),\r
+ /* 147 */ array(61, 68, ),\r
+ /* 148 */ array(23, 30, ),\r
+ /* 149 */ array(23, 30, ),\r
+ /* 150 */ array(1, 55, ),\r
+ /* 151 */ array(23, 30, ),\r
+ /* 152 */ array(23, 30, ),\r
+ /* 153 */ array(23, 30, ),\r
+ /* 154 */ array(22, 56, ),\r
+ /* 155 */ array(1, 36, ),\r
+ /* 156 */ array(23, 30, ),\r
+ /* 157 */ array(23, 30, ),\r
+ /* 158 */ array(23, 30, ),\r
+ /* 159 */ array(61, 68, ),\r
+ /* 160 */ array(23, 30, ),\r
+ /* 161 */ array(61, 68, ),\r
+ /* 162 */ array(23, 30, ),\r
+ /* 163 */ array(23, 30, ),\r
+ /* 164 */ array(1, ),\r
+ /* 165 */ array(28, ),\r
+ /* 166 */ array(28, ),\r
+ /* 167 */ array(1, ),\r
+ /* 168 */ array(24, ),\r
+ /* 169 */ array(1, ),\r
/* 170 */ array(56, ),\r
- /* 171 */ array(56, ),\r
- /* 172 */ array(56, ),\r
- /* 173 */ array(27, ),\r
- /* 174 */ array(56, ),\r
- /* 175 */ array(25, ),\r
- /* 176 */ array(56, ),\r
- /* 177 */ array(25, ),\r
- /* 178 */ array(38, ),\r
- /* 179 */ array(56, ),\r
- /* 180 */ array(25, ),\r
- /* 181 */ array(25, ),\r
- /* 182 */ array(56, ),\r
- /* 183 */ array(41, ),\r
- /* 184 */ array(56, ),\r
+ /* 171 */ array(30, ),\r
+ /* 172 */ array(1, ),\r
+ /* 173 */ array(20, ),\r
+ /* 174 */ array(28, ),\r
+ /* 175 */ array(30, ),\r
+ /* 176 */ array(1, ),\r
+ /* 177 */ array(1, ),\r
+ /* 178 */ array(2, ),\r
+ /* 179 */ array(1, ),\r
+ /* 180 */ array(28, ),\r
+ /* 181 */ array(1, ),\r
+ /* 182 */ array(),\r
+ /* 183 */ array(),\r
+ /* 184 */ array(),\r
/* 185 */ array(),\r
/* 186 */ array(),\r
/* 187 */ array(),\r
/* 188 */ array(),\r
/* 189 */ array(),\r
- /* 190 */ array(),\r
- /* 191 */ array(),\r
- /* 192 */ array(19, 21, 22, 36, 47, 48, ),\r
- /* 193 */ array(20, 27, 41, 51, ),\r
- /* 194 */ array(41, 46, 51, 55, ),\r
- /* 195 */ array(28, 39, 40, 55, ),\r
- /* 196 */ array(20, 28, 39, 40, ),\r
- /* 197 */ array(20, 27, 68, ),\r
- /* 198 */ array(28, 39, 40, ),\r
- /* 199 */ array(34, 41, 51, ),\r
- /* 200 */ array(23, 41, 51, ),\r
- /* 201 */ array(28, 39, 40, ),\r
- /* 202 */ array(22, 52, ),\r
- /* 203 */ array(41, 51, ),\r
- /* 204 */ array(20, 68, ),\r
- /* 205 */ array(30, 37, ),\r
- /* 206 */ array(37, 55, ),\r
- /* 207 */ array(23, 46, ),\r
- /* 208 */ array(41, 51, ),\r
- /* 209 */ array(41, 51, ),\r
- /* 210 */ array(27, 28, ),\r
- /* 211 */ array(23, 38, ),\r
- /* 212 */ array(31, 81, ),\r
- /* 213 */ array(41, 51, ),\r
- /* 214 */ array(22, 36, ),\r
- /* 215 */ array(15, ),\r
- /* 216 */ array(22, ),\r
- /* 217 */ array(22, ),\r
- /* 218 */ array(21, ),\r
- /* 219 */ array(20, ),\r
- /* 220 */ array(21, ),\r
- /* 221 */ array(22, ),\r
- /* 222 */ array(42, ),\r
- /* 223 */ array(43, ),\r
- /* 224 */ array(27, ),\r
- /* 225 */ array(46, ),\r
- /* 226 */ array(23, ),\r
- /* 227 */ array(55, ),\r
- /* 228 */ array(22, ),\r
- /* 229 */ array(36, ),\r
- /* 230 */ array(21, ),\r
- /* 231 */ array(42, ),\r
- /* 232 */ array(42, ),\r
- /* 233 */ array(31, ),\r
- /* 234 */ array(33, ),\r
- /* 235 */ array(10, ),\r
- /* 236 */ array(21, ),\r
- /* 237 */ array(33, ),\r
- /* 238 */ array(8, ),\r
- /* 239 */ array(22, ),\r
- /* 240 */ array(22, ),\r
- /* 241 */ array(53, ),\r
- /* 242 */ array(17, ),\r
- /* 243 */ array(20, ),\r
+ /* 190 */ array(22, 24, 25, 39, 62, 63, ),\r
+ /* 191 */ array(56, 61, 65, 69, ),\r
+ /* 192 */ array(23, 30, 56, 65, ),\r
+ /* 193 */ array(26, 56, 65, ),\r
+ /* 194 */ array(37, 56, 65, ),\r
+ /* 195 */ array(33, 83, ),\r
+ /* 196 */ array(25, 39, ),\r
+ /* 197 */ array(26, 61, ),\r
+ /* 198 */ array(32, 40, ),\r
+ /* 199 */ array(2, 26, ),\r
+ /* 200 */ array(40, 69, ),\r
+ /* 201 */ array(56, 65, ),\r
+ /* 202 */ array(25, 66, ),\r
+ /* 203 */ array(56, 65, ),\r
+ /* 204 */ array(56, 65, ),\r
+ /* 205 */ array(56, 65, ),\r
+ /* 206 */ array(13, ),\r
+ /* 207 */ array(25, ),\r
+ /* 208 */ array(33, ),\r
+ /* 209 */ array(25, ),\r
+ /* 210 */ array(57, ),\r
+ /* 211 */ array(69, ),\r
+ /* 212 */ array(57, ),\r
+ /* 213 */ array(67, ),\r
+ /* 214 */ array(25, ),\r
+ /* 215 */ array(39, ),\r
+ /* 216 */ array(57, ),\r
+ /* 217 */ array(23, ),\r
+ /* 218 */ array(67, ),\r
+ /* 219 */ array(61, ),\r
+ /* 220 */ array(24, ),\r
+ /* 221 */ array(25, ),\r
+ /* 222 */ array(25, ),\r
+ /* 223 */ array(30, ),\r
+ /* 224 */ array(24, ),\r
+ /* 225 */ array(23, ),\r
+ /* 226 */ array(56, ),\r
+ /* 227 */ array(25, ),\r
+ /* 228 */ array(26, ),\r
+ /* 229 */ array(15, ),\r
+ /* 230 */ array(11, ),\r
+ /* 231 */ array(25, ),\r
+ /* 232 */ array(24, ),\r
+ /* 233 */ array(26, ),\r
+ /* 234 */ array(36, ),\r
+ /* 235 */ array(30, ),\r
+ /* 236 */ array(18, ),\r
+ /* 237 */ array(23, ),\r
+ /* 238 */ array(23, ),\r
+ /* 239 */ array(25, ),\r
+ /* 240 */ array(5, ),\r
+ /* 241 */ array(2, ),\r
+ /* 242 */ array(25, ),\r
+ /* 243 */ array(24, ),\r
/* 244 */ array(34, ),\r
- /* 245 */ array(20, ),\r
- /* 246 */ array(53, ),\r
- /* 247 */ array(38, ),\r
- /* 248 */ array(21, ),\r
- /* 249 */ array(68, ),\r
- /* 250 */ array(3, ),\r
- /* 251 */ array(32, ),\r
- /* 252 */ array(43, ),\r
- /* 253 */ array(23, ),\r
- /* 254 */ array(22, ),\r
- /* 255 */ array(43, ),\r
- /* 256 */ array(22, ),\r
- /* 257 */ array(20, ),\r
- /* 258 */ array(41, ),\r
- /* 259 */ array(68, ),\r
- /* 260 */ array(12, ),\r
+ /* 245 */ array(58, ),\r
+ /* 246 */ array(24, ),\r
+ /* 247 */ array(),\r
+ /* 248 */ array(),\r
+ /* 249 */ array(),\r
+ /* 250 */ array(),\r
+ /* 251 */ array(),\r
+ /* 252 */ array(),\r
+ /* 253 */ array(),\r
+ /* 254 */ array(),\r
+ /* 255 */ array(),\r
+ /* 256 */ array(),\r
+ /* 257 */ array(),\r
+ /* 258 */ array(),\r
+ /* 259 */ array(),\r
+ /* 260 */ array(),\r
/* 261 */ array(),\r
/* 262 */ array(),\r
/* 263 */ array(),\r
/* 381 */ array(),\r
/* 382 */ array(),\r
/* 383 */ array(),\r
- /* 384 */ array(),\r
- /* 385 */ array(),\r
- /* 386 */ array(),\r
- /* 387 */ array(),\r
- /* 388 */ array(),\r
- /* 389 */ array(),\r
- /* 390 */ array(),\r
- /* 391 */ array(),\r
- /* 392 */ array(),\r
- /* 393 */ array(),\r
- /* 394 */ array(),\r
- /* 395 */ array(),\r
- /* 396 */ array(),\r
- /* 397 */ array(),\r
- /* 398 */ array(),\r
- /* 399 */ array(),\r
- /* 400 */ array(),\r
- /* 401 */ array(),\r
- /* 402 */ array(),\r
- /* 403 */ array(),\r
- /* 404 */ array(),\r
- /* 405 */ array(),\r
- /* 406 */ array(),\r
);\r
static public $yy_default = array(\r
- /* 0 */ 611, 611, 611, 611, 611, 611, 611, 611, 611, 611,\r
- /* 10 */ 611, 611, 611, 611, 596, 611, 611, 611, 611, 611,\r
- /* 20 */ 611, 611, 554, 554, 554, 554, 611, 611, 611, 611,\r
- /* 30 */ 611, 611, 611, 611, 611, 611, 611, 611, 611, 611,\r
- /* 40 */ 611, 611, 611, 611, 611, 611, 611, 611, 611, 611,\r
- /* 50 */ 611, 611, 611, 611, 564, 564, 611, 475, 475, 407,\r
- /* 60 */ 611, 611, 611, 429, 611, 611, 516, 611, 475, 475,\r
- /* 70 */ 475, 475, 475, 475, 564, 564, 564, 564, 611, 611,\r
- /* 80 */ 417, 526, 417, 417, 497, 526, 497, 490, 611, 611,\r
- /* 90 */ 423, 611, 423, 611, 519, 423, 423, 611, 611, 611,\r
- /* 100 */ 611, 611, 611, 611, 475, 475, 475, 512, 511, 519,\r
- /* 110 */ 475, 611, 611, 611, 611, 611, 611, 611, 577, 570,\r
- /* 120 */ 574, 573, 569, 578, 478, 568, 562, 611, 611, 611,\r
- /* 130 */ 611, 611, 527, 611, 611, 611, 611, 611, 611, 611,\r
- /* 140 */ 611, 611, 546, 611, 611, 548, 611, 611, 611, 611,\r
- /* 150 */ 611, 611, 611, 611, 611, 524, 611, 526, 611, 547,\r
- /* 160 */ 545, 553, 611, 611, 611, 611, 611, 485, 611, 610,\r
- /* 170 */ 496, 458, 495, 610, 597, 514, 598, 517, 489, 599,\r
- /* 180 */ 513, 542, 482, 526, 565, 558, 558, 526, 526, 558,\r
- /* 190 */ 558, 526, 611, 486, 611, 611, 611, 490, 559, 486,\r
- /* 200 */ 481, 487, 611, 560, 490, 611, 611, 502, 579, 486,\r
- /* 210 */ 611, 540, 497, 611, 611, 611, 611, 611, 611, 611,\r
- /* 220 */ 611, 611, 611, 611, 611, 502, 481, 611, 611, 611,\r
- /* 230 */ 611, 611, 611, 497, 611, 611, 611, 611, 611, 611,\r
- /* 240 */ 611, 611, 611, 611, 490, 611, 611, 540, 611, 490,\r
- /* 250 */ 611, 483, 563, 611, 611, 507, 611, 611, 515, 490,\r
- /* 260 */ 611, 455, 601, 535, 537, 551, 534, 536, 532, 533,\r
- /* 270 */ 549, 472, 480, 408, 469, 468, 466, 467, 531, 530,\r
- /* 280 */ 509, 600, 603, 460, 484, 459, 609, 602, 604, 541,\r
- /* 290 */ 529, 493, 510, 607, 608, 457, 571, 500, 499, 503,\r
- /* 300 */ 504, 505, 498, 501, 474, 471, 557, 490, 491, 506,\r
- /* 310 */ 544, 437, 508, 605, 438, 555, 492, 540, 520, 543,\r
- /* 320 */ 525, 528, 539, 470, 465, 422, 419, 424, 420, 421,\r
- /* 330 */ 418, 416, 410, 409, 411, 412, 413, 425, 414, 434,\r
- /* 340 */ 433, 435, 436, 473, 432, 431, 426, 415, 427, 428,\r
- /* 350 */ 430, 556, 606, 590, 576, 591, 592, 444, 575, 572,\r
- /* 360 */ 443, 589, 507, 561, 563, 445, 446, 462, 461, 463,\r
- /* 370 */ 464, 454, 449, 452, 448, 447, 450, 451, 453, 588,\r
- /* 380 */ 587, 523, 522, 552, 593, 595, 521, 518, 440, 439,\r
- /* 390 */ 488, 538, 494, 594, 550, 583, 582, 584, 585, 586,\r
- /* 400 */ 581, 567, 580, 441, 442, 566, 456,\r
+ /* 0 */ 583, 566, 583, 583, 583, 583, 583, 537, 537, 583,\r
+ /* 10 */ 583, 537, 537, 583, 583, 583, 583, 583, 583, 583,\r
+ /* 20 */ 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,\r
+ /* 30 */ 583, 583, 583, 583, 583, 583, 583, 583, 583, 583,\r
+ /* 40 */ 583, 583, 583, 583, 583, 583, 583, 583, 583, 451,\r
+ /* 50 */ 583, 583, 451, 451, 583, 384, 583, 462, 461, 583,\r
+ /* 60 */ 583, 545, 451, 451, 451, 451, 536, 583, 583, 583,\r
+ /* 70 */ 583, 583, 583, 583, 583, 583, 583, 583, 583, 453,\r
+ /* 80 */ 568, 484, 481, 457, 460, 433, 480, 477, 471, 567,\r
+ /* 90 */ 472, 473, 476, 468, 569, 583, 583, 508, 395, 395,\r
+ /* 100 */ 583, 395, 501, 485, 485, 508, 583, 401, 583, 583,\r
+ /* 110 */ 583, 583, 583, 583, 501, 401, 401, 583, 583, 401,\r
+ /* 120 */ 583, 583, 583, 540, 451, 451, 541, 451, 583, 451,\r
+ /* 130 */ 461, 583, 583, 583, 461, 583, 583, 583, 461, 509,\r
+ /* 140 */ 583, 583, 583, 531, 583, 583, 506, 529, 583, 583,\r
+ /* 150 */ 461, 583, 583, 583, 508, 583, 583, 583, 583, 530,\r
+ /* 160 */ 583, 528, 583, 583, 486, 542, 543, 465, 583, 466,\r
+ /* 170 */ 508, 582, 464, 407, 524, 582, 483, 487, 500, 488,\r
+ /* 180 */ 546, 470, 548, 508, 548, 508, 508, 548, 548, 549,\r
+ /* 190 */ 583, 462, 462, 456, 462, 485, 583, 490, 583, 522,\r
+ /* 200 */ 583, 583, 583, 482, 550, 462, 583, 583, 485, 583,\r
+ /* 210 */ 583, 583, 583, 583, 583, 583, 583, 583, 583, 490,\r
+ /* 220 */ 583, 583, 583, 583, 583, 583, 544, 583, 583, 583,\r
+ /* 230 */ 583, 583, 583, 456, 583, 583, 583, 583, 583, 583,\r
+ /* 240 */ 583, 522, 583, 583, 458, 495, 583, 445, 455, 398,\r
+ /* 250 */ 432, 386, 385, 434, 581, 443, 459, 444, 387, 442,\r
+ /* 260 */ 388, 573, 518, 394, 580, 515, 576, 579, 514, 519,\r
+ /* 270 */ 523, 532, 511, 512, 513, 397, 574, 390, 402, 436,\r
+ /* 280 */ 389, 435, 495, 396, 570, 534, 535, 575, 533, 400,\r
+ /* 290 */ 571, 572, 448, 427, 489, 547, 478, 479, 475, 474,\r
+ /* 300 */ 491, 469, 539, 538, 450, 447, 556, 557, 558, 559,\r
+ /* 310 */ 555, 554, 551, 552, 553, 492, 493, 496, 497, 499,\r
+ /* 320 */ 527, 463, 522, 502, 507, 510, 521, 520, 503, 415,\r
+ /* 330 */ 577, 494, 416, 498, 517, 504, 505, 516, 560, 561,\r
+ /* 340 */ 405, 429, 428, 425, 406, 426, 525, 526, 408, 424,\r
+ /* 350 */ 404, 437, 391, 430, 431, 403, 392, 393, 438, 439,\r
+ /* 360 */ 440, 423, 422, 565, 564, 578, 417, 563, 441, 562,\r
+ /* 370 */ 467, 446, 418, 419, 412, 411, 410, 409, 413, 414,\r
+ /* 380 */ 420, 421, 449, 399,\r
);\r
- const YYNOCODE = 131;\r
+ const YYNOCODE = 132;\r
const YYSTACKDEPTH = 100;\r
- const YYNSTATE = 407;\r
- const YYNRULE = 204;\r
- const YYERRORSYMBOL = 83;\r
+ const YYNSTATE = 384;\r
+ const YYNRULE = 199;\r
+ const YYERRORSYMBOL = 85;\r
const YYERRSYMDT = 'yy0';\r
const YYFALLBACK = 0;\r
static public $yyFallback = array(\r
public $yystack = array(); /* The parser's stack */\r
\r
public $yyTokenName = array( \r
- '$', 'COMMENT', 'PHPSTARTTAG', 'PHPENDTAG', \r
- 'OTHER', 'FAKEPHPSTARTTAG', 'PHP_CODE', 'PHP_CODE_START_DOUBLEQUOTE',\r
- 'PHP_CODE_DOUBLEQUOTE', 'PHP_HEREDOC_START', 'PHP_HEREDOC_END', 'PHP_NOWDOC_START',\r
- 'PHP_NOWDOC_END', 'PHP_DQ_CONTENT', 'PHP_DQ_EMBED_START', 'PHP_DQ_EMBED_END',\r
- 'LITERALSTART', 'LITERALEND', 'LITERAL', 'LDEL', \r
- 'RDEL', 'DOLLAR', 'ID', 'EQUAL', \r
- 'FOREACH', 'PTR', 'IF', 'SPACE', \r
- 'UNIMATH', 'FOR', 'SEMICOLON', 'INCDEC', \r
- 'TO', 'AS', 'APTR', 'LDELSLASH', \r
- 'INTEGER', 'COMMA', 'COLON', 'MATH', \r
- 'ANDSYM', 'OPENP', 'CLOSEP', 'QMARK', \r
- 'NOT', 'TYPECAST', 'DOT', 'BOOLEAN', \r
- 'NULL', 'SINGLEQUOTESTRING', 'QUOTE', 'DOUBLECOLON', \r
- 'AT', 'HATCH', 'OPENB', 'CLOSEB', \r
- 'VERT', 'ISIN', 'ISDIVBY', 'ISNOTDIVBY', \r
- 'ISEVEN', 'ISNOTEVEN', 'ISEVENBY', 'ISNOTEVENBY', \r
- 'ISODD', 'ISNOTODD', 'ISODDBY', 'ISNOTODDBY', \r
- 'INSTANCEOF', 'EQUALS', 'NOTEQUALS', 'GREATERTHAN', \r
- 'LESSTHAN', 'GREATEREQUAL', 'LESSEQUAL', 'IDENTITY', \r
- 'NONEIDENTITY', 'MOD', 'LAND', 'LOR', \r
- 'LXOR', 'BACKTICK', 'DOLLARID', 'error', \r
- 'start', 'template', 'template_element', 'smartytag', \r
- 'literal', 'php_code', 'php_code_element', 'php_dq_contents',\r
- 'php_dq_content', 'literal_elements', 'literal_element', 'value', \r
- 'attributes', 'variable', 'expr', 'ternary', \r
- 'ifexprs', 'varindexed', 'modifier', 'modparameters',\r
- 'statement', 'statements', 'optspace', 'varvar', \r
- 'foraction', 'array', 'specialclose', 'attribute', \r
- 'exprs', 'function', 'doublequoted', 'method', \r
- 'params', 'objectchain', 'arrayindex', 'object', \r
- 'indexdef', 'varvarele', 'objectelement', 'modparameter',\r
- 'ifexpr', 'ifcond', 'lop', 'arrayelements',\r
- 'arrayelement', 'doublequotedcontent',\r
+ '$', 'VERT', 'COLON', 'COMMENT', \r
+ 'PHPSTARTTAG', 'PHPENDTAG', 'FAKEPHPSTARTTAG', 'XMLTAG', \r
+ 'OTHER', 'PHP_CODE', 'PHP_CODE_START_DOUBLEQUOTE', 'PHP_CODE_DOUBLEQUOTE',\r
+ 'PHP_HEREDOC_START', 'PHP_HEREDOC_END', 'PHP_NOWDOC_START', 'PHP_NOWDOC_END',\r
+ 'PHP_DQ_CONTENT', 'PHP_DQ_EMBED_START', 'PHP_DQ_EMBED_END', 'LITERALSTART',\r
+ 'LITERALEND', 'LITERAL', 'LDEL', 'RDEL', \r
+ 'DOLLAR', 'ID', 'EQUAL', 'FOREACH', \r
+ 'PTR', 'IF', 'SPACE', 'FOR', \r
+ 'SEMICOLON', 'INCDEC', 'TO', 'STEP', \r
+ 'AS', 'APTR', 'LDELSLASH', 'INTEGER', \r
+ 'COMMA', 'MATH', 'UNIMATH', 'ANDSYM', \r
+ 'ISIN', 'ISDIVBY', 'ISNOTDIVBY', 'ISEVEN', \r
+ 'ISNOTEVEN', 'ISEVENBY', 'ISNOTEVENBY', 'ISODD', \r
+ 'ISNOTODD', 'ISODDBY', 'ISNOTODDBY', 'INSTANCEOF', \r
+ 'OPENP', 'CLOSEP', 'QMARK', 'NOT', \r
+ 'TYPECAST', 'DOT', 'BOOLEAN', 'NULL', \r
+ 'SINGLEQUOTESTRING', 'DOUBLECOLON', 'AT', 'HATCH', \r
+ 'OPENB', 'CLOSEB', 'EQUALS', 'NOTEQUALS', \r
+ 'GREATERTHAN', 'LESSTHAN', 'GREATEREQUAL', 'LESSEQUAL', \r
+ 'IDENTITY', 'NONEIDENTITY', 'MOD', 'LAND', \r
+ 'LOR', 'LXOR', 'QUOTE', 'BACKTICK', \r
+ 'DOLLARID', 'error', 'start', 'template', \r
+ 'template_element', 'smartytag', 'literal', 'php_code', \r
+ 'php_code_element', 'php_dq_contents', 'php_dq_content', 'literal_elements',\r
+ 'literal_element', 'value', 'attributes', 'variable', \r
+ 'expr', 'ternary', 'varindexed', 'modifier', \r
+ 'modparameters', 'statement', 'statements', 'optspace', \r
+ 'varvar', 'foraction', 'array', 'specialclose',\r
+ 'attribute', 'ifcond', 'lop', 'function', \r
+ 'doublequoted_with_quotes', 'static_class_access', 'object', 'arrayindex', \r
+ 'indexdef', 'varvarele', 'objectchain', 'objectelement',\r
+ 'method', 'params', 'modparameter', 'arrayelements',\r
+ 'arrayelement', 'doublequoted', 'doublequotedcontent',\r
);\r
\r
static public $yyRuleName = array(\r
/* 4 */ "template_element ::= COMMENT",\r
/* 5 */ "template_element ::= literal",\r
/* 6 */ "template_element ::= PHPSTARTTAG php_code PHPENDTAG",\r
- /* 7 */ "template_element ::= OTHER",\r
- /* 8 */ "template_element ::= FAKEPHPSTARTTAG",\r
- /* 9 */ "php_code ::= php_code_element php_code",\r
- /* 10 */ "php_code ::=",\r
- /* 11 */ "php_code_element ::= PHP_CODE",\r
- /* 12 */ "php_code_element ::= PHP_CODE_START_DOUBLEQUOTE php_dq_contents PHP_CODE_DOUBLEQUOTE",\r
- /* 13 */ "php_code_element ::= PHP_HEREDOC_START php_dq_contents PHP_HEREDOC_END",\r
- /* 14 */ "php_code_element ::= PHP_NOWDOC_START php_dq_contents PHP_NOWDOC_END",\r
- /* 15 */ "php_dq_contents ::= php_dq_content php_dq_contents",\r
- /* 16 */ "php_dq_contents ::=",\r
- /* 17 */ "php_dq_content ::= PHP_DQ_CONTENT",\r
- /* 18 */ "php_dq_content ::= PHP_DQ_EMBED_START php_code PHP_DQ_EMBED_END",\r
- /* 19 */ "literal ::= LITERALSTART LITERALEND",\r
- /* 20 */ "literal ::= LITERALSTART literal_elements LITERALEND",\r
- /* 21 */ "literal_elements ::= literal_element literal_elements",\r
- /* 22 */ "literal_elements ::=",\r
- /* 23 */ "literal_element ::= literal",\r
- /* 24 */ "literal_element ::= LITERAL",\r
- /* 25 */ "literal_element ::= PHPSTARTTAG",\r
- /* 26 */ "literal_element ::= FAKEPHPSTARTTAG",\r
- /* 27 */ "literal_element ::= PHPENDTAG",\r
- /* 28 */ "smartytag ::= LDEL value RDEL",\r
- /* 29 */ "smartytag ::= LDEL value attributes RDEL",\r
- /* 30 */ "smartytag ::= LDEL variable attributes RDEL",\r
- /* 31 */ "smartytag ::= LDEL expr attributes RDEL",\r
- /* 32 */ "smartytag ::= LDEL ternary attributes RDEL",\r
- /* 33 */ "smartytag ::= LDEL DOLLAR ID EQUAL value RDEL",\r
- /* 34 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr RDEL",\r
- /* 35 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes RDEL",\r
- /* 36 */ "smartytag ::= LDEL DOLLAR ID EQUAL ifexprs attributes RDEL",\r
+ /* 7 */ "template_element ::= FAKEPHPSTARTTAG",\r
+ /* 8 */ "template_element ::= XMLTAG",\r
+ /* 9 */ "template_element ::= OTHER",\r
+ /* 10 */ "php_code ::= php_code_element php_code",\r
+ /* 11 */ "php_code ::=",\r
+ /* 12 */ "php_code_element ::= PHP_CODE",\r
+ /* 13 */ "php_code_element ::= PHP_CODE_START_DOUBLEQUOTE php_dq_contents PHP_CODE_DOUBLEQUOTE",\r
+ /* 14 */ "php_code_element ::= PHP_HEREDOC_START php_dq_contents PHP_HEREDOC_END",\r
+ /* 15 */ "php_code_element ::= PHP_NOWDOC_START php_dq_contents PHP_NOWDOC_END",\r
+ /* 16 */ "php_dq_contents ::= php_dq_content php_dq_contents",\r
+ /* 17 */ "php_dq_contents ::=",\r
+ /* 18 */ "php_dq_content ::= PHP_DQ_CONTENT",\r
+ /* 19 */ "php_dq_content ::= PHP_DQ_EMBED_START php_code PHP_DQ_EMBED_END",\r
+ /* 20 */ "literal ::= LITERALSTART LITERALEND",\r
+ /* 21 */ "literal ::= LITERALSTART literal_elements LITERALEND",\r
+ /* 22 */ "literal_elements ::= literal_elements literal_element",\r
+ /* 23 */ "literal_elements ::=",\r
+ /* 24 */ "literal_element ::= literal",\r
+ /* 25 */ "literal_element ::= LITERAL",\r
+ /* 26 */ "literal_element ::= PHPSTARTTAG",\r
+ /* 27 */ "literal_element ::= FAKEPHPSTARTTAG",\r
+ /* 28 */ "literal_element ::= PHPENDTAG",\r
+ /* 29 */ "smartytag ::= LDEL value RDEL",\r
+ /* 30 */ "smartytag ::= LDEL value attributes RDEL",\r
+ /* 31 */ "smartytag ::= LDEL variable attributes RDEL",\r
+ /* 32 */ "smartytag ::= LDEL expr attributes RDEL",\r
+ /* 33 */ "smartytag ::= LDEL ternary attributes RDEL",\r
+ /* 34 */ "smartytag ::= LDEL DOLLAR ID EQUAL value RDEL",\r
+ /* 35 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr RDEL",\r
+ /* 36 */ "smartytag ::= LDEL DOLLAR ID EQUAL expr attributes RDEL",\r
/* 37 */ "smartytag ::= LDEL DOLLAR ID EQUAL ternary attributes RDEL",\r
/* 38 */ "smartytag ::= LDEL varindexed EQUAL expr attributes RDEL",\r
/* 39 */ "smartytag ::= LDEL varindexed EQUAL ternary attributes RDEL",\r
- /* 40 */ "smartytag ::= LDEL varindexed EQUAL ifexprs attributes RDEL",\r
- /* 41 */ "smartytag ::= LDEL ID attributes RDEL",\r
- /* 42 */ "smartytag ::= LDEL FOREACH attributes RDEL",\r
- /* 43 */ "smartytag ::= LDEL ID RDEL",\r
- /* 44 */ "smartytag ::= LDEL ID PTR ID attributes RDEL",\r
- /* 45 */ "smartytag ::= LDEL ID modifier modparameters attributes RDEL",\r
- /* 46 */ "smartytag ::= LDEL ID PTR ID modifier modparameters attributes RDEL",\r
- /* 47 */ "smartytag ::= LDEL IF SPACE ifexprs RDEL",\r
- /* 48 */ "smartytag ::= LDEL IF UNIMATH ifexprs RDEL",\r
- /* 49 */ "smartytag ::= LDEL IF SPACE statement RDEL",\r
- /* 50 */ "smartytag ::= LDEL FOR SPACE statements SEMICOLON optspace ifexprs SEMICOLON optspace DOLLAR varvar foraction RDEL",\r
- /* 51 */ "foraction ::= EQUAL expr",\r
- /* 52 */ "foraction ::= INCDEC",\r
- /* 53 */ "smartytag ::= LDEL FOR SPACE statement TO expr attributes RDEL",\r
- /* 54 */ "smartytag ::= LDEL FOREACH SPACE value AS DOLLAR varvar RDEL",\r
- /* 55 */ "smartytag ::= LDEL FOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar RDEL",\r
- /* 56 */ "smartytag ::= LDEL FOREACH SPACE array AS DOLLAR varvar RDEL",\r
- /* 57 */ "smartytag ::= LDEL FOREACH SPACE array AS DOLLAR varvar APTR DOLLAR varvar RDEL",\r
- /* 58 */ "smartytag ::= LDELSLASH ID RDEL",\r
- /* 59 */ "smartytag ::= LDELSLASH specialclose RDEL",\r
- /* 60 */ "specialclose ::= IF",\r
- /* 61 */ "specialclose ::= FOR",\r
- /* 62 */ "specialclose ::= FOREACH",\r
- /* 63 */ "smartytag ::= LDELSLASH ID attributes RDEL",\r
- /* 64 */ "smartytag ::= LDELSLASH ID modifier modparameters attributes RDEL",\r
- /* 65 */ "smartytag ::= LDELSLASH ID PTR ID RDEL",\r
- /* 66 */ "attributes ::= attributes attribute",\r
- /* 67 */ "attributes ::= attribute",\r
- /* 68 */ "attributes ::=",\r
- /* 69 */ "attribute ::= SPACE ID EQUAL ID",\r
- /* 70 */ "attribute ::= SPACE ID EQUAL expr",\r
- /* 71 */ "attribute ::= SPACE ID EQUAL ifexprs",\r
- /* 72 */ "attribute ::= SPACE ID EQUAL value",\r
- /* 73 */ "attribute ::= SPACE ID EQUAL ternary",\r
- /* 74 */ "attribute ::= SPACE ID",\r
- /* 75 */ "attribute ::= SPACE INTEGER EQUAL expr",\r
- /* 76 */ "statements ::= statement",\r
- /* 77 */ "statements ::= statements COMMA statement",\r
- /* 78 */ "statement ::= DOLLAR varvar EQUAL expr",\r
- /* 79 */ "expr ::= ID",\r
- /* 80 */ "expr ::= exprs",\r
- /* 81 */ "expr ::= DOLLAR ID COLON ID",\r
- /* 82 */ "expr ::= expr modifier modparameters",\r
- /* 83 */ "exprs ::= value",\r
- /* 84 */ "exprs ::= exprs MATH value",\r
- /* 85 */ "exprs ::= exprs UNIMATH value",\r
- /* 86 */ "exprs ::= exprs ANDSYM value",\r
- /* 87 */ "exprs ::= array",\r
- /* 88 */ "ternary ::= OPENP ifexprs CLOSEP QMARK expr COLON expr",\r
- /* 89 */ "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr",\r
- /* 90 */ "value ::= variable",\r
- /* 91 */ "value ::= UNIMATH value",\r
- /* 92 */ "value ::= NOT value",\r
- /* 93 */ "value ::= TYPECAST value",\r
- /* 94 */ "value ::= variable INCDEC",\r
- /* 95 */ "value ::= INTEGER",\r
- /* 96 */ "value ::= INTEGER DOT INTEGER",\r
- /* 97 */ "value ::= BOOLEAN",\r
- /* 98 */ "value ::= NULL",\r
- /* 99 */ "value ::= function",\r
- /* 100 */ "value ::= OPENP expr CLOSEP",\r
- /* 101 */ "value ::= SINGLEQUOTESTRING",\r
- /* 102 */ "value ::= QUOTE doublequoted QUOTE",\r
- /* 103 */ "value ::= QUOTE QUOTE",\r
- /* 104 */ "value ::= ID DOUBLECOLON method",\r
- /* 105 */ "value ::= ID DOUBLECOLON DOLLAR ID OPENP params CLOSEP",\r
- /* 106 */ "value ::= ID DOUBLECOLON method objectchain",\r
- /* 107 */ "value ::= ID DOUBLECOLON DOLLAR ID OPENP params CLOSEP objectchain",\r
- /* 108 */ "value ::= ID DOUBLECOLON ID",\r
- /* 109 */ "value ::= ID DOUBLECOLON DOLLAR ID arrayindex",\r
- /* 110 */ "value ::= ID DOUBLECOLON DOLLAR ID arrayindex objectchain",\r
- /* 111 */ "value ::= smartytag",\r
- /* 112 */ "variable ::= varindexed",\r
- /* 113 */ "variable ::= DOLLAR varvar AT ID",\r
- /* 114 */ "variable ::= object",\r
- /* 115 */ "variable ::= HATCH ID HATCH",\r
- /* 116 */ "variable ::= HATCH variable HATCH",\r
- /* 117 */ "varindexed ::= DOLLAR varvar arrayindex",\r
- /* 118 */ "arrayindex ::= arrayindex indexdef",\r
- /* 119 */ "arrayindex ::=",\r
- /* 120 */ "indexdef ::= DOT DOLLAR varvar",\r
- /* 121 */ "indexdef ::= DOT DOLLAR varvar AT ID",\r
- /* 122 */ "indexdef ::= DOT ID",\r
- /* 123 */ "indexdef ::= DOT BOOLEAN",\r
- /* 124 */ "indexdef ::= DOT NULL",\r
- /* 125 */ "indexdef ::= DOT INTEGER",\r
- /* 126 */ "indexdef ::= DOT LDEL exprs RDEL",\r
- /* 127 */ "indexdef ::= OPENB ID CLOSEB",\r
- /* 128 */ "indexdef ::= OPENB ID DOT ID CLOSEB",\r
- /* 129 */ "indexdef ::= OPENB exprs CLOSEB",\r
- /* 130 */ "indexdef ::= OPENB CLOSEB",\r
- /* 131 */ "varvar ::= varvarele",\r
- /* 132 */ "varvar ::= varvar varvarele",\r
- /* 133 */ "varvarele ::= ID",\r
- /* 134 */ "varvarele ::= LDEL expr RDEL",\r
- /* 135 */ "object ::= varindexed objectchain",\r
- /* 136 */ "objectchain ::= objectelement",\r
- /* 137 */ "objectchain ::= objectchain objectelement",\r
- /* 138 */ "objectelement ::= PTR ID arrayindex",\r
- /* 139 */ "objectelement ::= PTR variable arrayindex",\r
- /* 140 */ "objectelement ::= PTR LDEL expr RDEL arrayindex",\r
- /* 141 */ "objectelement ::= PTR ID LDEL expr RDEL arrayindex",\r
- /* 142 */ "objectelement ::= PTR method",\r
- /* 143 */ "function ::= ID OPENP params CLOSEP",\r
- /* 144 */ "method ::= ID OPENP params CLOSEP",\r
- /* 145 */ "params ::= expr COMMA params",\r
- /* 146 */ "params ::= expr",\r
- /* 147 */ "params ::=",\r
- /* 148 */ "modifier ::= VERT AT ID",\r
- /* 149 */ "modifier ::= VERT ID",\r
- /* 150 */ "modparameters ::= modparameters modparameter",\r
- /* 151 */ "modparameters ::=",\r
- /* 152 */ "modparameter ::= COLON exprs",\r
- /* 153 */ "modparameter ::= COLON ID",\r
- /* 154 */ "ifexprs ::= ifexpr",\r
- /* 155 */ "ifexprs ::= NOT ifexprs",\r
- /* 156 */ "ifexprs ::= OPENP ifexprs CLOSEP",\r
- /* 157 */ "ifexpr ::= expr",\r
- /* 158 */ "ifexpr ::= expr ifcond expr",\r
- /* 159 */ "ifexpr ::= expr ISIN array",\r
- /* 160 */ "ifexpr ::= expr ISIN value",\r
- /* 161 */ "ifexpr ::= ifexprs lop ifexprs",\r
- /* 162 */ "ifexpr ::= ifexprs ISDIVBY ifexprs",\r
- /* 163 */ "ifexpr ::= ifexprs ISNOTDIVBY ifexprs",\r
- /* 164 */ "ifexpr ::= ifexprs ISEVEN",\r
- /* 165 */ "ifexpr ::= ifexprs ISNOTEVEN",\r
- /* 166 */ "ifexpr ::= ifexprs ISEVENBY ifexprs",\r
- /* 167 */ "ifexpr ::= ifexprs ISNOTEVENBY ifexprs",\r
- /* 168 */ "ifexpr ::= ifexprs ISODD",\r
- /* 169 */ "ifexpr ::= ifexprs ISNOTODD",\r
- /* 170 */ "ifexpr ::= ifexprs ISODDBY ifexprs",\r
- /* 171 */ "ifexpr ::= ifexprs ISNOTODDBY ifexprs",\r
- /* 172 */ "ifexpr ::= value INSTANCEOF ID",\r
- /* 173 */ "ifexpr ::= value INSTANCEOF value",\r
- /* 174 */ "ifcond ::= EQUALS",\r
- /* 175 */ "ifcond ::= NOTEQUALS",\r
- /* 176 */ "ifcond ::= GREATERTHAN",\r
- /* 177 */ "ifcond ::= LESSTHAN",\r
- /* 178 */ "ifcond ::= GREATEREQUAL",\r
- /* 179 */ "ifcond ::= LESSEQUAL",\r
- /* 180 */ "ifcond ::= IDENTITY",\r
- /* 181 */ "ifcond ::= NONEIDENTITY",\r
- /* 182 */ "ifcond ::= MOD",\r
- /* 183 */ "lop ::= LAND",\r
- /* 184 */ "lop ::= LOR",\r
- /* 185 */ "lop ::= LXOR",\r
- /* 186 */ "array ::= OPENB arrayelements CLOSEB",\r
- /* 187 */ "arrayelements ::= arrayelement",\r
- /* 188 */ "arrayelements ::= arrayelements COMMA arrayelement",\r
- /* 189 */ "arrayelements ::=",\r
- /* 190 */ "arrayelement ::= value APTR expr",\r
- /* 191 */ "arrayelement ::= ID APTR expr",\r
- /* 192 */ "arrayelement ::= expr",\r
- /* 193 */ "doublequoted ::= doublequoted doublequotedcontent",\r
- /* 194 */ "doublequoted ::= doublequotedcontent",\r
- /* 195 */ "doublequotedcontent ::= BACKTICK variable BACKTICK",\r
- /* 196 */ "doublequotedcontent ::= BACKTICK expr BACKTICK",\r
- /* 197 */ "doublequotedcontent ::= DOLLARID",\r
- /* 198 */ "doublequotedcontent ::= LDEL variable RDEL",\r
- /* 199 */ "doublequotedcontent ::= LDEL expr RDEL",\r
- /* 200 */ "doublequotedcontent ::= smartytag",\r
- /* 201 */ "doublequotedcontent ::= OTHER",\r
- /* 202 */ "optspace ::= SPACE",\r
- /* 203 */ "optspace ::=",\r
+ /* 40 */ "smartytag ::= LDEL ID attributes RDEL",\r
+ /* 41 */ "smartytag ::= LDEL FOREACH attributes RDEL",\r
+ /* 42 */ "smartytag ::= LDEL ID RDEL",\r
+ /* 43 */ "smartytag ::= LDEL ID PTR ID attributes RDEL",\r
+ /* 44 */ "smartytag ::= LDEL ID modifier modparameters attributes RDEL",\r
+ /* 45 */ "smartytag ::= LDEL ID PTR ID modifier modparameters attributes RDEL",\r
+ /* 46 */ "smartytag ::= LDEL IF SPACE expr RDEL",\r
+ /* 47 */ "smartytag ::= LDEL IF SPACE statement RDEL",\r
+ /* 48 */ "smartytag ::= LDEL FOR SPACE statements SEMICOLON optspace expr SEMICOLON optspace DOLLAR varvar foraction RDEL",\r
+ /* 49 */ "foraction ::= EQUAL expr",\r
+ /* 50 */ "foraction ::= INCDEC",\r
+ /* 51 */ "smartytag ::= LDEL FOR SPACE statement TO expr attributes RDEL",\r
+ /* 52 */ "smartytag ::= LDEL FOR SPACE statement TO expr STEP expr RDEL",\r
+ /* 53 */ "smartytag ::= LDEL FOREACH SPACE value AS DOLLAR varvar RDEL",\r
+ /* 54 */ "smartytag ::= LDEL FOREACH SPACE value AS DOLLAR varvar APTR DOLLAR varvar RDEL",\r
+ /* 55 */ "smartytag ::= LDEL FOREACH SPACE array AS DOLLAR varvar RDEL",\r
+ /* 56 */ "smartytag ::= LDEL FOREACH SPACE array AS DOLLAR varvar APTR DOLLAR varvar RDEL",\r
+ /* 57 */ "smartytag ::= LDELSLASH ID RDEL",\r
+ /* 58 */ "smartytag ::= LDELSLASH specialclose RDEL",\r
+ /* 59 */ "specialclose ::= IF",\r
+ /* 60 */ "specialclose ::= FOR",\r
+ /* 61 */ "specialclose ::= FOREACH",\r
+ /* 62 */ "smartytag ::= LDELSLASH ID attributes RDEL",\r
+ /* 63 */ "smartytag ::= LDELSLASH ID modifier modparameters attributes RDEL",\r
+ /* 64 */ "smartytag ::= LDELSLASH ID PTR ID RDEL",\r
+ /* 65 */ "attributes ::= attributes attribute",\r
+ /* 66 */ "attributes ::= attribute",\r
+ /* 67 */ "attributes ::=",\r
+ /* 68 */ "attribute ::= SPACE ID EQUAL ID",\r
+ /* 69 */ "attribute ::= SPACE ID EQUAL expr",\r
+ /* 70 */ "attribute ::= SPACE ID EQUAL value",\r
+ /* 71 */ "attribute ::= SPACE ID EQUAL ternary",\r
+ /* 72 */ "attribute ::= SPACE ID",\r
+ /* 73 */ "attribute ::= SPACE INTEGER EQUAL expr",\r
+ /* 74 */ "statements ::= statement",\r
+ /* 75 */ "statements ::= statements COMMA statement",\r
+ /* 76 */ "statement ::= DOLLAR varvar EQUAL expr",\r
+ /* 77 */ "expr ::= value",\r
+ /* 78 */ "expr ::= ID",\r
+ /* 79 */ "expr ::= DOLLAR ID COLON ID",\r
+ /* 80 */ "expr ::= expr MATH value",\r
+ /* 81 */ "expr ::= expr UNIMATH value",\r
+ /* 82 */ "expr ::= expr ANDSYM value",\r
+ /* 83 */ "expr ::= array",\r
+ /* 84 */ "expr ::= expr ifcond expr",\r
+ /* 85 */ "expr ::= expr ISIN array",\r
+ /* 86 */ "expr ::= expr ISIN value",\r
+ /* 87 */ "expr ::= expr lop expr",\r
+ /* 88 */ "expr ::= expr ISDIVBY expr",\r
+ /* 89 */ "expr ::= expr ISNOTDIVBY expr",\r
+ /* 90 */ "expr ::= expr ISEVEN",\r
+ /* 91 */ "expr ::= expr ISNOTEVEN",\r
+ /* 92 */ "expr ::= expr ISEVENBY expr",\r
+ /* 93 */ "expr ::= expr ISNOTEVENBY expr",\r
+ /* 94 */ "expr ::= expr ISODD",\r
+ /* 95 */ "expr ::= expr ISNOTODD",\r
+ /* 96 */ "expr ::= expr ISODDBY expr",\r
+ /* 97 */ "expr ::= expr ISNOTODDBY expr",\r
+ /* 98 */ "expr ::= value INSTANCEOF ID",\r
+ /* 99 */ "expr ::= value INSTANCEOF value",\r
+ /* 100 */ "ternary ::= OPENP expr CLOSEP QMARK expr COLON expr",\r
+ /* 101 */ "value ::= variable",\r
+ /* 102 */ "value ::= UNIMATH value",\r
+ /* 103 */ "value ::= NOT value",\r
+ /* 104 */ "value ::= TYPECAST value",\r
+ /* 105 */ "value ::= variable INCDEC",\r
+ /* 106 */ "value ::= INTEGER",\r
+ /* 107 */ "value ::= INTEGER DOT INTEGER",\r
+ /* 108 */ "value ::= BOOLEAN",\r
+ /* 109 */ "value ::= NULL",\r
+ /* 110 */ "value ::= function",\r
+ /* 111 */ "value ::= OPENP expr CLOSEP",\r
+ /* 112 */ "value ::= SINGLEQUOTESTRING",\r
+ /* 113 */ "value ::= doublequoted_with_quotes",\r
+ /* 114 */ "value ::= ID DOUBLECOLON static_class_access",\r
+ /* 115 */ "value ::= smartytag",\r
+ /* 116 */ "value ::= value modifier modparameters",\r
+ /* 117 */ "variable ::= varindexed",\r
+ /* 118 */ "variable ::= DOLLAR varvar AT ID",\r
+ /* 119 */ "variable ::= object",\r
+ /* 120 */ "variable ::= HATCH ID HATCH",\r
+ /* 121 */ "variable ::= HATCH variable HATCH",\r
+ /* 122 */ "varindexed ::= DOLLAR varvar arrayindex",\r
+ /* 123 */ "arrayindex ::= arrayindex indexdef",\r
+ /* 124 */ "arrayindex ::=",\r
+ /* 125 */ "indexdef ::= DOT DOLLAR varvar",\r
+ /* 126 */ "indexdef ::= DOT DOLLAR varvar AT ID",\r
+ /* 127 */ "indexdef ::= DOT ID",\r
+ /* 128 */ "indexdef ::= DOT BOOLEAN",\r
+ /* 129 */ "indexdef ::= DOT NULL",\r
+ /* 130 */ "indexdef ::= DOT INTEGER",\r
+ /* 131 */ "indexdef ::= DOT LDEL expr RDEL",\r
+ /* 132 */ "indexdef ::= OPENB ID CLOSEB",\r
+ /* 133 */ "indexdef ::= OPENB ID DOT ID CLOSEB",\r
+ /* 134 */ "indexdef ::= OPENB expr CLOSEB",\r
+ /* 135 */ "indexdef ::= OPENB CLOSEB",\r
+ /* 136 */ "varvar ::= varvarele",\r
+ /* 137 */ "varvar ::= varvar varvarele",\r
+ /* 138 */ "varvarele ::= ID",\r
+ /* 139 */ "varvarele ::= LDEL expr RDEL",\r
+ /* 140 */ "object ::= varindexed objectchain",\r
+ /* 141 */ "object ::= varindexed DOUBLECOLON ID",\r
+ /* 142 */ "objectchain ::= objectelement",\r
+ /* 143 */ "objectchain ::= objectchain objectelement",\r
+ /* 144 */ "objectelement ::= PTR ID arrayindex",\r
+ /* 145 */ "objectelement ::= PTR variable arrayindex",\r
+ /* 146 */ "objectelement ::= PTR LDEL expr RDEL arrayindex",\r
+ /* 147 */ "objectelement ::= PTR ID LDEL expr RDEL arrayindex",\r
+ /* 148 */ "objectelement ::= PTR method",\r
+ /* 149 */ "function ::= ID OPENP params CLOSEP",\r
+ /* 150 */ "method ::= ID OPENP params CLOSEP",\r
+ /* 151 */ "params ::= expr COMMA params",\r
+ /* 152 */ "params ::= expr",\r
+ /* 153 */ "params ::=",\r
+ /* 154 */ "modifier ::= VERT AT ID",\r
+ /* 155 */ "modifier ::= VERT ID",\r
+ /* 156 */ "static_class_access ::= method",\r
+ /* 157 */ "static_class_access ::= DOLLAR ID OPENP params CLOSEP",\r
+ /* 158 */ "static_class_access ::= method objectchain",\r
+ /* 159 */ "static_class_access ::= DOLLAR ID OPENP params CLOSEP objectchain",\r
+ /* 160 */ "static_class_access ::= ID",\r
+ /* 161 */ "static_class_access ::= DOLLAR ID arrayindex",\r
+ /* 162 */ "static_class_access ::= DOLLAR ID arrayindex objectchain",\r
+ /* 163 */ "modparameters ::= modparameters modparameter",\r
+ /* 164 */ "modparameters ::=",\r
+ /* 165 */ "modparameter ::= COLON value",\r
+ /* 166 */ "modparameter ::= COLON ID",\r
+ /* 167 */ "ifcond ::= EQUALS",\r
+ /* 168 */ "ifcond ::= NOTEQUALS",\r
+ /* 169 */ "ifcond ::= GREATERTHAN",\r
+ /* 170 */ "ifcond ::= LESSTHAN",\r
+ /* 171 */ "ifcond ::= GREATEREQUAL",\r
+ /* 172 */ "ifcond ::= LESSEQUAL",\r
+ /* 173 */ "ifcond ::= IDENTITY",\r
+ /* 174 */ "ifcond ::= NONEIDENTITY",\r
+ /* 175 */ "ifcond ::= MOD",\r
+ /* 176 */ "lop ::= LAND",\r
+ /* 177 */ "lop ::= LOR",\r
+ /* 178 */ "lop ::= LXOR",\r
+ /* 179 */ "array ::= OPENB arrayelements CLOSEB",\r
+ /* 180 */ "arrayelements ::= arrayelement",\r
+ /* 181 */ "arrayelements ::= arrayelements COMMA arrayelement",\r
+ /* 182 */ "arrayelements ::=",\r
+ /* 183 */ "arrayelement ::= value APTR expr",\r
+ /* 184 */ "arrayelement ::= ID APTR expr",\r
+ /* 185 */ "arrayelement ::= expr",\r
+ /* 186 */ "doublequoted_with_quotes ::= QUOTE QUOTE",\r
+ /* 187 */ "doublequoted_with_quotes ::= QUOTE doublequoted QUOTE",\r
+ /* 188 */ "doublequoted ::= doublequoted doublequotedcontent",\r
+ /* 189 */ "doublequoted ::= doublequotedcontent",\r
+ /* 190 */ "doublequotedcontent ::= BACKTICK variable BACKTICK",\r
+ /* 191 */ "doublequotedcontent ::= BACKTICK expr BACKTICK",\r
+ /* 192 */ "doublequotedcontent ::= DOLLARID",\r
+ /* 193 */ "doublequotedcontent ::= LDEL variable RDEL",\r
+ /* 194 */ "doublequotedcontent ::= LDEL expr RDEL",\r
+ /* 195 */ "doublequotedcontent ::= smartytag",\r
+ /* 196 */ "doublequotedcontent ::= OTHER",\r
+ /* 197 */ "optspace ::= SPACE",\r
+ /* 198 */ "optspace ::=",\r
);\r
\r
function tokenName($tokenType)\r
}\r
\r
static public $yyRuleInfo = array(\r
- array( 'lhs' => 84, 'rhs' => 1 ),\r
- array( 'lhs' => 85, 'rhs' => 1 ),\r
- array( 'lhs' => 85, 'rhs' => 2 ),\r
array( 'lhs' => 86, 'rhs' => 1 ),\r
- array( 'lhs' => 86, 'rhs' => 1 ),\r
- array( 'lhs' => 86, 'rhs' => 1 ),\r
- array( 'lhs' => 86, 'rhs' => 3 ),\r
- array( 'lhs' => 86, 'rhs' => 1 ),\r
- array( 'lhs' => 86, 'rhs' => 1 ),\r
- array( 'lhs' => 89, 'rhs' => 2 ),\r
- array( 'lhs' => 89, 'rhs' => 0 ),\r
- array( 'lhs' => 90, 'rhs' => 1 ),\r
- array( 'lhs' => 90, 'rhs' => 3 ),\r
- array( 'lhs' => 90, 'rhs' => 3 ),\r
- array( 'lhs' => 90, 'rhs' => 3 ),\r
+ array( 'lhs' => 87, 'rhs' => 1 ),\r
+ array( 'lhs' => 87, 'rhs' => 2 ),\r
+ array( 'lhs' => 88, 'rhs' => 1 ),\r
+ array( 'lhs' => 88, 'rhs' => 1 ),\r
+ array( 'lhs' => 88, 'rhs' => 1 ),\r
+ array( 'lhs' => 88, 'rhs' => 3 ),\r
+ array( 'lhs' => 88, 'rhs' => 1 ),\r
+ array( 'lhs' => 88, 'rhs' => 1 ),\r
+ array( 'lhs' => 88, 'rhs' => 1 ),\r
array( 'lhs' => 91, 'rhs' => 2 ),\r
array( 'lhs' => 91, 'rhs' => 0 ),\r
array( 'lhs' => 92, 'rhs' => 1 ),\r
array( 'lhs' => 92, 'rhs' => 3 ),\r
- array( 'lhs' => 88, 'rhs' => 2 ),\r
- array( 'lhs' => 88, 'rhs' => 3 ),\r
+ array( 'lhs' => 92, 'rhs' => 3 ),\r
+ array( 'lhs' => 92, 'rhs' => 3 ),\r
array( 'lhs' => 93, 'rhs' => 2 ),\r
array( 'lhs' => 93, 'rhs' => 0 ),\r
array( 'lhs' => 94, 'rhs' => 1 ),\r
- array( 'lhs' => 94, 'rhs' => 1 ),\r
- array( 'lhs' => 94, 'rhs' => 1 ),\r
- array( 'lhs' => 94, 'rhs' => 1 ),\r
- array( 'lhs' => 94, 'rhs' => 1 ),\r
- array( 'lhs' => 87, 'rhs' => 3 ),\r
- array( 'lhs' => 87, 'rhs' => 4 ),\r
- array( 'lhs' => 87, 'rhs' => 4 ),\r
- array( 'lhs' => 87, 'rhs' => 4 ),\r
- array( 'lhs' => 87, 'rhs' => 4 ),\r
- array( 'lhs' => 87, 'rhs' => 6 ),\r
- array( 'lhs' => 87, 'rhs' => 6 ),\r
- array( 'lhs' => 87, 'rhs' => 7 ),\r
- array( 'lhs' => 87, 'rhs' => 7 ),\r
- array( 'lhs' => 87, 'rhs' => 7 ),\r
- array( 'lhs' => 87, 'rhs' => 6 ),\r
- array( 'lhs' => 87, 'rhs' => 6 ),\r
- array( 'lhs' => 87, 'rhs' => 6 ),\r
- array( 'lhs' => 87, 'rhs' => 4 ),\r
- array( 'lhs' => 87, 'rhs' => 4 ),\r
- array( 'lhs' => 87, 'rhs' => 3 ),\r
- array( 'lhs' => 87, 'rhs' => 6 ),\r
- array( 'lhs' => 87, 'rhs' => 6 ),\r
- array( 'lhs' => 87, 'rhs' => 8 ),\r
- array( 'lhs' => 87, 'rhs' => 5 ),\r
- array( 'lhs' => 87, 'rhs' => 5 ),\r
- array( 'lhs' => 87, 'rhs' => 5 ),\r
- array( 'lhs' => 87, 'rhs' => 13 ),\r
- array( 'lhs' => 108, 'rhs' => 2 ),\r
- array( 'lhs' => 108, 'rhs' => 1 ),\r
- array( 'lhs' => 87, 'rhs' => 8 ),\r
- array( 'lhs' => 87, 'rhs' => 8 ),\r
- array( 'lhs' => 87, 'rhs' => 11 ),\r
- array( 'lhs' => 87, 'rhs' => 8 ),\r
- array( 'lhs' => 87, 'rhs' => 11 ),\r
- array( 'lhs' => 87, 'rhs' => 3 ),\r
- array( 'lhs' => 87, 'rhs' => 3 ),\r
- array( 'lhs' => 110, 'rhs' => 1 ),\r
- array( 'lhs' => 110, 'rhs' => 1 ),\r
- array( 'lhs' => 110, 'rhs' => 1 ),\r
- array( 'lhs' => 87, 'rhs' => 4 ),\r
- array( 'lhs' => 87, 'rhs' => 6 ),\r
- array( 'lhs' => 87, 'rhs' => 5 ),\r
- array( 'lhs' => 96, 'rhs' => 2 ),\r
+ array( 'lhs' => 94, 'rhs' => 3 ),\r
+ array( 'lhs' => 90, 'rhs' => 2 ),\r
+ array( 'lhs' => 90, 'rhs' => 3 ),\r
+ array( 'lhs' => 95, 'rhs' => 2 ),\r
+ array( 'lhs' => 95, 'rhs' => 0 ),\r
array( 'lhs' => 96, 'rhs' => 1 ),\r
- array( 'lhs' => 96, 'rhs' => 0 ),\r
- array( 'lhs' => 111, 'rhs' => 4 ),\r
- array( 'lhs' => 111, 'rhs' => 4 ),\r
- array( 'lhs' => 111, 'rhs' => 4 ),\r
- array( 'lhs' => 111, 'rhs' => 4 ),\r
- array( 'lhs' => 111, 'rhs' => 4 ),\r
- array( 'lhs' => 111, 'rhs' => 2 ),\r
- array( 'lhs' => 111, 'rhs' => 4 ),\r
- array( 'lhs' => 105, 'rhs' => 1 ),\r
- array( 'lhs' => 105, 'rhs' => 3 ),\r
- array( 'lhs' => 104, 'rhs' => 4 ),\r
- array( 'lhs' => 98, 'rhs' => 1 ),\r
+ array( 'lhs' => 96, 'rhs' => 1 ),\r
+ array( 'lhs' => 96, 'rhs' => 1 ),\r
+ array( 'lhs' => 96, 'rhs' => 1 ),\r
+ array( 'lhs' => 96, 'rhs' => 1 ),\r
+ array( 'lhs' => 89, 'rhs' => 3 ),\r
+ array( 'lhs' => 89, 'rhs' => 4 ),\r
+ array( 'lhs' => 89, 'rhs' => 4 ),\r
+ array( 'lhs' => 89, 'rhs' => 4 ),\r
+ array( 'lhs' => 89, 'rhs' => 4 ),\r
+ array( 'lhs' => 89, 'rhs' => 6 ),\r
+ array( 'lhs' => 89, 'rhs' => 6 ),\r
+ array( 'lhs' => 89, 'rhs' => 7 ),\r
+ array( 'lhs' => 89, 'rhs' => 7 ),\r
+ array( 'lhs' => 89, 'rhs' => 6 ),\r
+ array( 'lhs' => 89, 'rhs' => 6 ),\r
+ array( 'lhs' => 89, 'rhs' => 4 ),\r
+ array( 'lhs' => 89, 'rhs' => 4 ),\r
+ array( 'lhs' => 89, 'rhs' => 3 ),\r
+ array( 'lhs' => 89, 'rhs' => 6 ),\r
+ array( 'lhs' => 89, 'rhs' => 6 ),\r
+ array( 'lhs' => 89, 'rhs' => 8 ),\r
+ array( 'lhs' => 89, 'rhs' => 5 ),\r
+ array( 'lhs' => 89, 'rhs' => 5 ),\r
+ array( 'lhs' => 89, 'rhs' => 13 ),\r
+ array( 'lhs' => 109, 'rhs' => 2 ),\r
+ array( 'lhs' => 109, 'rhs' => 1 ),\r
+ array( 'lhs' => 89, 'rhs' => 8 ),\r
+ array( 'lhs' => 89, 'rhs' => 9 ),\r
+ array( 'lhs' => 89, 'rhs' => 8 ),\r
+ array( 'lhs' => 89, 'rhs' => 11 ),\r
+ array( 'lhs' => 89, 'rhs' => 8 ),\r
+ array( 'lhs' => 89, 'rhs' => 11 ),\r
+ array( 'lhs' => 89, 'rhs' => 3 ),\r
+ array( 'lhs' => 89, 'rhs' => 3 ),\r
+ array( 'lhs' => 111, 'rhs' => 1 ),\r
+ array( 'lhs' => 111, 'rhs' => 1 ),\r
+ array( 'lhs' => 111, 'rhs' => 1 ),\r
+ array( 'lhs' => 89, 'rhs' => 4 ),\r
+ array( 'lhs' => 89, 'rhs' => 6 ),\r
+ array( 'lhs' => 89, 'rhs' => 5 ),\r
+ array( 'lhs' => 98, 'rhs' => 2 ),\r
array( 'lhs' => 98, 'rhs' => 1 ),\r
- array( 'lhs' => 98, 'rhs' => 4 ),\r
- array( 'lhs' => 98, 'rhs' => 3 ),\r
- array( 'lhs' => 112, 'rhs' => 1 ),\r
- array( 'lhs' => 112, 'rhs' => 3 ),\r
- array( 'lhs' => 112, 'rhs' => 3 ),\r
- array( 'lhs' => 112, 'rhs' => 3 ),\r
- array( 'lhs' => 112, 'rhs' => 1 ),\r
- array( 'lhs' => 99, 'rhs' => 7 ),\r
- array( 'lhs' => 99, 'rhs' => 7 ),\r
- array( 'lhs' => 95, 'rhs' => 1 ),\r
- array( 'lhs' => 95, 'rhs' => 2 ),\r
- array( 'lhs' => 95, 'rhs' => 2 ),\r
- array( 'lhs' => 95, 'rhs' => 2 ),\r
- array( 'lhs' => 95, 'rhs' => 2 ),\r
- array( 'lhs' => 95, 'rhs' => 1 ),\r
- array( 'lhs' => 95, 'rhs' => 3 ),\r
- array( 'lhs' => 95, 'rhs' => 1 ),\r
- array( 'lhs' => 95, 'rhs' => 1 ),\r
- array( 'lhs' => 95, 'rhs' => 1 ),\r
- array( 'lhs' => 95, 'rhs' => 3 ),\r
- array( 'lhs' => 95, 'rhs' => 1 ),\r
- array( 'lhs' => 95, 'rhs' => 3 ),\r
- array( 'lhs' => 95, 'rhs' => 2 ),\r
- array( 'lhs' => 95, 'rhs' => 3 ),\r
- array( 'lhs' => 95, 'rhs' => 7 ),\r
- array( 'lhs' => 95, 'rhs' => 4 ),\r
- array( 'lhs' => 95, 'rhs' => 8 ),\r
- array( 'lhs' => 95, 'rhs' => 3 ),\r
- array( 'lhs' => 95, 'rhs' => 5 ),\r
- array( 'lhs' => 95, 'rhs' => 6 ),\r
- array( 'lhs' => 95, 'rhs' => 1 ),\r
+ array( 'lhs' => 98, 'rhs' => 0 ),\r
+ array( 'lhs' => 112, 'rhs' => 4 ),\r
+ array( 'lhs' => 112, 'rhs' => 4 ),\r
+ array( 'lhs' => 112, 'rhs' => 4 ),\r
+ array( 'lhs' => 112, 'rhs' => 4 ),\r
+ array( 'lhs' => 112, 'rhs' => 2 ),\r
+ array( 'lhs' => 112, 'rhs' => 4 ),\r
+ array( 'lhs' => 106, 'rhs' => 1 ),\r
+ array( 'lhs' => 106, 'rhs' => 3 ),\r
+ array( 'lhs' => 105, 'rhs' => 4 ),\r
+ array( 'lhs' => 100, 'rhs' => 1 ),\r
+ array( 'lhs' => 100, 'rhs' => 1 ),\r
+ array( 'lhs' => 100, 'rhs' => 4 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 1 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 2 ),\r
+ array( 'lhs' => 100, 'rhs' => 2 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 2 ),\r
+ array( 'lhs' => 100, 'rhs' => 2 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 100, 'rhs' => 3 ),\r
+ array( 'lhs' => 101, 'rhs' => 7 ),\r
+ array( 'lhs' => 97, 'rhs' => 1 ),\r
+ array( 'lhs' => 97, 'rhs' => 2 ),\r
+ array( 'lhs' => 97, 'rhs' => 2 ),\r
+ array( 'lhs' => 97, 'rhs' => 2 ),\r
+ array( 'lhs' => 97, 'rhs' => 2 ),\r
+ array( 'lhs' => 97, 'rhs' => 1 ),\r
+ array( 'lhs' => 97, 'rhs' => 3 ),\r
+ array( 'lhs' => 97, 'rhs' => 1 ),\r
array( 'lhs' => 97, 'rhs' => 1 ),\r
- array( 'lhs' => 97, 'rhs' => 4 ),\r
array( 'lhs' => 97, 'rhs' => 1 ),\r
array( 'lhs' => 97, 'rhs' => 3 ),\r
+ array( 'lhs' => 97, 'rhs' => 1 ),\r
+ array( 'lhs' => 97, 'rhs' => 1 ),\r
array( 'lhs' => 97, 'rhs' => 3 ),\r
- array( 'lhs' => 101, 'rhs' => 3 ),\r
- array( 'lhs' => 118, 'rhs' => 2 ),\r
- array( 'lhs' => 118, 'rhs' => 0 ),\r
+ array( 'lhs' => 97, 'rhs' => 1 ),\r
+ array( 'lhs' => 97, 'rhs' => 3 ),\r
+ array( 'lhs' => 99, 'rhs' => 1 ),\r
+ array( 'lhs' => 99, 'rhs' => 4 ),\r
+ array( 'lhs' => 99, 'rhs' => 1 ),\r
+ array( 'lhs' => 99, 'rhs' => 3 ),\r
+ array( 'lhs' => 99, 'rhs' => 3 ),\r
+ array( 'lhs' => 102, 'rhs' => 3 ),\r
+ array( 'lhs' => 119, 'rhs' => 2 ),\r
+ array( 'lhs' => 119, 'rhs' => 0 ),\r
array( 'lhs' => 120, 'rhs' => 3 ),\r
array( 'lhs' => 120, 'rhs' => 5 ),\r
array( 'lhs' => 120, 'rhs' => 2 ),\r
array( 'lhs' => 120, 'rhs' => 5 ),\r
array( 'lhs' => 120, 'rhs' => 3 ),\r
array( 'lhs' => 120, 'rhs' => 2 ),\r
- array( 'lhs' => 107, 'rhs' => 1 ),\r
- array( 'lhs' => 107, 'rhs' => 2 ),\r
+ array( 'lhs' => 108, 'rhs' => 1 ),\r
+ array( 'lhs' => 108, 'rhs' => 2 ),\r
array( 'lhs' => 121, 'rhs' => 1 ),\r
array( 'lhs' => 121, 'rhs' => 3 ),\r
- array( 'lhs' => 119, 'rhs' => 2 ),\r
- array( 'lhs' => 117, 'rhs' => 1 ),\r
- array( 'lhs' => 117, 'rhs' => 2 ),\r
- array( 'lhs' => 122, 'rhs' => 3 ),\r
- array( 'lhs' => 122, 'rhs' => 3 ),\r
- array( 'lhs' => 122, 'rhs' => 5 ),\r
- array( 'lhs' => 122, 'rhs' => 6 ),\r
+ array( 'lhs' => 118, 'rhs' => 2 ),\r
+ array( 'lhs' => 118, 'rhs' => 3 ),\r
+ array( 'lhs' => 122, 'rhs' => 1 ),\r
array( 'lhs' => 122, 'rhs' => 2 ),\r
- array( 'lhs' => 113, 'rhs' => 4 ),\r
- array( 'lhs' => 115, 'rhs' => 4 ),\r
- array( 'lhs' => 116, 'rhs' => 3 ),\r
- array( 'lhs' => 116, 'rhs' => 1 ),\r
- array( 'lhs' => 116, 'rhs' => 0 ),\r
- array( 'lhs' => 102, 'rhs' => 3 ),\r
- array( 'lhs' => 102, 'rhs' => 2 ),\r
- array( 'lhs' => 103, 'rhs' => 2 ),\r
- array( 'lhs' => 103, 'rhs' => 0 ),\r
- array( 'lhs' => 123, 'rhs' => 2 ),\r
+ array( 'lhs' => 123, 'rhs' => 3 ),\r
+ array( 'lhs' => 123, 'rhs' => 3 ),\r
+ array( 'lhs' => 123, 'rhs' => 5 ),\r
+ array( 'lhs' => 123, 'rhs' => 6 ),\r
array( 'lhs' => 123, 'rhs' => 2 ),\r
- array( 'lhs' => 100, 'rhs' => 1 ),\r
- array( 'lhs' => 100, 'rhs' => 2 ),\r
- array( 'lhs' => 100, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 1 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 2 ),\r
- array( 'lhs' => 124, 'rhs' => 2 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 2 ),\r
- array( 'lhs' => 124, 'rhs' => 2 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 124, 'rhs' => 3 ),\r
- array( 'lhs' => 125, 'rhs' => 1 ),\r
- array( 'lhs' => 125, 'rhs' => 1 ),\r
- array( 'lhs' => 125, 'rhs' => 1 ),\r
- array( 'lhs' => 125, 'rhs' => 1 ),\r
- array( 'lhs' => 125, 'rhs' => 1 ),\r
- array( 'lhs' => 125, 'rhs' => 1 ),\r
- array( 'lhs' => 125, 'rhs' => 1 ),\r
- array( 'lhs' => 125, 'rhs' => 1 ),\r
+ array( 'lhs' => 115, 'rhs' => 4 ),\r
+ array( 'lhs' => 124, 'rhs' => 4 ),\r
+ array( 'lhs' => 125, 'rhs' => 3 ),\r
array( 'lhs' => 125, 'rhs' => 1 ),\r
- array( 'lhs' => 126, 'rhs' => 1 ),\r
- array( 'lhs' => 126, 'rhs' => 1 ),\r
- array( 'lhs' => 126, 'rhs' => 1 ),\r
- array( 'lhs' => 109, 'rhs' => 3 ),\r
+ array( 'lhs' => 125, 'rhs' => 0 ),\r
+ array( 'lhs' => 103, 'rhs' => 3 ),\r
+ array( 'lhs' => 103, 'rhs' => 2 ),\r
+ array( 'lhs' => 117, 'rhs' => 1 ),\r
+ array( 'lhs' => 117, 'rhs' => 5 ),\r
+ array( 'lhs' => 117, 'rhs' => 2 ),\r
+ array( 'lhs' => 117, 'rhs' => 6 ),\r
+ array( 'lhs' => 117, 'rhs' => 1 ),\r
+ array( 'lhs' => 117, 'rhs' => 3 ),\r
+ array( 'lhs' => 117, 'rhs' => 4 ),\r
+ array( 'lhs' => 104, 'rhs' => 2 ),\r
+ array( 'lhs' => 104, 'rhs' => 0 ),\r
+ array( 'lhs' => 126, 'rhs' => 2 ),\r
+ array( 'lhs' => 126, 'rhs' => 2 ),\r
+ array( 'lhs' => 113, 'rhs' => 1 ),\r
+ array( 'lhs' => 113, 'rhs' => 1 ),\r
+ array( 'lhs' => 113, 'rhs' => 1 ),\r
+ array( 'lhs' => 113, 'rhs' => 1 ),\r
+ array( 'lhs' => 113, 'rhs' => 1 ),\r
+ array( 'lhs' => 113, 'rhs' => 1 ),\r
+ array( 'lhs' => 113, 'rhs' => 1 ),\r
+ array( 'lhs' => 113, 'rhs' => 1 ),\r
+ array( 'lhs' => 113, 'rhs' => 1 ),\r
+ array( 'lhs' => 114, 'rhs' => 1 ),\r
+ array( 'lhs' => 114, 'rhs' => 1 ),\r
+ array( 'lhs' => 114, 'rhs' => 1 ),\r
+ array( 'lhs' => 110, 'rhs' => 3 ),\r
array( 'lhs' => 127, 'rhs' => 1 ),\r
array( 'lhs' => 127, 'rhs' => 3 ),\r
array( 'lhs' => 127, 'rhs' => 0 ),\r
array( 'lhs' => 128, 'rhs' => 3 ),\r
array( 'lhs' => 128, 'rhs' => 3 ),\r
array( 'lhs' => 128, 'rhs' => 1 ),\r
- array( 'lhs' => 114, 'rhs' => 2 ),\r
- array( 'lhs' => 114, 'rhs' => 1 ),\r
- array( 'lhs' => 129, 'rhs' => 3 ),\r
- array( 'lhs' => 129, 'rhs' => 3 ),\r
- array( 'lhs' => 129, 'rhs' => 1 ),\r
- array( 'lhs' => 129, 'rhs' => 3 ),\r
- array( 'lhs' => 129, 'rhs' => 3 ),\r
- array( 'lhs' => 129, 'rhs' => 1 ),\r
+ array( 'lhs' => 116, 'rhs' => 2 ),\r
+ array( 'lhs' => 116, 'rhs' => 3 ),\r
+ array( 'lhs' => 129, 'rhs' => 2 ),\r
array( 'lhs' => 129, 'rhs' => 1 ),\r
- array( 'lhs' => 106, 'rhs' => 1 ),\r
- array( 'lhs' => 106, 'rhs' => 0 ),\r
+ array( 'lhs' => 130, 'rhs' => 3 ),\r
+ array( 'lhs' => 130, 'rhs' => 3 ),\r
+ array( 'lhs' => 130, 'rhs' => 1 ),\r
+ array( 'lhs' => 130, 'rhs' => 3 ),\r
+ array( 'lhs' => 130, 'rhs' => 3 ),\r
+ array( 'lhs' => 130, 'rhs' => 1 ),\r
+ array( 'lhs' => 130, 'rhs' => 1 ),\r
+ array( 'lhs' => 107, 'rhs' => 1 ),\r
+ array( 'lhs' => 107, 'rhs' => 0 ),\r
);\r
\r
static public $yyReduceMap = array(\r
0 => 0,\r
5 => 0,\r
- 11 => 0,\r
- 17 => 0,\r
- 23 => 0,\r
+ 12 => 0,\r
+ 18 => 0,\r
24 => 0,\r
+ 25 => 0,\r
+ 59 => 0,\r
60 => 0,\r
61 => 0,\r
- 62 => 0,\r
- 83 => 0,\r
- 90 => 0,\r
- 95 => 0,\r
- 97 => 0,\r
- 98 => 0,\r
- 99 => 0,\r
+ 77 => 0,\r
101 => 0,\r
- 114 => 0,\r
- 187 => 0,\r
+ 106 => 0,\r
+ 108 => 0,\r
+ 109 => 0,\r
+ 110 => 0,\r
+ 112 => 0,\r
+ 113 => 0,\r
+ 119 => 0,\r
+ 156 => 0,\r
+ 180 => 0,\r
1 => 1,\r
2 => 2,\r
3 => 3,\r
7 => 7,\r
8 => 8,\r
9 => 9,\r
- 15 => 9,\r
- 21 => 9,\r
- 91 => 9,\r
- 93 => 9,\r
- 94 => 9,\r
10 => 10,\r
16 => 10,\r
- 19 => 10,\r
22 => 10,\r
- 12 => 12,\r
- 13 => 12,\r
- 14 => 12,\r
- 18 => 12,\r
- 20 => 20,\r
- 25 => 25,\r
- 26 => 25,\r
- 27 => 27,\r
+ 102 => 10,\r
+ 104 => 10,\r
+ 105 => 10,\r
+ 158 => 10,\r
+ 11 => 11,\r
+ 17 => 11,\r
+ 20 => 11,\r
+ 23 => 11,\r
+ 13 => 13,\r
+ 14 => 13,\r
+ 15 => 13,\r
+ 19 => 13,\r
+ 21 => 21,\r
+ 26 => 26,\r
+ 27 => 26,\r
28 => 28,\r
29 => 29,\r
- 30 => 29,\r
- 31 => 29,\r
- 32 => 29,\r
- 33 => 33,\r
- 34 => 33,\r
- 35 => 35,\r
- 36 => 35,\r
- 37 => 35,\r
+ 30 => 30,\r
+ 31 => 30,\r
+ 32 => 30,\r
+ 33 => 30,\r
+ 34 => 34,\r
+ 35 => 34,\r
+ 36 => 36,\r
+ 37 => 36,\r
38 => 38,\r
39 => 38,\r
- 40 => 38,\r
- 41 => 41,\r
- 42 => 41,\r
+ 40 => 40,\r
+ 41 => 40,\r
+ 42 => 42,\r
43 => 43,\r
44 => 44,\r
45 => 45,\r
46 => 46,\r
- 47 => 47,\r
- 49 => 47,\r
+ 47 => 46,\r
48 => 48,\r
+ 49 => 49,\r
50 => 50,\r
+ 66 => 50,\r
+ 152 => 50,\r
+ 160 => 50,\r
+ 185 => 50,\r
51 => 51,\r
52 => 52,\r
- 67 => 52,\r
- 146 => 52,\r
- 192 => 52,\r
53 => 53,\r
54 => 54,\r
55 => 55,\r
56 => 56,\r
57 => 57,\r
- 58 => 58,\r
- 59 => 58,\r
+ 58 => 57,\r
+ 62 => 62,\r
63 => 63,\r
64 => 64,\r
65 => 65,\r
- 66 => 66,\r
+ 67 => 67,\r
68 => 68,\r
69 => 69,\r
- 70 => 70,\r
- 71 => 70,\r
- 72 => 70,\r
- 73 => 70,\r
- 75 => 70,\r
+ 70 => 69,\r
+ 71 => 69,\r
+ 73 => 69,\r
+ 72 => 72,\r
74 => 74,\r
+ 75 => 75,\r
76 => 76,\r
- 77 => 77,\r
78 => 78,\r
79 => 79,\r
80 => 80,\r
- 87 => 80,\r
- 131 => 80,\r
- 154 => 80,\r
- 194 => 80,\r
- 201 => 80,\r
- 202 => 80,\r
- 81 => 81,\r
- 82 => 82,\r
+ 81 => 80,\r
+ 82 => 80,\r
+ 83 => 83,\r
+ 136 => 83,\r
+ 197 => 83,\r
84 => 84,\r
- 85 => 84,\r
- 86 => 84,\r
+ 87 => 84,\r
+ 98 => 84,\r
+ 85 => 85,\r
+ 86 => 86,\r
88 => 88,\r
- 89 => 88,\r
+ 89 => 89,\r
+ 90 => 90,\r
+ 95 => 90,\r
+ 91 => 91,\r
+ 94 => 91,\r
92 => 92,\r
- 96 => 96,\r
+ 97 => 92,\r
+ 93 => 93,\r
+ 96 => 93,\r
+ 99 => 99,\r
100 => 100,\r
- 102 => 102,\r
103 => 103,\r
- 104 => 104,\r
- 105 => 105,\r
- 106 => 106,\r
107 => 107,\r
- 108 => 108,\r
- 109 => 109,\r
- 110 => 110,\r
111 => 111,\r
- 112 => 112,\r
- 113 => 113,\r
+ 114 => 114,\r
115 => 115,\r
116 => 116,\r
117 => 117,\r
118 => 118,\r
- 193 => 118,\r
- 119 => 119,\r
- 151 => 119,\r
120 => 120,\r
121 => 121,\r
122 => 122,\r
- 123 => 122,\r
- 124 => 122,\r
+ 123 => 123,\r
+ 124 => 124,\r
+ 164 => 124,\r
125 => 125,\r
126 => 126,\r
- 129 => 126,\r
127 => 127,\r
- 128 => 128,\r
+ 128 => 127,\r
+ 129 => 127,\r
130 => 130,\r
- 203 => 130,\r
+ 131 => 131,\r
+ 134 => 131,\r
132 => 132,\r
133 => 133,\r
- 134 => 134,\r
- 156 => 134,\r
135 => 135,\r
- 136 => 136,\r
+ 198 => 135,\r
137 => 137,\r
138 => 138,\r
139 => 139,\r
143 => 143,\r
144 => 144,\r
145 => 145,\r
+ 146 => 146,\r
147 => 147,\r
148 => 148,\r
- 149 => 148,\r
+ 149 => 149,\r
150 => 150,\r
- 152 => 152,\r
+ 151 => 151,\r
153 => 153,\r
- 155 => 155,\r
+ 154 => 154,\r
+ 155 => 154,\r
157 => 157,\r
- 158 => 158,\r
- 161 => 158,\r
- 172 => 158,\r
159 => 159,\r
- 160 => 160,\r
+ 161 => 161,\r
162 => 162,\r
163 => 163,\r
- 164 => 164,\r
- 169 => 164,\r
165 => 165,\r
- 168 => 165,\r
166 => 166,\r
- 171 => 166,\r
167 => 167,\r
- 170 => 167,\r
+ 168 => 168,\r
+ 169 => 169,\r
+ 170 => 170,\r
+ 171 => 171,\r
+ 172 => 172,\r
173 => 173,\r
174 => 174,\r
175 => 175,\r
177 => 177,\r
178 => 178,\r
179 => 179,\r
- 180 => 180,\r
181 => 181,\r
182 => 182,\r
183 => 183,\r
184 => 184,\r
- 185 => 185,\r
186 => 186,\r
+ 187 => 187,\r
188 => 188,\r
189 => 189,\r
190 => 190,\r
- 191 => 191,\r
+ 191 => 190,\r
+ 193 => 190,\r
+ 192 => 192,\r
+ 194 => 194,\r
195 => 195,\r
- 198 => 195,\r
196 => 196,\r
- 197 => 197,\r
- 199 => 199,\r
- 200 => 200,\r
);\r
-#line 81 "smarty_internal_templateparser.y"\r
+#line 84 "smarty_internal_templateparser.y"\r
function yy_r0(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2044 "smarty_internal_templateparser.php"\r
-#line 87 "smarty_internal_templateparser.y"\r
+#line 2048 "smarty_internal_templateparser.php"\r
+#line 90 "smarty_internal_templateparser.y"\r
function yy_r1(){if ($this->template->extract_code == false) {\r
$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;\r
} else {\r
$this->template->extracted_compiled_code .= $this->yystack[$this->yyidx + 0]->minor;\r
} \r
}\r
-#line 2053 "smarty_internal_templateparser.php"\r
-#line 95 "smarty_internal_templateparser.y"\r
+#line 2057 "smarty_internal_templateparser.php"\r
+#line 98 "smarty_internal_templateparser.y"\r
function yy_r2(){if ($this->template->extract_code == false) {\r
$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor;\r
} else {\r
$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor;\r
} \r
}\r
-#line 2063 "smarty_internal_templateparser.php"\r
-#line 108 "smarty_internal_templateparser.y"\r
+#line 2067 "smarty_internal_templateparser.php"\r
+#line 111 "smarty_internal_templateparser.y"\r
function yy_r3(){\r
if ($this->compiler->has_code) {\r
$tmp =''; foreach ($this->compiler->prefix_code as $code) {$tmp.=$code;} $this->compiler->prefix_code=array();\r
$this->_retvalue = $this->compiler->processNocacheCode($tmp.$this->yystack[$this->yyidx + 0]->minor,true);\r
- } else { $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;} $this->compiler->has_variable_string = false; }\r
-#line 2070 "smarty_internal_templateparser.php"\r
-#line 115 "smarty_internal_templateparser.y"\r
+ } else { \r
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor;\r
+ } \r
+ $this->compiler->has_variable_string = false;\r
+ $this->block_nesting_level = count($this->compiler->_tag_stack);\r
+ }\r
+#line 2079 "smarty_internal_templateparser.php"\r
+#line 123 "smarty_internal_templateparser.y"\r
function yy_r4(){ $this->_retvalue = ''; }\r
-#line 2073 "smarty_internal_templateparser.php"\r
-#line 121 "smarty_internal_templateparser.y"\r
+#line 2082 "smarty_internal_templateparser.php"\r
+#line 129 "smarty_internal_templateparser.y"\r
function yy_r6(){\r
if ($this->sec_obj->php_handling == SMARTY_PHP_PASSTHRU) {\r
$this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + -2]->minor) . str_replace('<?','<?',$this->yystack[$this->yyidx + -1]->minor) . '?<??>>';\r
$this->_retvalue = '';\r
}\r
}\r
-#line 2086 "smarty_internal_templateparser.php"\r
-#line 135 "smarty_internal_templateparser.y"\r
+#line 2095 "smarty_internal_templateparser.php"\r
+#line 141 "smarty_internal_templateparser.y"\r
function yy_r7(){if ($this->lex->strip) {\r
- $this->_retvalue = preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor); \r
+ $this->_retvalue = preg_replace('![\$this->yystack[$this->yyidx + 0]->minor ]*[\r\n]+[\$this->yystack[$this->yyidx + 0]->minor ]*!', '', self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)); \r
} else {\r
- $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; \r
+ $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor); \r
}\r
}\r
-#line 2094 "smarty_internal_templateparser.php"\r
-#line 141 "smarty_internal_templateparser.y"\r
- function yy_r8(){if ($this->lex->strip) {\r
- $this->_retvalue = preg_replace('![\$this->yystack[$this->yyidx + 0]->minor ]*[\r\n]+[\$this->yystack[$this->yyidx + 0]->minor ]*!', '', self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor)); \r
+#line 2103 "smarty_internal_templateparser.php"\r
+#line 149 "smarty_internal_templateparser.y"\r
+ function yy_r8(){ $this->compiler->tag_nocache = true; $this->_retvalue = $this->compiler->processNocacheCode("<?php echo '<?xml';?>", $this->compiler, true); }\r
+#line 2106 "smarty_internal_templateparser.php"\r
+#line 152 "smarty_internal_templateparser.y"\r
+ function yy_r9(){if ($this->lex->strip) {\r
+ $this->_retvalue = preg_replace('![\t ]*[\r\n]+[\t ]*!', '', $this->yystack[$this->yyidx + 0]->minor); \r
} else {\r
- $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor); \r
+ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; \r
}\r
}\r
-#line 2102 "smarty_internal_templateparser.php"\r
-#line 150 "smarty_internal_templateparser.y"\r
- function yy_r9(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2105 "smarty_internal_templateparser.php"\r
-#line 151 "smarty_internal_templateparser.y"\r
- function yy_r10(){ $this->_retvalue = ''; }\r
-#line 2108 "smarty_internal_templateparser.php"\r
-#line 154 "smarty_internal_templateparser.y"\r
- function yy_r12(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2111 "smarty_internal_templateparser.php"\r
-#line 167 "smarty_internal_templateparser.y"\r
- function yy_r20(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; }\r
#line 2114 "smarty_internal_templateparser.php"\r
-#line 174 "smarty_internal_templateparser.y"\r
- function yy_r25(){ $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor); }\r
+#line 160 "smarty_internal_templateparser.y"\r
+ function yy_r10(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2117 "smarty_internal_templateparser.php"\r
-#line 176 "smarty_internal_templateparser.y"\r
- function yy_r27(){ $this->_retvalue = self::escape_end_tag($this->yystack[$this->yyidx + 0]->minor); }\r
+#line 161 "smarty_internal_templateparser.y"\r
+ function yy_r11(){ $this->_retvalue = ''; }\r
#line 2120 "smarty_internal_templateparser.php"\r
-#line 184 "smarty_internal_templateparser.y"\r
- function yy_r28(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array('value'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 164 "smarty_internal_templateparser.y"\r
+ function yy_r13(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2123 "smarty_internal_templateparser.php"\r
-#line 185 "smarty_internal_templateparser.y"\r
- function yy_r29(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 177 "smarty_internal_templateparser.y"\r
+ function yy_r21(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; }\r
#line 2126 "smarty_internal_templateparser.php"\r
-#line 196 "smarty_internal_templateparser.y"\r
- function yy_r33(){ $this->_retvalue = $this->compiler->compileTag('assign',array('value'=>$this->yystack[$this->yyidx + -1]->minor,'var'=>"'".$this->yystack[$this->yyidx + -3]->minor."'")); }\r
+#line 184 "smarty_internal_templateparser.y"\r
+ function yy_r26(){ $this->_retvalue = self::escape_start_tag($this->yystack[$this->yyidx + 0]->minor); }\r
#line 2129 "smarty_internal_templateparser.php"\r
-#line 198 "smarty_internal_templateparser.y"\r
- function yy_r35(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor,'var'=>"'".$this->yystack[$this->yyidx + -4]->minor."'"),$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 186 "smarty_internal_templateparser.y"\r
+ function yy_r28(){ $this->_retvalue = self::escape_end_tag($this->yystack[$this->yyidx + 0]->minor); }\r
#line 2132 "smarty_internal_templateparser.php"\r
-#line 201 "smarty_internal_templateparser.y"\r
- function yy_r38(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 194 "smarty_internal_templateparser.y"\r
+ function yy_r29(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array('value'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
#line 2135 "smarty_internal_templateparser.php"\r
-#line 205 "smarty_internal_templateparser.y"\r
- function yy_r41(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + -1]->minor); }\r
+#line 195 "smarty_internal_templateparser.y"\r
+ function yy_r30(){ $this->_retvalue = $this->compiler->compileTag('private_print_expression',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); }\r
#line 2138 "smarty_internal_templateparser.php"\r
-#line 207 "smarty_internal_templateparser.y"\r
- function yy_r43(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,array()); }\r
+#line 206 "smarty_internal_templateparser.y"\r
+ function yy_r34(){ $this->_retvalue = $this->compiler->compileTag('assign',array('value'=>$this->yystack[$this->yyidx + -1]->minor,'var'=>"'".$this->yystack[$this->yyidx + -3]->minor."'")); }\r
#line 2141 "smarty_internal_templateparser.php"\r
-#line 209 "smarty_internal_templateparser.y"\r
- function yy_r44(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,array_merge(array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 208 "smarty_internal_templateparser.y"\r
+ function yy_r36(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor,'var'=>"'".$this->yystack[$this->yyidx + -4]->minor."'"),$this->yystack[$this->yyidx + -1]->minor)); }\r
#line 2144 "smarty_internal_templateparser.php"\r
-#line 211 "smarty_internal_templateparser.y"\r
- function yy_r45(){ $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';\r
+#line 210 "smarty_internal_templateparser.y"\r
+ function yy_r38(){ $this->_retvalue = $this->compiler->compileTag('assign',array_merge(array('value'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 2147 "smarty_internal_templateparser.php"\r
+#line 213 "smarty_internal_templateparser.y"\r
+ function yy_r40(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor,$this->yystack[$this->yyidx + -1]->minor); }\r
+#line 2150 "smarty_internal_templateparser.php"\r
+#line 215 "smarty_internal_templateparser.y"\r
+ function yy_r42(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor,array()); }\r
+#line 2153 "smarty_internal_templateparser.php"\r
+#line 217 "smarty_internal_templateparser.y"\r
+ function yy_r43(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,array_merge(array('object_methode'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 2156 "smarty_internal_templateparser.php"\r
+#line 219 "smarty_internal_templateparser.y"\r
+ function yy_r44(){ $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor,$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';\r
$this->_retvalue .= $this->compiler->compileTag('private_modifier',array('modifier'=>$this->yystack[$this->yyidx + -3]->minor,'params'=>'ob_get_clean()'.$this->yystack[$this->yyidx + -2]->minor)).'?>';\r
}\r
-#line 2149 "smarty_internal_templateparser.php"\r
-#line 215 "smarty_internal_templateparser.y"\r
- function yy_r46(){ $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array_merge(array('object_methode'=>$this->yystack[$this->yyidx + -4]->minor),$this->yystack[$this->yyidx + -1]->minor)).'<?php echo ';\r
+#line 2161 "smarty_internal_templateparser.php"\r
+#line 223 "smarty_internal_templateparser.y"\r
+ function yy_r45(){ $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array_merge(array('object_methode'=>$this->yystack[$this->yyidx + -4]->minor),$this->yystack[$this->yyidx + -1]->minor)).'<?php echo ';\r
$this->_retvalue .= $this->compiler->compileTag('private_modifier',array('modifier'=>$this->yystack[$this->yyidx + -3]->minor,'params'=>'ob_get_clean()'.$this->yystack[$this->yyidx + -2]->minor)).'?>';\r
}\r
-#line 2154 "smarty_internal_templateparser.php"\r
-#line 219 "smarty_internal_templateparser.y"\r
- function yy_r47(){ $this->_retvalue = $this->compiler->compileTag(($this->yystack[$this->yyidx + -3]->minor == 'else if')? 'elseif' : $this->yystack[$this->yyidx + -3]->minor,array('if condition'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
-#line 2157 "smarty_internal_templateparser.php"\r
-#line 220 "smarty_internal_templateparser.y"\r
- function yy_r48(){ $this->_retvalue = $this->compiler->compileTag(($this->yystack[$this->yyidx + -3]->minor == 'else if')? 'elseif' : $this->yystack[$this->yyidx + -3]->minor,array('if condition'=>trim($this->yystack[$this->yyidx + -2]->minor).$this->yystack[$this->yyidx + -1]->minor)); }\r
-#line 2160 "smarty_internal_templateparser.php"\r
-#line 223 "smarty_internal_templateparser.y"\r
- function yy_r50(){\r
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -11]->minor,array('start'=>$this->yystack[$this->yyidx + -9]->minor,'ifexp'=>$this->yystack[$this->yyidx + -6]->minor,'varloop'=>$this->yystack[$this->yyidx + -2]->minor,'loop'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
-#line 2164 "smarty_internal_templateparser.php"\r
-#line 225 "smarty_internal_templateparser.y"\r
- function yy_r51(){ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2167 "smarty_internal_templateparser.php"\r
-#line 226 "smarty_internal_templateparser.y"\r
- function yy_r52(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2170 "smarty_internal_templateparser.php"\r
+#line 2166 "smarty_internal_templateparser.php"\r
#line 227 "smarty_internal_templateparser.y"\r
- function yy_r53(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array_merge(array('start'=>$this->yystack[$this->yyidx + -4]->minor,'to'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); }\r
-#line 2173 "smarty_internal_templateparser.php"\r
+ function yy_r46(){ $this->_retvalue = $this->compiler->compileTag(($this->yystack[$this->yyidx + -3]->minor == 'else if')? 'elseif' : $this->yystack[$this->yyidx + -3]->minor,array('if condition'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 2169 "smarty_internal_templateparser.php"\r
#line 230 "smarty_internal_templateparser.y"\r
- function yy_r54(){\r
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array('from'=>$this->yystack[$this->yyidx + -4]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
-#line 2177 "smarty_internal_templateparser.php"\r
-#line 232 "smarty_internal_templateparser.y"\r
- function yy_r55(){\r
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -9]->minor,array('from'=>$this->yystack[$this->yyidx + -7]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor,'key'=>$this->yystack[$this->yyidx + -4]->minor)); }\r
-#line 2181 "smarty_internal_templateparser.php"\r
+ function yy_r48(){\r
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -11]->minor,array('start'=>$this->yystack[$this->yyidx + -9]->minor,'ifexp'=>$this->yystack[$this->yyidx + -6]->minor,'varloop'=>$this->yystack[$this->yyidx + -2]->minor,'loop'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 2173 "smarty_internal_templateparser.php"\r
+#line 233 "smarty_internal_templateparser.y"\r
+ function yy_r49(){ $this->_retvalue = '='.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 2176 "smarty_internal_templateparser.php"\r
#line 234 "smarty_internal_templateparser.y"\r
- function yy_r56(){ \r
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array('from'=>$this->yystack[$this->yyidx + -4]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
-#line 2185 "smarty_internal_templateparser.php"\r
+ function yy_r50(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }\r
+#line 2179 "smarty_internal_templateparser.php"\r
+#line 235 "smarty_internal_templateparser.y"\r
+ function yy_r51(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array_merge(array('start'=>$this->yystack[$this->yyidx + -4]->minor,'to'=>$this->yystack[$this->yyidx + -2]->minor),$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 2182 "smarty_internal_templateparser.php"\r
#line 236 "smarty_internal_templateparser.y"\r
- function yy_r57(){ \r
- $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -9]->minor,array('from'=>$this->yystack[$this->yyidx + -7]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor,'key'=>$this->yystack[$this->yyidx + -4]->minor)); }\r
+ function yy_r52(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -7]->minor,array('start'=>$this->yystack[$this->yyidx + -5]->minor,'to'=>$this->yystack[$this->yyidx + -3]->minor,'step'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 2185 "smarty_internal_templateparser.php"\r
+#line 238 "smarty_internal_templateparser.y"\r
+ function yy_r53(){\r
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array('from'=>$this->yystack[$this->yyidx + -4]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
#line 2189 "smarty_internal_templateparser.php"\r
#line 240 "smarty_internal_templateparser.y"\r
- function yy_r58(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array()); }\r
-#line 2192 "smarty_internal_templateparser.php"\r
-#line 245 "smarty_internal_templateparser.y"\r
- function yy_r63(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',$this->yystack[$this->yyidx + -1]->minor); }\r
-#line 2195 "smarty_internal_templateparser.php"\r
-#line 246 "smarty_internal_templateparser.y"\r
- function yy_r64(){ $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor.'close',$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';\r
+ function yy_r54(){\r
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -9]->minor,array('from'=>$this->yystack[$this->yyidx + -7]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor,'key'=>$this->yystack[$this->yyidx + -4]->minor)); }\r
+#line 2193 "smarty_internal_templateparser.php"\r
+#line 242 "smarty_internal_templateparser.y"\r
+ function yy_r55(){ \r
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -6]->minor,array('from'=>$this->yystack[$this->yyidx + -4]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
+#line 2197 "smarty_internal_templateparser.php"\r
+#line 244 "smarty_internal_templateparser.y"\r
+ function yy_r56(){ \r
+ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -9]->minor,array('from'=>$this->yystack[$this->yyidx + -7]->minor,'item'=>$this->yystack[$this->yyidx + -1]->minor,'key'=>$this->yystack[$this->yyidx + -4]->minor)); }\r
+#line 2201 "smarty_internal_templateparser.php"\r
+#line 248 "smarty_internal_templateparser.y"\r
+ function yy_r57(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -1]->minor.'close',array()); }\r
+#line 2204 "smarty_internal_templateparser.php"\r
+#line 253 "smarty_internal_templateparser.y"\r
+ function yy_r62(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -2]->minor.'close',$this->yystack[$this->yyidx + -1]->minor); }\r
+#line 2207 "smarty_internal_templateparser.php"\r
+#line 254 "smarty_internal_templateparser.y"\r
+ function yy_r63(){ $this->_retvalue = '<?php ob_start();?>'.$this->compiler->compileTag($this->yystack[$this->yyidx + -4]->minor.'close',$this->yystack[$this->yyidx + -1]->minor).'<?php echo ';\r
$this->_retvalue .= $this->compiler->compileTag('private_modifier',array('modifier'=>$this->yystack[$this->yyidx + -3]->minor,'params'=>'ob_get_clean()'.$this->yystack[$this->yyidx + -2]->minor)).'?>';\r
}\r
-#line 2200 "smarty_internal_templateparser.php"\r
-#line 250 "smarty_internal_templateparser.y"\r
- function yy_r65(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
-#line 2203 "smarty_internal_templateparser.php"\r
-#line 257 "smarty_internal_templateparser.y"\r
- function yy_r66(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); }\r
-#line 2206 "smarty_internal_templateparser.php"\r
-#line 261 "smarty_internal_templateparser.y"\r
- function yy_r68(){ $this->_retvalue = array(); }\r
-#line 2209 "smarty_internal_templateparser.php"\r
-#line 264 "smarty_internal_templateparser.y"\r
- function yy_r69(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>"'".$this->yystack[$this->yyidx + 0]->minor."'"); }\r
#line 2212 "smarty_internal_templateparser.php"\r
-#line 265 "smarty_internal_templateparser.y"\r
- function yy_r70(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); }\r
+#line 258 "smarty_internal_templateparser.y"\r
+ function yy_r64(){ $this->_retvalue = $this->compiler->compileTag($this->yystack[$this->yyidx + -3]->minor.'close',array('object_methode'=>$this->yystack[$this->yyidx + -1]->minor)); }\r
#line 2215 "smarty_internal_templateparser.php"\r
-#line 269 "smarty_internal_templateparser.y"\r
- function yy_r74(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor=>'true'); }\r
+#line 265 "smarty_internal_templateparser.y"\r
+ function yy_r65(){ $this->_retvalue = array_merge($this->yystack[$this->yyidx + -1]->minor,$this->yystack[$this->yyidx + 0]->minor); }\r
#line 2218 "smarty_internal_templateparser.php"\r
-#line 276 "smarty_internal_templateparser.y"\r
- function yy_r76(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); }\r
+#line 269 "smarty_internal_templateparser.y"\r
+ function yy_r67(){ $this->_retvalue = array(); }\r
#line 2221 "smarty_internal_templateparser.php"\r
-#line 277 "smarty_internal_templateparser.y"\r
- function yy_r77(){ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; }\r
+#line 272 "smarty_internal_templateparser.y"\r
+ function yy_r68(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>"'".$this->yystack[$this->yyidx + 0]->minor."'"); }\r
#line 2224 "smarty_internal_templateparser.php"\r
-#line 279 "smarty_internal_templateparser.y"\r
- function yy_r78(){ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor); }\r
+#line 273 "smarty_internal_templateparser.y"\r
+ function yy_r69(){ $this->_retvalue = array($this->yystack[$this->yyidx + -2]->minor=>$this->yystack[$this->yyidx + 0]->minor); }\r
#line 2227 "smarty_internal_templateparser.php"\r
-#line 285 "smarty_internal_templateparser.y"\r
- function yy_r79(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; }\r
+#line 276 "smarty_internal_templateparser.y"\r
+ function yy_r72(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor=>'true'); }\r
#line 2230 "smarty_internal_templateparser.php"\r
-#line 286 "smarty_internal_templateparser.y"\r
- function yy_r80(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }\r
+#line 283 "smarty_internal_templateparser.y"\r
+ function yy_r74(){ $this->_retvalue = array($this->yystack[$this->yyidx + 0]->minor); }\r
#line 2233 "smarty_internal_templateparser.php"\r
-#line 288 "smarty_internal_templateparser.y"\r
- function yy_r81(){$this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor . '\')'; }\r
+#line 284 "smarty_internal_templateparser.y"\r
+ function yy_r75(){ $this->yystack[$this->yyidx + -2]->minor[]=$this->yystack[$this->yyidx + 0]->minor; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor; }\r
#line 2236 "smarty_internal_templateparser.php"\r
-#line 289 "smarty_internal_templateparser.y"\r
- function yy_r82(){ $this->_retvalue = $this->compiler->compileTag('private_modifier',array('modifier'=>$this->yystack[$this->yyidx + -1]->minor,'params'=>$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor)); }\r
+#line 286 "smarty_internal_templateparser.y"\r
+ function yy_r76(){ $this->_retvalue = array('var' => $this->yystack[$this->yyidx + -2]->minor, 'value'=>$this->yystack[$this->yyidx + 0]->minor); }\r
#line 2239 "smarty_internal_templateparser.php"\r
#line 294 "smarty_internal_templateparser.y"\r
- function yy_r84(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor; }\r
+ function yy_r78(){ $this->_retvalue = "'".$this->yystack[$this->yyidx + 0]->minor."'"; }\r
#line 2242 "smarty_internal_templateparser.php"\r
-#line 307 "smarty_internal_templateparser.y"\r
- function yy_r88(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 296 "smarty_internal_templateparser.y"\r
+ function yy_r79(){$this->_retvalue = '$_smarty_tpl->getStreamVariable(\''. $this->yystack[$this->yyidx + -2]->minor .'://'. $this->yystack[$this->yyidx + 0]->minor . '\')'; }\r
#line 2245 "smarty_internal_templateparser.php"\r
-#line 316 "smarty_internal_templateparser.y"\r
- function yy_r92(){ $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 298 "smarty_internal_templateparser.y"\r
+ function yy_r80(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor . trim($this->yystack[$this->yyidx + -1]->minor) . $this->yystack[$this->yyidx + 0]->minor; }\r
#line 2248 "smarty_internal_templateparser.php"\r
-#line 321 "smarty_internal_templateparser.y"\r
- function yy_r96(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 304 "smarty_internal_templateparser.y"\r
+ function yy_r83(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }\r
#line 2251 "smarty_internal_templateparser.php"\r
-#line 331 "smarty_internal_templateparser.y"\r
- function yy_r100(){ $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")"; }\r
+#line 308 "smarty_internal_templateparser.y"\r
+ function yy_r84(){$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2254 "smarty_internal_templateparser.php"\r
-#line 335 "smarty_internal_templateparser.y"\r
- function yy_r102(){ $_s = str_replace(array('."".','.""'),array('.',''),'"'.$this->yystack[$this->yyidx + -1]->minor.'"'); \r
- if (substr($_s,0,3) == '"".') {\r
- $this->_retvalue = substr($_s,3);\r
- } else {\r
- $this->_retvalue = $_s;\r
- }\r
- }\r
+#line 309 "smarty_internal_templateparser.y"\r
+ function yy_r85(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
+#line 2257 "smarty_internal_templateparser.php"\r
+#line 310 "smarty_internal_templateparser.y"\r
+ function yy_r86(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
+#line 2260 "smarty_internal_templateparser.php"\r
+#line 312 "smarty_internal_templateparser.y"\r
+ function yy_r88(){$this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
#line 2263 "smarty_internal_templateparser.php"\r
-#line 342 "smarty_internal_templateparser.y"\r
- function yy_r103(){ $this->_retvalue = "''"; }\r
+#line 313 "smarty_internal_templateparser.y"\r
+ function yy_r89(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
#line 2266 "smarty_internal_templateparser.php"\r
-#line 344 "smarty_internal_templateparser.y"\r
- function yy_r104(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 314 "smarty_internal_templateparser.y"\r
+ function yy_r90(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; }\r
#line 2269 "smarty_internal_templateparser.php"\r
-#line 345 "smarty_internal_templateparser.y"\r
- function yy_r105(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -3]->minor .'\')->value;?>'; $this->_retvalue = $this->yystack[$this->yyidx + -6]->minor.'::$_tmp'.$this->prefix_number.'('. $this->yystack[$this->yyidx + -1]->minor .')'; }\r
+#line 315 "smarty_internal_templateparser.y"\r
+ function yy_r91(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; }\r
#line 2272 "smarty_internal_templateparser.php"\r
-#line 347 "smarty_internal_templateparser.y"\r
- function yy_r106(){ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor.'::'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 316 "smarty_internal_templateparser.y"\r
+ function yy_r92(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
#line 2275 "smarty_internal_templateparser.php"\r
-#line 348 "smarty_internal_templateparser.y"\r
- function yy_r107(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -4]->minor .'\')->value;?>'; $this->_retvalue = $this->yystack[$this->yyidx + -7]->minor.'::$_tmp'.$this->prefix_number.'('. $this->yystack[$this->yyidx + -2]->minor .')'.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 317 "smarty_internal_templateparser.y"\r
+ function yy_r93(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
#line 2278 "smarty_internal_templateparser.php"\r
-#line 350 "smarty_internal_templateparser.y"\r
- function yy_r108(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 323 "smarty_internal_templateparser.y"\r
+ function yy_r99(){$this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.$this->yystack[$this->yyidx + 0]->minor.';?>'; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.'$_tmp'.$this->prefix_number; }\r
#line 2281 "smarty_internal_templateparser.php"\r
-#line 352 "smarty_internal_templateparser.y"\r
- function yy_r109(){ $this->_retvalue = $this->yystack[$this->yyidx + -4]->minor.'::$'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 329 "smarty_internal_templateparser.y"\r
+ function yy_r100(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.' ? '.$this->yystack[$this->yyidx + -2]->minor.' : '.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2284 "smarty_internal_templateparser.php"\r
-#line 354 "smarty_internal_templateparser.y"\r
- function yy_r110(){ $this->_retvalue = $this->yystack[$this->yyidx + -5]->minor.'::$'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 336 "smarty_internal_templateparser.y"\r
+ function yy_r103(){ $this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2287 "smarty_internal_templateparser.php"\r
-#line 356 "smarty_internal_templateparser.y"\r
- function yy_r111(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php ob_start();?>'.$this->yystack[$this->yyidx + 0]->minor.'<?php $_tmp'.$this->prefix_number.'=ob_get_clean();?>'; $this->_retvalue = '$_tmp'.$this->prefix_number; }\r
+#line 341 "smarty_internal_templateparser.y"\r
+ function yy_r107(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2290 "smarty_internal_templateparser.php"\r
-#line 365 "smarty_internal_templateparser.y"\r
- function yy_r112(){if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);} else {\r
- $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor['var'] .')->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor['var'],"'"), null, true, false)->nocache;} }\r
-#line 2294 "smarty_internal_templateparser.php"\r
-#line 368 "smarty_internal_templateparser.y"\r
- function yy_r113(){ $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache; }\r
-#line 2297 "smarty_internal_templateparser.php"\r
+#line 351 "smarty_internal_templateparser.y"\r
+ function yy_r111(){ $this->_retvalue = "(". $this->yystack[$this->yyidx + -1]->minor .")"; }\r
+#line 2293 "smarty_internal_templateparser.php"\r
+#line 357 "smarty_internal_templateparser.y"\r
+ function yy_r114(){if (!$this->template->security || $this->smarty->security_handler->isTrustedStaticClass($this->yystack[$this->yyidx + -2]->minor, $this->compiler)) {\r
+ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'::'.$this->yystack[$this->yyidx + 0]->minor; \r
+ } }\r
+#line 2298 "smarty_internal_templateparser.php"\r
+#line 361 "smarty_internal_templateparser.y"\r
+ function yy_r115(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php ob_start();?>'.$this->yystack[$this->yyidx + 0]->minor.'<?php $_tmp'.$this->prefix_number.'=ob_get_clean();?>'; $this->_retvalue = '$_tmp'.$this->prefix_number; }\r
+#line 2301 "smarty_internal_templateparser.php"\r
+#line 363 "smarty_internal_templateparser.y"\r
+ function yy_r116(){ $this->_retvalue = $this->compiler->compileTag('private_modifier',array('modifier'=>$this->yystack[$this->yyidx + -1]->minor,'params'=>$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor)); }\r
+#line 2304 "smarty_internal_templateparser.php"\r
#line 372 "smarty_internal_templateparser.y"\r
- function yy_r115(){$this->_retvalue = '$_smarty_tpl->getConfigVariable(\''. $this->yystack[$this->yyidx + -1]->minor .'\')'; }\r
-#line 2300 "smarty_internal_templateparser.php"\r
-#line 373 "smarty_internal_templateparser.y"\r
- function yy_r116(){$this->_retvalue = '$_smarty_tpl->getConfigVariable('. $this->yystack[$this->yyidx + -1]->minor .')'; }\r
-#line 2303 "smarty_internal_templateparser.php"\r
-#line 376 "smarty_internal_templateparser.y"\r
- function yy_r117(){$this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); }\r
-#line 2306 "smarty_internal_templateparser.php"\r
-#line 382 "smarty_internal_templateparser.y"\r
- function yy_r118(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2309 "smarty_internal_templateparser.php"\r
-#line 384 "smarty_internal_templateparser.y"\r
- function yy_r119(){return; }\r
-#line 2312 "smarty_internal_templateparser.php"\r
-#line 388 "smarty_internal_templateparser.y"\r
- function yy_r120(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor .')->value]'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable('$this->yystack[$this->yyidx + 0]->minor', null, true, false)->nocache; }\r
-#line 2315 "smarty_internal_templateparser.php"\r
+ function yy_r117(){if ($this->yystack[$this->yyidx + 0]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']);} else {\r
+ $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor['var'] .')->value'.$this->yystack[$this->yyidx + 0]->minor['smarty_internal_index']; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor['var'],"'"), null, true, false)->nocache;} }\r
+#line 2308 "smarty_internal_templateparser.php"\r
+#line 375 "smarty_internal_templateparser.y"\r
+ function yy_r118(){ $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache; }\r
+#line 2311 "smarty_internal_templateparser.php"\r
+#line 379 "smarty_internal_templateparser.y"\r
+ function yy_r120(){$this->_retvalue = '$_smarty_tpl->getConfigVariable(\''. $this->yystack[$this->yyidx + -1]->minor .'\')'; }\r
+#line 2314 "smarty_internal_templateparser.php"\r
+#line 380 "smarty_internal_templateparser.y"\r
+ function yy_r121(){$this->_retvalue = '$_smarty_tpl->getConfigVariable('. $this->yystack[$this->yyidx + -1]->minor .')'; }\r
+#line 2317 "smarty_internal_templateparser.php"\r
+#line 383 "smarty_internal_templateparser.y"\r
+ function yy_r122(){$this->_retvalue = array('var'=>$this->yystack[$this->yyidx + -1]->minor, 'smarty_internal_index'=>$this->yystack[$this->yyidx + 0]->minor); }\r
+#line 2320 "smarty_internal_templateparser.php"\r
#line 389 "smarty_internal_templateparser.y"\r
- function yy_r121(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor.']'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache; }\r
-#line 2318 "smarty_internal_templateparser.php"\r
-#line 392 "smarty_internal_templateparser.y"\r
- function yy_r122(){ $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']"; }\r
-#line 2321 "smarty_internal_templateparser.php"\r
+ function yy_r123(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 2323 "smarty_internal_templateparser.php"\r
+#line 391 "smarty_internal_templateparser.y"\r
+ function yy_r124(){return; }\r
+#line 2326 "smarty_internal_templateparser.php"\r
+#line 395 "smarty_internal_templateparser.y"\r
+ function yy_r125(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + 0]->minor .')->value]'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable('$this->yystack[$this->yyidx + 0]->minor', null, true, false)->nocache; }\r
+#line 2329 "smarty_internal_templateparser.php"\r
#line 396 "smarty_internal_templateparser.y"\r
- function yy_r125(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]"; }\r
-#line 2324 "smarty_internal_templateparser.php"\r
+ function yy_r126(){ $this->_retvalue = '[$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor .')->'.$this->yystack[$this->yyidx + 0]->minor.']'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor,"'"), null, true, false)->nocache; }\r
+#line 2332 "smarty_internal_templateparser.php"\r
#line 397 "smarty_internal_templateparser.y"\r
- function yy_r126(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]"; }\r
-#line 2327 "smarty_internal_templateparser.php"\r
-#line 399 "smarty_internal_templateparser.y"\r
- function yy_r127(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable','[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; }\r
-#line 2330 "smarty_internal_templateparser.php"\r
-#line 400 "smarty_internal_templateparser.y"\r
- function yy_r128(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable','[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']'; }\r
-#line 2333 "smarty_internal_templateparser.php"\r
+ function yy_r127(){ $this->_retvalue = "['". $this->yystack[$this->yyidx + 0]->minor ."']"; }\r
+#line 2335 "smarty_internal_templateparser.php"\r
+#line 401 "smarty_internal_templateparser.y"\r
+ function yy_r130(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + 0]->minor ."]"; }\r
+#line 2338 "smarty_internal_templateparser.php"\r
+#line 402 "smarty_internal_templateparser.y"\r
+ function yy_r131(){ $this->_retvalue = "[". $this->yystack[$this->yyidx + -1]->minor ."]"; }\r
+#line 2341 "smarty_internal_templateparser.php"\r
#line 404 "smarty_internal_templateparser.y"\r
- function yy_r130(){$this->_retvalue = ''; }\r
-#line 2336 "smarty_internal_templateparser.php"\r
-#line 412 "smarty_internal_templateparser.y"\r
- function yy_r132(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2339 "smarty_internal_templateparser.php"\r
-#line 414 "smarty_internal_templateparser.y"\r
- function yy_r133(){$this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; }\r
-#line 2342 "smarty_internal_templateparser.php"\r
+ function yy_r132(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable','[\'section\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\'][\'index\']').']'; }\r
+#line 2344 "smarty_internal_templateparser.php"\r
+#line 405 "smarty_internal_templateparser.y"\r
+ function yy_r133(){ $this->_retvalue = '['.$this->compiler->compileTag('private_special_variable','[\'section\'][\''.$this->yystack[$this->yyidx + -3]->minor.'\'][\''.$this->yystack[$this->yyidx + -1]->minor.'\']').']'; }\r
+#line 2347 "smarty_internal_templateparser.php"\r
+#line 409 "smarty_internal_templateparser.y"\r
+ function yy_r135(){$this->_retvalue = ''; }\r
+#line 2350 "smarty_internal_templateparser.php"\r
#line 417 "smarty_internal_templateparser.y"\r
- function yy_r134(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; }\r
-#line 2345 "smarty_internal_templateparser.php"\r
+ function yy_r137(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.'.'.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 2353 "smarty_internal_templateparser.php"\r
+#line 419 "smarty_internal_templateparser.y"\r
+ function yy_r138(){$this->_retvalue = '\''.$this->yystack[$this->yyidx + 0]->minor.'\''; }\r
+#line 2356 "smarty_internal_templateparser.php"\r
#line 422 "smarty_internal_templateparser.y"\r
- function yy_r135(){ if ($this->yystack[$this->yyidx + -1]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor;} else {\r
- $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -1]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -1]->minor['var'],"'"), null, true, false)->nocache;} }\r
-#line 2349 "smarty_internal_templateparser.php"\r
-#line 425 "smarty_internal_templateparser.y"\r
- function yy_r136(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2352 "smarty_internal_templateparser.php"\r
+ function yy_r139(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -1]->minor.')'; }\r
+#line 2359 "smarty_internal_templateparser.php"\r
#line 427 "smarty_internal_templateparser.y"\r
- function yy_r137(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2355 "smarty_internal_templateparser.php"\r
+ function yy_r140(){ if ($this->yystack[$this->yyidx + -1]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index']).$this->yystack[$this->yyidx + 0]->minor;} else {\r
+ $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -1]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -1]->minor['smarty_internal_index'].$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -1]->minor['var'],"'"), null, true, false)->nocache;} }\r
+#line 2363 "smarty_internal_templateparser.php"\r
#line 429 "smarty_internal_templateparser.y"\r
- function yy_r138(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2358 "smarty_internal_templateparser.php"\r
-#line 430 "smarty_internal_templateparser.y"\r
- function yy_r139(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; }\r
-#line 2361 "smarty_internal_templateparser.php"\r
-#line 431 "smarty_internal_templateparser.y"\r
- function yy_r140(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; }\r
-#line 2364 "smarty_internal_templateparser.php"\r
-#line 432 "smarty_internal_templateparser.y"\r
- function yy_r141(){ $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; }\r
+ function yy_r141(){ if ($this->yystack[$this->yyidx + -2]->minor['var'] == '\'smarty\'') { $this->_retvalue = $this->compiler->compileTag('private_special_variable',$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index']).'::'.$this->yystack[$this->yyidx + 0]->minor;} else {\r
+ $this->_retvalue = '$_smarty_tpl->getVariable('. $this->yystack[$this->yyidx + -2]->minor['var'] .')->value'.$this->yystack[$this->yyidx + -2]->minor['smarty_internal_index'].'::'.$this->yystack[$this->yyidx + 0]->minor; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + -2]->minor['var'],"'"), null, true, false)->nocache;} }\r
#line 2367 "smarty_internal_templateparser.php"\r
-#line 434 "smarty_internal_templateparser.y"\r
- function yy_r142(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 432 "smarty_internal_templateparser.y"\r
+ function yy_r142(){$this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }\r
#line 2370 "smarty_internal_templateparser.php"\r
-#line 440 "smarty_internal_templateparser.y"\r
- function yy_r143(){if (!$this->template->security || $this->smarty->security_handler->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) {\r
+#line 434 "smarty_internal_templateparser.y"\r
+ function yy_r143(){$this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 2373 "smarty_internal_templateparser.php"\r
+#line 436 "smarty_internal_templateparser.y"\r
+ function yy_r144(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 2376 "smarty_internal_templateparser.php"\r
+#line 437 "smarty_internal_templateparser.y"\r
+ function yy_r145(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; }\r
+#line 2379 "smarty_internal_templateparser.php"\r
+#line 438 "smarty_internal_templateparser.y"\r
+ function yy_r146(){ $this->_retvalue = '->{'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; }\r
+#line 2382 "smarty_internal_templateparser.php"\r
+#line 439 "smarty_internal_templateparser.y"\r
+ function yy_r147(){ $this->_retvalue = '->{\''.$this->yystack[$this->yyidx + -4]->minor.'\'.'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + 0]->minor.'}'; }\r
+#line 2385 "smarty_internal_templateparser.php"\r
+#line 441 "smarty_internal_templateparser.y"\r
+ function yy_r148(){ $this->_retvalue = '->'.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 2388 "smarty_internal_templateparser.php"\r
+#line 447 "smarty_internal_templateparser.y"\r
+ function yy_r149(){if (!$this->template->security || $this->smarty->security_handler->isTrustedPhpFunction($this->yystack[$this->yyidx + -3]->minor, $this->compiler)) {\r
if ($this->yystack[$this->yyidx + -3]->minor == 'isset' || $this->yystack[$this->yyidx + -3]->minor == 'empty' || $this->yystack[$this->yyidx + -3]->minor == 'array' || is_callable($this->yystack[$this->yyidx + -3]->minor)) {\r
$this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")";\r
} else {\r
$this->compiler->trigger_template_error ("unknown function \"" . $this->yystack[$this->yyidx + -3]->minor . "\"");\r
}\r
} }\r
-#line 2379 "smarty_internal_templateparser.php"\r
-#line 451 "smarty_internal_templateparser.y"\r
- function yy_r144(){ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")"; }\r
-#line 2382 "smarty_internal_templateparser.php"\r
-#line 455 "smarty_internal_templateparser.y"\r
- function yy_r145(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.",".$this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2385 "smarty_internal_templateparser.php"\r
-#line 459 "smarty_internal_templateparser.y"\r
- function yy_r147(){ return; }\r
-#line 2388 "smarty_internal_templateparser.php"\r
-#line 464 "smarty_internal_templateparser.y"\r
- function yy_r148(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2391 "smarty_internal_templateparser.php"\r
-#line 477 "smarty_internal_templateparser.y"\r
- function yy_r150(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
-#line 2394 "smarty_internal_templateparser.php"\r
-#line 481 "smarty_internal_templateparser.y"\r
- function yy_r152(){$this->_retvalue = ','.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2397 "smarty_internal_templateparser.php"\r
-#line 482 "smarty_internal_templateparser.y"\r
- function yy_r153(){$this->_retvalue = ',\''.$this->yystack[$this->yyidx + 0]->minor.'\''; }\r
+#line 458 "smarty_internal_templateparser.y"\r
+ function yy_r150(){ $this->_retvalue = $this->yystack[$this->yyidx + -3]->minor . "(". $this->yystack[$this->yyidx + -1]->minor .")"; }\r
#line 2400 "smarty_internal_templateparser.php"\r
-#line 489 "smarty_internal_templateparser.y"\r
- function yy_r155(){$this->_retvalue = '!'.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 462 "smarty_internal_templateparser.y"\r
+ function yy_r151(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.",".$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2403 "smarty_internal_templateparser.php"\r
-#line 494 "smarty_internal_templateparser.y"\r
- function yy_r157(){$this->_retvalue =$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 466 "smarty_internal_templateparser.y"\r
+ function yy_r153(){ return; }\r
#line 2406 "smarty_internal_templateparser.php"\r
-#line 495 "smarty_internal_templateparser.y"\r
- function yy_r158(){$this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 471 "smarty_internal_templateparser.y"\r
+ function yy_r154(){ $this->_retvalue = $this->yystack[$this->yyidx + 0]->minor; }\r
#line 2409 "smarty_internal_templateparser.php"\r
-#line 496 "smarty_internal_templateparser.y"\r
- function yy_r159(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
+#line 476 "smarty_internal_templateparser.y"\r
+ function yy_r157(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -3]->minor .'\')->value;?>'; $this->_retvalue = '$_tmp'.$this->prefix_number.'('. $this->yystack[$this->yyidx + -1]->minor .')'; }\r
#line 2412 "smarty_internal_templateparser.php"\r
-#line 497 "smarty_internal_templateparser.y"\r
- function yy_r160(){$this->_retvalue = 'in_array('.$this->yystack[$this->yyidx + -2]->minor.',(array)'.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
+#line 479 "smarty_internal_templateparser.y"\r
+ function yy_r159(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'=$_smarty_tpl->getVariable(\''. $this->yystack[$this->yyidx + -4]->minor .'\')->value;?>'; $this->_retvalue = '$_tmp'.$this->prefix_number.'('. $this->yystack[$this->yyidx + -2]->minor .')'.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2415 "smarty_internal_templateparser.php"\r
-#line 499 "smarty_internal_templateparser.y"\r
- function yy_r162(){$this->_retvalue = '!('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
+#line 483 "smarty_internal_templateparser.y"\r
+ function yy_r161(){ $this->_retvalue = '$'.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2418 "smarty_internal_templateparser.php"\r
-#line 500 "smarty_internal_templateparser.y"\r
- function yy_r163(){$this->_retvalue = '('.$this->yystack[$this->yyidx + -2]->minor.' % '.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
+#line 485 "smarty_internal_templateparser.y"\r
+ function yy_r162(){ $this->_retvalue = '$'.$this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2421 "smarty_internal_templateparser.php"\r
-#line 501 "smarty_internal_templateparser.y"\r
- function yy_r164(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; }\r
+#line 496 "smarty_internal_templateparser.y"\r
+ function yy_r163(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2424 "smarty_internal_templateparser.php"\r
-#line 502 "smarty_internal_templateparser.y"\r
- function yy_r165(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -1]->minor.')'; }\r
+#line 500 "smarty_internal_templateparser.y"\r
+ function yy_r165(){$this->_retvalue = ','.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2427 "smarty_internal_templateparser.php"\r
-#line 503 "smarty_internal_templateparser.y"\r
- function yy_r166(){$this->_retvalue = '!(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
+#line 501 "smarty_internal_templateparser.y"\r
+ function yy_r166(){$this->_retvalue = ',\''.$this->yystack[$this->yyidx + 0]->minor.'\''; }\r
#line 2430 "smarty_internal_templateparser.php"\r
#line 504 "smarty_internal_templateparser.y"\r
- function yy_r167(){$this->_retvalue = '(1 & '.$this->yystack[$this->yyidx + -2]->minor.' / '.$this->yystack[$this->yyidx + 0]->minor.')'; }\r
+ function yy_r167(){$this->_retvalue = '=='; }\r
#line 2433 "smarty_internal_templateparser.php"\r
-#line 510 "smarty_internal_templateparser.y"\r
- function yy_r173(){$this->prefix_number++; $this->compiler->prefix_code[] = '<?php $_tmp'.$this->prefix_number.'='.$this->yystack[$this->yyidx + 0]->minor.';?>'; $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.$this->yystack[$this->yyidx + -1]->minor.'$_tmp'.$this->prefix_number; }\r
+#line 505 "smarty_internal_templateparser.y"\r
+ function yy_r168(){$this->_retvalue = '!='; }\r
#line 2436 "smarty_internal_templateparser.php"\r
-#line 512 "smarty_internal_templateparser.y"\r
- function yy_r174(){$this->_retvalue = '=='; }\r
+#line 506 "smarty_internal_templateparser.y"\r
+ function yy_r169(){$this->_retvalue = '>'; }\r
#line 2439 "smarty_internal_templateparser.php"\r
-#line 513 "smarty_internal_templateparser.y"\r
- function yy_r175(){$this->_retvalue = '!='; }\r
+#line 507 "smarty_internal_templateparser.y"\r
+ function yy_r170(){$this->_retvalue = '<'; }\r
#line 2442 "smarty_internal_templateparser.php"\r
-#line 514 "smarty_internal_templateparser.y"\r
- function yy_r176(){$this->_retvalue = '>'; }\r
+#line 508 "smarty_internal_templateparser.y"\r
+ function yy_r171(){$this->_retvalue = '>='; }\r
#line 2445 "smarty_internal_templateparser.php"\r
-#line 515 "smarty_internal_templateparser.y"\r
- function yy_r177(){$this->_retvalue = '<'; }\r
+#line 509 "smarty_internal_templateparser.y"\r
+ function yy_r172(){$this->_retvalue = '<='; }\r
#line 2448 "smarty_internal_templateparser.php"\r
-#line 516 "smarty_internal_templateparser.y"\r
- function yy_r178(){$this->_retvalue = '>='; }\r
+#line 510 "smarty_internal_templateparser.y"\r
+ function yy_r173(){$this->_retvalue = '==='; }\r
#line 2451 "smarty_internal_templateparser.php"\r
-#line 517 "smarty_internal_templateparser.y"\r
- function yy_r179(){$this->_retvalue = '<='; }\r
+#line 511 "smarty_internal_templateparser.y"\r
+ function yy_r174(){$this->_retvalue = '!=='; }\r
#line 2454 "smarty_internal_templateparser.php"\r
-#line 518 "smarty_internal_templateparser.y"\r
- function yy_r180(){$this->_retvalue = '==='; }\r
+#line 512 "smarty_internal_templateparser.y"\r
+ function yy_r175(){$this->_retvalue = '%'; }\r
#line 2457 "smarty_internal_templateparser.php"\r
-#line 519 "smarty_internal_templateparser.y"\r
- function yy_r181(){$this->_retvalue = '!=='; }\r
+#line 514 "smarty_internal_templateparser.y"\r
+ function yy_r176(){$this->_retvalue = '&&'; }\r
#line 2460 "smarty_internal_templateparser.php"\r
-#line 520 "smarty_internal_templateparser.y"\r
- function yy_r182(){$this->_retvalue = '%'; }\r
+#line 515 "smarty_internal_templateparser.y"\r
+ function yy_r177(){$this->_retvalue = '||'; }\r
#line 2463 "smarty_internal_templateparser.php"\r
-#line 522 "smarty_internal_templateparser.y"\r
- function yy_r183(){$this->_retvalue = '&&'; }\r
+#line 516 "smarty_internal_templateparser.y"\r
+ function yy_r178(){$this->_retvalue = ' XOR '; }\r
#line 2466 "smarty_internal_templateparser.php"\r
-#line 523 "smarty_internal_templateparser.y"\r
- function yy_r184(){$this->_retvalue = '||'; }\r
+#line 521 "smarty_internal_templateparser.y"\r
+ function yy_r179(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; }\r
#line 2469 "smarty_internal_templateparser.php"\r
-#line 524 "smarty_internal_templateparser.y"\r
- function yy_r185(){$this->_retvalue = ' XOR '; }\r
+#line 523 "smarty_internal_templateparser.y"\r
+ function yy_r181(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2472 "smarty_internal_templateparser.php"\r
-#line 529 "smarty_internal_templateparser.y"\r
- function yy_r186(){ $this->_retvalue = 'array('.$this->yystack[$this->yyidx + -1]->minor.')'; }\r
+#line 524 "smarty_internal_templateparser.y"\r
+ function yy_r182(){ return; }\r
#line 2475 "smarty_internal_templateparser.php"\r
-#line 531 "smarty_internal_templateparser.y"\r
- function yy_r188(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.','.$this->yystack[$this->yyidx + 0]->minor; }\r
+#line 525 "smarty_internal_templateparser.y"\r
+ function yy_r183(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2478 "smarty_internal_templateparser.php"\r
-#line 532 "smarty_internal_templateparser.y"\r
- function yy_r189(){ return; }\r
+#line 526 "smarty_internal_templateparser.y"\r
+ function yy_r184(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; }\r
#line 2481 "smarty_internal_templateparser.php"\r
#line 533 "smarty_internal_templateparser.y"\r
- function yy_r190(){ $this->_retvalue = $this->yystack[$this->yyidx + -2]->minor.'=>'.$this->yystack[$this->yyidx + 0]->minor; }\r
+ function yy_r186(){ $this->_retvalue = "''"; }\r
#line 2484 "smarty_internal_templateparser.php"\r
#line 534 "smarty_internal_templateparser.y"\r
- function yy_r191(){ $this->_retvalue = '\''.$this->yystack[$this->yyidx + -2]->minor.'\'=>'.$this->yystack[$this->yyidx + 0]->minor; }\r
+ function yy_r187(){ $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor->to_smarty_php(); }\r
#line 2487 "smarty_internal_templateparser.php"\r
-#line 543 "smarty_internal_templateparser.y"\r
- function yy_r195(){if (substr($this->yystack[$this->yyidx + -1]->minor,0,1) == '\'' || substr($this->yystack[$this->yyidx + -1]->minor,0,1) == '@') {\r
- $this->_retvalue = '".'.$this->yystack[$this->yyidx + -1]->minor.'."'; $this->compiler->has_variable_string = true;\r
- } else {\r
- $this->_retvalue = '{'.$this->yystack[$this->yyidx + -1]->minor.'}'; $this->compiler->has_variable_string = true;\r
- }\r
- }\r
-#line 2495 "smarty_internal_templateparser.php"\r
-#line 549 "smarty_internal_templateparser.y"\r
- function yy_r196(){$this->_retvalue = '{'.$this->yystack[$this->yyidx + -1]->minor.'}'; $this->compiler->has_variable_string = true; }\r
-#line 2498 "smarty_internal_templateparser.php"\r
+#line 536 "smarty_internal_templateparser.y"\r
+ function yy_r188(){ $this->yystack[$this->yyidx + -1]->minor->append_subtree($this->yystack[$this->yyidx + 0]->minor); $this->_retvalue = $this->yystack[$this->yyidx + -1]->minor; }\r
+#line 2490 "smarty_internal_templateparser.php"\r
+#line 537 "smarty_internal_templateparser.y"\r
+ function yy_r189(){ $this->_retvalue = new _smarty_doublequoted($this, $this->yystack[$this->yyidx + 0]->minor); }\r
+#line 2493 "smarty_internal_templateparser.php"\r
+#line 539 "smarty_internal_templateparser.y"\r
+ function yy_r190(){ $this->_retvalue = new _smarty_code($this, $this->yystack[$this->yyidx + -1]->minor); }\r
+#line 2496 "smarty_internal_templateparser.php"\r
+#line 541 "smarty_internal_templateparser.y"\r
+ function yy_r192(){\r
+ $this->_retvalue = new _smarty_code($this, '$_smarty_tpl->getVariable(\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\')->value');\r
+ $this->compiler->tag_nocache = $this->compiler->tag_nocache | $this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor,"'"), null, true, false)->nocache;\r
+ }\r
+#line 2502 "smarty_internal_templateparser.php"\r
+#line 546 "smarty_internal_templateparser.y"\r
+ function yy_r194(){ $this->_retvalue = new _smarty_code($this, '('.$this->yystack[$this->yyidx + -1]->minor.')'); }\r
+#line 2505 "smarty_internal_templateparser.php"\r
+#line 547 "smarty_internal_templateparser.y"\r
+ function yy_r195(){\r
+ $this->_retvalue = new _smarty_tag($this, $this->yystack[$this->yyidx + 0]->minor);\r
+ }\r
+#line 2510 "smarty_internal_templateparser.php"\r
#line 550 "smarty_internal_templateparser.y"\r
- function yy_r197(){$this->_retvalue = '{$_smarty_tpl->getVariable(\''. substr($this->yystack[$this->yyidx + 0]->minor,1) .'\')->value}'; $this->compiler->tag_nocache=$this->compiler->tag_nocache|$this->template->getVariable(trim($this->yystack[$this->yyidx + 0]->minor,"'"), null, true, false)->nocache; $this->compiler->has_variable_string = true; }\r
-#line 2501 "smarty_internal_templateparser.php"\r
-#line 557 "smarty_internal_templateparser.y"\r
- function yy_r199(){ $this->_retvalue = '".('.$this->yystack[$this->yyidx + -1]->minor.')."'; $this->compiler->has_variable_string = true; }\r
-#line 2504 "smarty_internal_templateparser.php"\r
-#line 558 "smarty_internal_templateparser.y"\r
- function yy_r200(){ $this->prefix_number++; $this->compiler->prefix_code[] = '<?php ob_start();?>'.$this->yystack[$this->yyidx + 0]->minor.'<?php $_tmp'.$this->prefix_number.'=ob_get_clean();?>'; $this->_retvalue = '{$_tmp'.$this->prefix_number.'}'; $this->compiler->has_variable_string = true; }\r
-#line 2507 "smarty_internal_templateparser.php"\r
+ function yy_r196(){ $this->_retvalue = new _smarty_dq_content($this, $this->yystack[$this->yyidx + 0]->minor); }\r
+#line 2513 "smarty_internal_templateparser.php"\r
\r
private $_retvalue;\r
\r
\r
function yy_syntax_error($yymajor, $TOKEN)\r
{\r
-#line 71 "smarty_internal_templateparser.y"\r
+#line 72 "smarty_internal_templateparser.y"\r
\r
$this->internalError = true;\r
$this->yymajor = $yymajor;\r
$this->compiler->trigger_template_error();\r
-#line 2570 "smarty_internal_templateparser.php"\r
+#line 2576 "smarty_internal_templateparser.php"\r
}\r
\r
function yy_accept()\r
while ($this->yyidx >= 0) {\r
$stack = $this->yy_pop_parser_stack();\r
}\r
-#line 63 "smarty_internal_templateparser.y"\r
+#line 64 "smarty_internal_templateparser.y"\r
\r
$this->successful = !$this->internalError;\r
$this->internalError = false;\r
$this->retvalue = $this->_retvalue;\r
//echo $this->retvalue."\n\n";\r
-#line 2588 "smarty_internal_templateparser.php"\r
+#line 2594 "smarty_internal_templateparser.php"\r
}\r
\r
function doParse($yymajor, $yytokenvalue)\r
} while ($yymajor != self::YYNOCODE && $this->yyidx >= 0);\r
}\r
}\r
-?>\r
+?>
\ No newline at end of file
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_unregister.php b/gosa-core/include/smarty/sysplugins/smarty_internal_unregister.php
--- /dev/null
@@ -0,0 +1,151 @@
+<?php
+
+/**
+* Project: Smarty: the PHP compiling template engine
+* File: smarty_internal_unregister.php
+* SVN: $Id: $
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*
+* For questions, help, comments, discussion, etc., please join the
+* Smarty mailing list. Send a blank e-mail to
+* smarty-discussion-subscribe@googlegroups.com
+*
+* @link http://www.smarty.net/
+* @copyright 2008 New Digital Group, Inc.
+* @author Monte Ohrt <monte at ohrt dot com>
+* @author Uwe Tews
+* @package Smarty
+* @subpackage PluginsInternal
+* @version 3-SVN$Rev: 3286 $
+*/
+
+class Smarty_Internal_Unregister {
+
+ protected $smarty;
+
+ function __construct($smarty) {
+ $this->smarty = $smarty;
+ }
+
+ /**
+ * Unregisters block function
+ *
+ * @param string $block_tag name of template function
+ */
+ function block($block_tag)
+ {
+ if (isset($this->smarty->registered_plugins['block'][$block_tag])) {
+ unset($this->smarty->registered_plugins['block'][$block_tag]);
+ }
+ }
+
+ /**
+ * Unregisters compiler function
+ *
+ * @param string $compiler_tag name of template function
+ */
+ function compilerFunction($compiler_tag)
+ {
+ if (isset($this->smarty->registered_plugins['compiler'][$compiler_tag])) {
+ unset($this->smarty->registered_plugins['compiler'][$compiler_tag]);
+ }
+ }
+
+ /**
+ * Unregisters custom function
+ *
+ * @param string $function_tag name of template function
+ */
+ function templateFunction($function_tag)
+ {
+ if (isset($this->smarty->registered_plugins['function'][$function_tag])) {
+ unset($this->smarty->registered_plugins['function'][$function_tag]);
+ }
+ }
+
+ /**
+ * Unregisters modifier
+ *
+ * @param string $modifier name of template modifier
+ */
+ function modifier($modifier)
+ {
+ if (isset($this->smarty->registered_plugins['modifier'][$modifier])) {
+ unset($this->smarty->registered_plugins['modifier'][$modifier]);
+ }
+ }
+
+ /**
+ * Unregisters template object
+ *
+ * @param string $object_name name of template object
+ */
+ function templateObject($object_name)
+ {
+ unset($this->smarty->registered_objects[$object_name]);
+ }
+
+ /**
+ * Unregisters an output filter
+ *
+ * @param callback $function_name
+ */
+ function outputFilter($function_name)
+ {
+ unset($this->smarty->registered_filters['output'][$this->smarty->_get_filter_name($function_name)]);
+ }
+
+ /**
+ * Unregisters a postfilter function
+ *
+ * @param callback $function_name
+ */
+ function postFilter($function_name)
+ {
+ unset($this->smarty->registered_filters['post'][$this->smarty->_get_filter_name($function_name)]);
+ }
+
+ /**
+ * Unregisters a prefilter function
+ *
+ * @param callback $function_name
+ */
+ function preFilter($function_name)
+ {
+ unset($this->smarty->registered_filters['pre'][$this->smarty->_get_filter_name($function_name)]);
+ }
+
+ /**
+ * Unregisters a resource
+ *
+ * @param string $resource_name name of resource
+ */
+ function resource($resource_name)
+ {
+ unset($this->smarty->plugins['resource'][$resource_name]);
+ }
+
+ /**
+ * Unregisters a variablefilter function
+ *
+ * @param callback $function_name
+ */
+ function variableFilter($function_name)
+ {
+ unset($this->smarty->registered_filters['variable'][$this->smarty->_get_filter_name($function_name)]);
+ }
+
+}
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_utility.php b/gosa-core/include/smarty/sysplugins/smarty_internal_utility.php
--- /dev/null
@@ -0,0 +1,223 @@
+<?php
+
+/**
+* Project: Smarty: the PHP compiling template engine
+* File: smarty_internal_utility.php
+* SVN: $Id: $
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*
+* For questions, help, comments, discussion, etc., please join the
+* Smarty mailing list. Send a blank e-mail to
+* smarty-discussion-subscribe@googlegroups.com
+*
+* @link http://www.smarty.net/
+* @copyright 2008 New Digital Group, Inc.
+* @author Monte Ohrt <monte at ohrt dot com>
+* @author Uwe Tews
+* @package Smarty
+* @subpackage PluginsInternal
+* @version 3-SVN$Rev: 3286 $
+*/
+
+class Smarty_Internal_Utility {
+
+ protected $smarty;
+
+ function __construct($smarty) {
+ $this->smarty = $smarty;
+ }
+
+ /**
+ * Compile all template files
+ *
+ * @param string $extension file extension
+ * @param bool $force_compile force all to recompile
+ * @param int $time_limit
+ * @param int $max_errors
+ * @return integer number of template files recompiled
+ */
+ function compileAllTemplates($extention = '.tpl', $force_compile = false, $time_limit = 0, $max_errors = null)
+ {
+ function _get_time()
+ {
+ $_mtime = microtime();
+ $_mtime = explode(" ", $_mtime);
+ return (double)($_mtime[1]) + (double)($_mtime[0]);
+ }
+ // set default directory
+ if ($dir_name === null) {
+ $dir_name = $this->smarty->template_dir;
+ }
+ // switch off time limit
+ if (function_exists('set_time_limit')) {
+ @set_time_limit($time_limit);
+ }
+ $this->smarty->force_compile = $force_compile;
+ $_count = 0;
+ $_error_count = 0;
+ // loop over array of template directories
+ foreach((array)$this->smarty->template_dir as $_dir) {
+ $_compileDirs = new RecursiveDirectoryIterator($_dir);
+ $_compile = new RecursiveIteratorIterator($_compileDirs);
+ foreach ($_compile as $_fileinfo) {
+ if (strpos($_fileinfo, '.svn') !== false) continue;
+ $_file = $_fileinfo->getFilename();
+ if (!substr_compare($_file, $extention, - strlen($extention)) == 0) continue;
+ if ($_fileinfo->getPath() == substr($_dir, 0, -1)) {
+ $_template_file = $_file;
+ } else {
+ $_template_file = substr($_fileinfo->getPath(), strlen($_dir)) . '\\' . $_file;
+ }
+ echo '<br>', $_dir, '---', $_template_file;
+ flush();
+ $_start_time = _get_time();
+ try {
+ $_tpl = $this->smarty->createTemplate($_template_file);
+ $_tpl->getCompiledTemplate();
+ }
+ catch (Exception $e) {
+ echo 'Error: ', $e->getMessage(), "<br><br>";
+ $_error_count++;
+ }
+ echo ' done in ', _get_time() - $_start_time, ' seconds';
+ if ($max_errors !== null && $_error_count == $max_errors) {
+ echo '<br><br>too many errors';
+ exit();
+ }
+ }
+ }
+ return $_count;
+ }
+
+ /**
+ * Delete compiled template file
+ *
+ * @param string $resource_name template name
+ * @param string $compile_id compile id
+ * @param integer $exp_time expiration time
+ * @return integer number of template files deleted
+ */
+ function clearCompiledTemplate($resource_name = null, $compile_id = null, $exp_time = null)
+ {
+ $_compile_id = isset($compile_id) ? preg_replace('![^\w\|]+!','_',$compile_id) : null;
+ $_dir_sep = $this->smarty->use_sub_dirs ? DS : '^';
+ if (isset($resource_name)) {
+ $_resource_part_1 = $resource_name . '.php';
+ $_resource_part_2 = $resource_name . '.cache' . '.php';
+ } else {
+ $_resource_part = '';
+ }
+ $_dir = $this->smarty->compile_dir;
+ if ($this->smarty->use_sub_dirs && isset($_compile_id)) {
+ $_dir .= $_compile_id . $_dir_sep;
+ }
+ if (isset($_compile_id)) {
+ $_compile_id_part = $this->smarty->compile_dir . $_compile_id . $_dir_sep;
+ }
+ $_count = 0;
+ $_compileDirs = new RecursiveDirectoryIterator($_dir);
+ $_compile = new RecursiveIteratorIterator($_compileDirs, RecursiveIteratorIterator::CHILD_FIRST);
+ foreach ($_compile as $_file) {
+ if (strpos($_file, '.svn') !== false) continue;
+ if ($_file->isDir()) {
+ if (!$_compile->isDot()) {
+ // delete folder if empty
+ @rmdir($_file->getPathname());
+ }
+ } else {
+ if ((!isset($_compile_id) || (strlen((string)$_file) > strlen($_compile_id_part) && substr_compare((string)$_file, $_compile_id_part, 0, strlen($_compile_id_part)) == 0)) &&
+ (!isset($resource_name) || (strlen((string)$_file) > strlen($_resource_part_1) && substr_compare((string)$_file, $_resource_part_1, - strlen($_resource_part_1), strlen($_resource_part_1)) == 0) ||
+ (strlen((string)$_file) > strlen($_resource_part_2) && substr_compare((string)$_file, $_resource_part_2, - strlen($_resource_part_2), strlen($_resource_part_2)) == 0))) {
+ if (isset($exp_time)) {
+ if (time() - @filemtime($_file) >= $exp_time) {
+ $_count += @unlink((string) $_file) ? 1 : 0;
+ }
+ } else {
+ $_count += @unlink((string) $_file) ? 1 : 0;
+ }
+ }
+ }
+ }
+ return $_count;
+ }
+
+ function testInstall()
+ {
+ echo "<PRE>\n";
+
+ echo "Smarty Installation test...\n";
+
+ echo "Testing template directory...\n";
+
+ foreach((array)$this->smarty->template_dir as $template_dir) {
+ if (!is_dir($template_dir))
+ echo "FAILED: $template_dir is not a directory.\n";
+ elseif (!is_readable($template_dir))
+ echo "FAILED: $template_dir is not readable.\n";
+ else
+ echo "$template_dir is OK.\n";
+ }
+
+ echo "Testing compile directory...\n";
+
+ if (!is_dir($this->smarty->compile_dir))
+ echo "FAILED: $this->smarty->compile_dir is not a directory.\n";
+ elseif (!is_readable($this->smarty->compile_dir))
+ echo "FAILED: $this->smarty->compile_dir is not readable.\n";
+ elseif (!is_writable($this->smarty->compile_dir))
+ echo "FAILED: $this->smarty->compile_dir is not writable.\n";
+ else
+ echo "{$this->smarty->compile_dir} is OK.\n";
+
+ echo "Testing plugins directory...\n";
+
+ foreach((array)$this->smarty->plugins_dir as $plugin_dir) {
+ if (!is_dir($plugin_dir))
+ echo "FAILED: $plugin_dir is not a directory.\n";
+ elseif (!is_readable($plugin_dir))
+ echo "FAILED: $plugin_dir is not readable.\n";
+ else
+ echo "$plugin_dir is OK.\n";
+ }
+
+ echo "Testing cache directory...\n";
+
+ if (!is_dir($this->smarty->cache_dir))
+ echo "FAILED: $this->smarty->cache_dir is not a directory.\n";
+ elseif (!is_readable($this->smarty->cache_dir))
+ echo "FAILED: $this->smarty->cache_dir is not readable.\n";
+ elseif (!is_writable($this->smarty->cache_dir))
+ echo "FAILED: $this->smarty->cache_dir is not writable.\n";
+ else
+ echo "{$this->smarty->cache_dir} is OK.\n";
+
+ echo "Testing configs directory...\n";
+
+ if (!is_dir($this->smarty->config_dir))
+ echo "FAILED: $this->smarty->config_dir is not a directory.\n";
+ elseif (!is_readable($this->smarty->config_dir))
+ echo "FAILED: $this->smarty->config_dir is not readable.\n";
+ else
+ echo "{$this->smarty->config_dir} is OK.\n";
+
+ echo "Tests complete.\n";
+
+ echo "</PRE>\n";
+
+ return true;
+ }
+
+}
diff --git a/gosa-core/include/smarty/sysplugins/smarty_internal_wrapper.php b/gosa-core/include/smarty/sysplugins/smarty_internal_wrapper.php
--- /dev/null
@@ -0,0 +1,127 @@
+<?php
+
+/**
+* Project: Smarty: the PHP compiling template engine
+* File: smarty_internal_wrapper.php
+* SVN: $Id: $
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation; either
+* version 2.1 of the License, or (at your option) any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*
+* For questions, help, comments, discussion, etc., please join the
+* Smarty mailing list. Send a blank e-mail to
+* smarty-discussion-subscribe@googlegroups.com
+*
+* @link http://www.smarty.net/
+* @copyright 2008 New Digital Group, Inc.
+* @author Monte Ohrt <monte at ohrt dot com>
+* @author Uwe Tews
+* @package Smarty
+* @subpackage PluginsInternal
+* @version 3-SVN$Rev: 3286 $
+*/
+
+/*
+ * Smarty Backward Compatability Wrapper
+ */
+
+class Smarty_Internal_Wrapper {
+
+ protected $smarty;
+
+ function __construct($smarty) {
+ $this->smarty = $smarty;
+ }
+
+ /**
+ * Converts smarty2-style function call to smarty 3-style function call
+ * This is expensive, be sure to port your code to Smarty 3!
+ *
+ * @param string $name Smarty 2 function name
+ * @param array $args Smarty 2 function args
+ */
+ function convert($name, $args) {
+ // throw notice about deprecated function
+ if($this->smarty->deprecation_notices)
+ trigger_error("function call '$name' is unknown or deprecated.",E_USER_NOTICE);
+ // get first and last part of function name
+ $name_parts = explode('_',$name,2);
+ switch($name_parts[0]) {
+ case 'register':
+ case 'unregister':
+ $myobj = $name_parts[0] == 'register' ? $this->smarty->register : $this->smarty->unregister;
+ switch($name_parts[1]) {
+ case 'function':
+ return call_user_func_array(array($myobj,'templateFunction'),$args);
+ break;
+ case 'object':
+ return call_user_func_array(array($myobj,'templateObject'),$args);
+ break;
+ case 'compiler_function':
+ return call_user_func_array(array($myobj,'compilerFunction'),$args);
+ break;
+ default:
+ return call_user_func_array(array($myobj,$name_parts[1]),$args);
+ break;
+ }
+ break;
+ case 'get':
+ switch($name_parts[1]) {
+ case 'template_vars':
+ return call_user_func_array(array($this->smarty,'getTemplateVars'),$args);
+ break;
+ case 'config_vars':
+ return call_user_func_array(array($this->smarty,'getConfigVars'),$args);
+ break;
+ default:
+ return call_user_func_array(array($myobj,$name_parts[1]),$args);
+ break;
+ }
+ break;
+ case 'clear':
+ switch($name_parts[1]) {
+ case 'all_assign':
+ return call_user_func_array(array($this->smarty,'clearAllAssign'),$args);
+ break;
+ }
+ break;
+ case 'config':
+ switch($name_parts[1]) {
+ case 'load':
+ return call_user_func_array(array($this->smarty,'configLoad'),$args);
+ break;
+ }
+ break;
+ default:
+ // convert foo_bar_baz to fooBarBaz style names
+ $name_parts = explode('_',$name);
+ foreach($name_parts as $idx=>$part) {
+ if($idx==0)
+ $name_parts[$idx] = strtolower($part);
+ else
+ $name_parts[$idx] = ucfirst($part);
+ }
+ $func_name = implode('',$name_parts);
+ if(!method_exists($this->smarty,$func_name)) {
+ throw new Exception("unknown method '$name'");
+ return false;
+ }
+ return call_user_func_array(array($this->smarty,$func_name),$args);
+ break;
+ }
+ return false;
+ }
+}
+
+?>
diff --git a/gosa-core/include/smarty/sysplugins/smarty_security.php b/gosa-core/include/smarty/sysplugins/smarty_security.php
index 2c99fbc36437962e59251055c866add4116bc43c..9fb85a9fcdf7c1e1a8eb2bdecad8e3aa8a783b9e 100644 (file)
public $trusted_dir = array();
+ /**
+ * This is an array of trusted static classes.
+ *
+ * If empty access to all static classes is allowed.
+ * If set to 'none' none is allowed.
+ * @var array
+ */
+ public $static_classes = array();
+
/**
* This is an array of trusted PHP functions.
*
public $allow_php_tag = false;
}
-?>
+?>
\ No newline at end of file