Browse Source

app_python3s: new module offering python3 kemi script execution

- alternative to app_python3, without dynamic SIP message object
  instantiation, only KSR lib static export
- old exported python modules (e.g., Router) no longer available
Daniel-Constantin Mierla 2 years ago
parent
commit
3cecd97f71

+ 39 - 0
src/modules/app_python3s/Makefile

@@ -0,0 +1,39 @@
+#
+# WARNING: do not run this directly, it should be run by the main Makefile
+
+include ../../Makefile.defs
+auto_gen=
+NAME=app_python3s.so
+
+# If you have multiple Python versions installed make sure to modify the
+# the following to point to the correct instance.
+PYTHON3?=$(shell which python3)
+ifeq ($(PYTHON3),)
+PYTHON3=python
+endif
+
+PYTHON3CONFIG=$(shell which ${PYTHON3}-config)
+ifeq ($(PYTHON3CONFIG),)
+python_version_full := $(wordlist 2,4,$(subst ., ,$(shell ${PYTHON3} --version 2>&1)))
+python_version_major := $(word 1,${python_version_full})
+python_version_minor := $(word 2,${python_version_full})
+PYTHON3 = python${python_version_major}.${python_version_minor}
+PYTHON3CONFIG=$(shell which ${PYTHON3}-config)
+ifeq ($(PYTHON3CONFIG),)
+PYTHON3CONFIG=${PYTHON3}-config
+endif
+endif
+
+LIBS=${shell \
+	tmp_py3_libs=$$(${PYTHON3CONFIG} --ldflags --embed 2>/dev/null) || \
+	tmp_py3_libs=$$(${PYTHON3CONFIG} --ldflags); \
+	echo $$tmp_py3_libs}
+
+ifeq ($(OS), freebsd)
+LIBS+=-pthread
+endif
+
+DEFS+=${shell ${PYTHON3CONFIG} --includes}
+
+include ../../Makefile.modules
+

+ 198 - 0
src/modules/app_python3s/README

@@ -0,0 +1,198 @@
+app_python3s Module
+
+Daniel-Constantin Mierla
+
+Maxim Sobolev
+
+Anthony Alba
+
+Edited by
+
+Daniel-Constantin Mierla
+
+   Copyright © 2022 kamailio.org
+     __________________________________________________________________
+
+   Table of Contents
+
+   1. Admin Guide
+
+        1. Overview
+        2. Dependencies
+
+              2.1. Kamailio Modules
+              2.2. External Libraries or Applications
+
+        3. Parameters
+
+              3.1. load (string)
+
+        4. Functions
+
+              4.1. app_python3s_exec(method [, param])
+
+        5. RPC Commands
+
+              5.1. app_python.reload
+              5.2. app_python.api_list
+
+   List of Examples
+
+   1.1. Set load parameter
+   1.2. app_python3s_exec usage
+
+Chapter 1. Admin Guide
+
+   Table of Contents
+
+   1. Overview
+   2. Dependencies
+
+        2.1. Kamailio Modules
+        2.2. External Libraries or Applications
+
+   3. Parameters
+
+        3.1. load (string)
+
+   4. Functions
+
+        4.1. app_python3s_exec(method [, param])
+
+   5. RPC Commands
+
+        5.1. app_python.reload
+        5.2. app_python.api_list
+
+1. Overview
+
+   This module is an alternative 'app_python3' module with static export
+   of 'KSR' object and functions.
+
+   This module cannot be loaded together with 'app_python3' as global
+   symbols have not been renamed. To ease transition, the functions, KEMI
+   exports, and RPC commands have the same names as 'app_python3', which
+   also means the two modules cannot coexist.
+
+   This module allows executing Python3 scripts from the config file,
+   exporting functions to access the SIP message from Python3.
+
+   Note: if symbols exported to KEMI (module or function names) conflict
+   with Python's reserved keywords, use the 'getattr()' function or the
+   '__dict__' attribute for 'KSR' (e.g.,
+   'KSR.__dict__["async"].task_route("myroute")').
+
+2. Dependencies
+
+   2.1. Kamailio Modules
+   2.2. External Libraries or Applications
+
+2.1. Kamailio Modules
+
+   The following modules must be loaded before this module:
+     * none.
+
+2.2. External Libraries or Applications
+
+   The following libraries or applications must be installed before
+   running Kamailio with this module loaded:
+     * python3 - Python 3 runtime.
+
+   To compile this module the Python 3 development package is needed.
+   Requirements:
+     * python3-dev - Python 3 development package.
+     * python3-config - (part of python3-dev) tool to output C includes
+       and library paths.
+
+3. Parameters
+
+   3.1. load (string)
+
+3.1. load (string)
+
+   The path to the file with Python code to be executed from configuration
+   file.
+
+   Default value is "/usr/local/etc/kamailio/handler.py".
+
+   Example 1.1. Set load parameter
+...
+modparam("app_python3s", "load", "/usr/local/etc/kamailio/myscript.py")
+...
+
+4. Functions
+
+   4.1. app_python3s_exec(method [, param])
+
+4.1. app_python3s_exec(method [, param])
+
+   Execute the Python function with the name given by the parameter
+   'method'. Optionally can be provided a second string with the parameter
+   to be passed to the Python function.
+
+   Both parameters can contain pseudo-variables.
+
+   Example 1.2. app_python3s_exec usage
+...
+app_python3s_exec("my_python_function");
+app_python3s_exec("my_python_function", "my_params");
+app_python3s_exec("my_python_function", "$rU");
+...
+
+5. RPC Commands
+
+   5.1. app_python.reload
+   5.2. app_python.api_list
+
+5.1. app_python.reload
+
+   IMPORTANT: this is not thread-safe. In your Python script do not use C
+   extensions with threads that call into apy_exec().
+
+   Marks the need to reload the Python script. The actual reload is done
+   in each worker when it next invokes a Python method. The module uses a
+   worker process lock to prevent recursive reloads.
+
+   This function only reloads (re-executes) the user script and creates a
+   new script object. It does not reinitialize the interpreter (references
+   in the old module remain if not redefined by the new version).
+
+   Name: app_python.reload
+
+   Parameters: none
+
+   Example:
+...
+kamcmd app_python3s.reload
+...
+
+   Note that reload is done for the Python script provided as parameter to
+   this Kamailio module. To reload the Python libraries imported in this
+   script, use something like:
+...
+import mod1
+...
+import modN
+from importlib import reload
+
+def mod_init():
+    reload(mod1)
+    ...
+    reload(modN)
+    return kamailio()
+...
+
+   Where "modX" are the modules imported at the top.
+
+5.2. app_python.api_list
+
+   List the functions available via Kemi framework.
+
+   Name: app_python.api_list
+
+   Parameters: none
+
+   Example:
+...
+kamcmd app_python3s.api_list
+...

+ 439 - 0
src/modules/app_python3s/app_python3s_mod.c

@@ -0,0 +1,439 @@
+/*
+ * Copyright (C) 2009 Sippy Software, Inc., http://www.sippysoft.com
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#include <Python.h>
+#include <libgen.h>
+
+#include "../../core/str.h"
+#include "../../core/sr_module.h"
+#include "../../core/mod_fix.h"
+#include "../../core/kemi.h"
+#include "../../core/cfg/cfg_struct.h"
+
+#include "app_python3s_mod.h"
+
+#include "apy3s_exception.h"
+#include "apy3s_kemi.h"
+
+MODULE_VERSION
+
+
+str _sr_python_load_file = str_init("/usr/local/etc/" NAME "/" NAME ".py");
+
+static int mod_init(void);
+static int child_init(int rank);
+static void mod_destroy(void);
+
+int w_app_python3s_exec1(sip_msg_t *_msg, char *pmethod, char *p2);
+int w_app_python3s_exec2(sip_msg_t *_msg, char *pmethod, char *pparam);
+
+PyObject *_sr_apy3s_handler_script = NULL;
+PyObject *_sr_apy3s_format_exc_obj = NULL;
+
+char *_sr_apy3s_dname = NULL;
+char *_sr_apy3s_bname = NULL;
+
+int _apy3s_process_rank = 0;
+
+PyThreadState *myThreadState = NULL;
+
+/** module parameters */
+static param_export_t params[]={
+	{"load",               PARAM_STR, &_sr_python_load_file },
+
+	{0,0,0}
+};
+
+/*
+ * Exported functions
+ */
+static cmd_export_t cmds[] = {
+	{ "app_python3s_exec", (cmd_function)w_app_python3s_exec1, 1,  fixup_spve_null,
+		0,	ANY_ROUTE },
+	{ "app_python3s_exec", (cmd_function)w_app_python3s_exec2, 2,  fixup_spve_spve,
+		0,	ANY_ROUTE },
+
+	{ 0, 0, 0, 0, 0, 0 }
+};
+
+/** module exports */
+struct module_exports exports = {
+	"app_python3s",          /* module name */
+	RTLD_NOW | RTLD_GLOBAL,  /* dlopen flags */
+	cmds,                    /* exported functions */
+	params,                  /* exported parameters */
+	0,                       /* exported rpc functions */
+	0,                       /* exported pseudo-variables */
+	0,                       /* response handling function */
+	mod_init,                /* module init function */
+	child_init,              /* per-child init function */
+	mod_destroy              /* destroy function */
+};
+
+
+/**
+ *
+ */
+static int mod_init(void)
+{
+	char *dname_src, *bname_src;
+	int i;
+
+	/*
+	 * register the need to be called post-fork of all children
+	 * with the special rank PROC_POSTCHILDINIT
+	 */
+	ksr_module_set_flag(KSRMOD_FLAG_POSTCHILDINIT);
+
+	if (apy_sr_init_mod()<0) {
+		LM_ERR("failed to init the sr mod\n");
+		return -1;
+	}
+	if(app_python3s_init_rpc()<0) {
+		LM_ERR("failed to register RPC commands\n");
+		return -1;
+	}
+
+	dname_src = as_asciiz(&_sr_python_load_file);
+	bname_src = as_asciiz(&_sr_python_load_file);
+
+	if(dname_src==NULL || bname_src==NULL)
+	{
+		LM_ERR("no more pkg memory\n");
+		if(dname_src) pkg_free(dname_src);
+		if(bname_src) pkg_free(bname_src);
+		return -1;
+	}
+
+	_sr_apy3s_dname = strdup(dirname(dname_src));
+	if(_sr_apy3s_dname==NULL) {
+		LM_ERR("no more system memory\n");
+		pkg_free(dname_src);
+		pkg_free(bname_src);
+		return -1;
+	}
+	if (strlen(_sr_apy3s_dname) == 0) {
+		free(_sr_apy3s_dname);
+		_sr_apy3s_dname = malloc(2);
+		if(_sr_apy3s_dname==NULL) {
+			LM_ERR("no more system memory\n");
+			pkg_free(dname_src);
+			pkg_free(bname_src);
+			return -1;
+		}
+		_sr_apy3s_dname[0] = '.';
+		_sr_apy3s_dname[1] = '\0';
+	}
+	_sr_apy3s_bname = strdup(basename(bname_src));
+	i = strlen(_sr_apy3s_bname);
+	if (_sr_apy3s_bname[i - 1] == 'c' || _sr_apy3s_bname[i - 1] == 'o')
+		i -= 1;
+	if (_sr_apy3s_bname[i - 3] == '.' && _sr_apy3s_bname[i - 2] == 'p'
+			&& _sr_apy3s_bname[i - 1] == 'y') {
+		_sr_apy3s_bname[i - 3] = '\0';
+	} else {
+		LM_ERR("%s: script_name doesn't look like a python script\n",
+				_sr_python_load_file.s);
+		pkg_free(dname_src);
+		pkg_free(bname_src);
+		return -1;
+	}
+
+	if(apy_load_script()<0) {
+		pkg_free(dname_src);
+		pkg_free(bname_src);
+		LM_ERR("failed to load python script\n");
+		return -1;
+	}
+
+	pkg_free(dname_src);
+	pkg_free(bname_src);
+	return 0;
+}
+
+/**
+ *
+ */
+static int child_init(int rank)
+{
+	if(rank==PROC_INIT) {
+		/*
+		 * this is called before any process is forked
+		 * so the Python internal state handler
+		 * should be called now.
+		 */
+#if PY_VERSION_HEX >= 0x03070000
+		PyOS_BeforeFork() ;
+#endif
+		return 0;
+	}
+	if(rank==PROC_POSTCHILDINIT) {
+		/*
+		 * this is called after forking of all child
+		 * processes
+		 */
+#if PY_VERSION_HEX >= 0x03070000
+		PyOS_AfterFork_Parent() ;
+#endif
+		return 0;
+	}
+	_apy3s_process_rank = rank;
+
+	if (!_ksr_is_main) {
+#if PY_VERSION_HEX >= 0x03070000
+		PyOS_AfterFork_Child();
+#else
+		PyOS_AfterFork();
+#endif
+	}
+	if (cfg_child_init()) {
+		return -1;
+	}
+	return 0;
+}
+
+/**
+ *
+ */
+static void mod_destroy(void)
+{
+	if (_sr_apy3s_dname)
+		free(_sr_apy3s_dname);	// _sr_apy3s_dname was strdup'ed
+	if (_sr_apy3s_bname)
+		free(_sr_apy3s_bname);	// _sr_apy3s_bname was strdup'ed
+}
+
+
+/**
+ *
+ */
+int w_app_python3s_exec1(sip_msg_t *_msg, char *pmethod, char *p2)
+{
+	str method = STR_NULL;
+	if(fixup_get_svalue(_msg, (gparam_t*)pmethod, &method)<0) {
+		LM_ERR("cannot get the python method to be executed\n");
+		return -1;
+	}
+	return apy3s_exec_func(_msg, method.s, NULL, 1);
+}
+
+/**
+ *
+ */
+int w_app_python3s_exec2(sip_msg_t *_msg, char *pmethod, char *pparam)
+{
+	str method = STR_NULL;
+	str param = STR_NULL;
+	if(fixup_get_svalue(_msg, (gparam_t*)pmethod, &method)<0) {
+		LM_ERR("cannot get the python method to be executed\n");
+		return -1;
+	}
+	if(fixup_get_svalue(_msg, (gparam_t*)pparam, &param)<0) {
+		LM_ERR("cannot get the parameter of the python method\n");
+		return -1;
+	}
+	return apy3s_exec_func(_msg, method.s, param.s, 1);
+}
+
+int apy_reload_script(void)
+{
+	PyGILState_STATE gstate;
+	int rval = -1;
+
+	gstate = PyGILState_Ensure();
+	PyObject *pModule = PyImport_ReloadModule(_sr_apy3s_handler_script);
+	if (!pModule) {
+		if (!PyErr_Occurred())
+			PyErr_Format(PyExc_ImportError, "Reload module '%s'", _sr_apy3s_bname);
+		apy3s_handle_exception("mod_init");
+		Py_DECREF(_sr_apy3s_format_exc_obj);
+		goto err;
+	}
+	Py_DECREF(_sr_apy3s_handler_script);
+	_sr_apy3s_handler_script = pModule;
+
+	rval =  0;
+err:
+	PyGILState_Release(gstate);
+	return rval;
+}
+
+#define  INTERNAL_VERSION  "1002\n"
+
+int apy_load_script(void)
+{
+	PyObject *sys_path, *pDir, *pModule;
+	PyGILState_STATE gstate;
+	int rc, rval = -1;
+
+	if (sr_apy3s_init_ksr() != 0) {
+		return -1;
+	}
+
+	Py_Initialize();
+#if PY_VERSION_HEX < 0x03070000
+	PyEval_InitThreads();
+#endif
+	myThreadState = PyThreadState_Get();
+
+	gstate = PyGILState_Ensure();
+
+	// Py3 does not create a package-like hierarchy of modules
+	// make legacy modules importable using Py2 syntax
+	// import Router.Logger
+
+	rc = PyRun_SimpleString("import sys\n"
+			   "import KSR\n"
+			   "KSR.__version__ = " INTERNAL_VERSION
+			   "sys.modules['KSR.pv'] = KSR.pv\n"
+			   "sys.modules['KSR.x'] = KSR.x\n"
+			   );
+	if (rc) {
+		LM_ERR("Early imports of modules failed\n");
+		goto err;
+	}
+
+	_sr_apy3s_format_exc_obj = InitTracebackModule();
+
+	if (_sr_apy3s_format_exc_obj == NULL || !PyCallable_Check(_sr_apy3s_format_exc_obj))
+	{
+		Py_XDECREF(_sr_apy3s_format_exc_obj);
+		goto err;
+	}
+
+	sys_path = PySys_GetObject("path");
+	/* PySys_GetObject doesn't pass reference! No need to DEREF */
+	if (sys_path == NULL) {
+		if (!PyErr_Occurred())
+			PyErr_Format(PyExc_AttributeError,
+					"'module' object 'sys' has no attribute 'path'");
+		apy3s_handle_exception("mod_init");
+		Py_DECREF(_sr_apy3s_format_exc_obj);
+		goto err;
+	}
+
+	pDir = PyUnicode_FromString(_sr_apy3s_dname);
+	if (pDir == NULL) {
+		if (!PyErr_Occurred())
+			PyErr_Format(PyExc_AttributeError,
+					"PyUnicode_FromString() has failed");
+		apy3s_handle_exception("mod_init");
+		Py_DECREF(_sr_apy3s_format_exc_obj);
+		goto err;
+	}
+
+	PyList_Insert(sys_path, 0, pDir);
+	Py_DECREF(pDir);
+
+	pModule = PyImport_ImportModule(_sr_apy3s_bname);
+	if (pModule == NULL) {
+		if (!PyErr_Occurred())
+			PyErr_Format(PyExc_ImportError, "No module named '%s'", _sr_apy3s_bname);
+		apy3s_handle_exception("mod_init");
+		Py_DECREF(_sr_apy3s_format_exc_obj);
+		goto err;
+	}
+	_sr_apy3s_handler_script = pModule;
+
+	rval = 0;
+ err:
+	PyGILState_Release(gstate);
+	return rval;
+}
+
+/**
+ *
+ */
+static int ki_app_python_exec(sip_msg_t *msg, str *method)
+{
+	if(method==NULL || method->s==NULL || method->len<=0) {
+		LM_ERR("invalid method name\n");
+		return -1;
+	}
+	if(method->s[method->len]!='\0') {
+		LM_ERR("invalid terminated method name\n");
+		return -1;
+	}
+	return apy3s_exec_func(msg, method->s, NULL, 1);
+}
+
+/**
+ *
+ */
+static int ki_app_python_exec_p1(sip_msg_t *msg, str *method, str *p1)
+{
+	if(method==NULL || method->s==NULL || method->len<=0) {
+		LM_ERR("invalid method name\n");
+		return -1;
+	}
+	if(method->s[method->len]!='\0') {
+		LM_ERR("invalid terminated method name\n");
+		return -1;
+	}
+	if(p1==NULL || p1->s==NULL || p1->len<0) {
+		LM_ERR("invalid p1 value\n");
+		return -1;
+	}
+	if(p1->s[p1->len]!='\0') {
+		LM_ERR("invalid terminated p1 value\n");
+		return -1;
+	}
+
+	return apy3s_exec_func(msg, method->s, p1->s, 1);
+}
+
+/**
+ *
+ */
+/* clang-format off */
+static sr_kemi_t sr_kemi_app_python_exports[] = {
+	{ str_init("app_python3s"), str_init("exec"),
+		SR_KEMIP_INT, ki_app_python_exec,
+		{ SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init("app_python3s"), str_init("execx"),
+		SR_KEMIP_INT, ki_app_python_exec,
+		{ SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+	{ str_init("app_python3s"), str_init("exec_p1"),
+		SR_KEMIP_INT, ki_app_python_exec_p1,
+		{ SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+
+	{ {0, 0}, {0, 0}, 0, NULL, { 0, 0, 0, 0, 0, 0 } }
+};
+/* clang-format on */
+
+/**
+ *
+ */
+int mod_register(char *path, int *dlflags, void *p1, void *p2)
+{
+	str ename = str_init("python");
+
+	sr_kemi_eng_register(&ename, sr_kemi_config_engine_python);
+	sr_kemi_modules_add(sr_kemi_app_python_exports);
+
+	return 0;
+}

+ 32 - 0
src/modules/app_python3s/app_python3s_mod.h

@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2009 Sippy Software, Inc., http://www.sippysoft.com
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+*/
+
+#ifndef _APP_PYTHON3_MOD_H
+#define  _APP_PYTHON3_MOD_H
+
+#include <Python.h>
+
+extern PyObject *_sr_apy3s_handler_script;
+extern PyObject *_sr_apy3s_format_exc_obj;
+extern PyThreadState *myThreadState;
+int apy_reload_script(void);
+
+#endif

+ 296 - 0
src/modules/app_python3s/apy3s_exception.c

@@ -0,0 +1,296 @@
+/*
+ * Copyright (C) 2009 Sippy Software, Inc., http://www.sippysoft.com
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#include <Python.h>
+#include <stdio.h>
+#include <stdarg.h>
+
+#include "../../core/dprint.h"
+#include "../../core/mem/mem.h"
+
+#include "app_python3s_mod.h"
+#include "apy3s_exception.h"
+
+static char *apy3s_make_message(const char *fmt, va_list args);
+
+void apy3s_handle_exception(const char *fmt, ...)
+{
+	PyObject *pResult;
+	const char *msg;
+	char *buf;
+	size_t buflen, msglen;
+	PyObject *exception, *v, *tb, *args;
+	PyObject *line;
+	int i;
+	char *srcbuf;
+	int exc_exit = 0;
+	va_list ap;
+
+	// We don't want to generate traceback when no errors occurred
+	if (!PyErr_Occurred())
+		return;
+
+	if (fmt == NULL)
+		srcbuf = NULL;
+	else {
+		va_start(ap, fmt);
+		srcbuf = apy3s_make_message(fmt, ap);
+		va_end(ap);
+	}
+
+	PyErr_Fetch(&exception, &v, &tb);
+	PyErr_Clear();
+	if (exception == NULL) {
+		LM_ERR("Can't get traceback, PyErr_Fetch() has failed.\n");
+		if (srcbuf) pkg_free(srcbuf);
+		return;
+	}
+
+	PyErr_NormalizeException(&exception, &v, &tb);
+	if (exception == NULL) {
+		LM_ERR("Can't get traceback, PyErr_NormalizeException() has failed.\n");
+		if (srcbuf) pkg_free(srcbuf);
+		return;
+	}
+
+	exc_exit = PyErr_GivenExceptionMatches(exception, PyExc_SystemExit);
+	args = PyTuple_Pack(3, exception, v, tb ? tb : Py_None);
+	Py_XDECREF(exception);
+	Py_XDECREF(v);
+	Py_XDECREF(tb);
+	if (args == NULL) {
+		LM_ERR("Can't get traceback, PyTuple_Pack() has failed.\n");
+		if (srcbuf) pkg_free(srcbuf);
+		return;
+	}
+
+	pResult = PyObject_CallObject(_sr_apy3s_format_exc_obj, args);
+	Py_DECREF(args);
+	if (pResult == NULL) {
+		LM_ERR("Can't get traceback, traceback.format_exception() has failed.\n");
+		if (srcbuf) pkg_free(srcbuf);
+		return;
+	}
+
+	buflen = 1;
+	buf = (char *)pkg_realloc(NULL, buflen * sizeof(char));
+	if (!buf)
+	{
+		LM_ERR("Can't allocate memory (%lu bytes), pkg_realloc() has failed."
+				" Not enough memory.\n", (unsigned long)(buflen * sizeof(char *)));
+		if (srcbuf) pkg_free(srcbuf);
+		return;
+	}
+	memset(buf, 0, buflen * sizeof(char));
+
+	for (i = 0; i < PySequence_Size(pResult); i++) {
+		line = PySequence_GetItem(pResult, i);
+		if (line == NULL) {
+			LM_ERR("Can't get traceback, PySequence_GetItem() has failed.\n");
+			Py_DECREF(pResult);
+			if (buf)
+				pkg_free(buf);
+			if (srcbuf) pkg_free(srcbuf);
+			return;
+		}
+
+		msg = PyUnicode_AsUTF8(line);
+
+		if (msg == NULL) {
+			LM_ERR("Can't get traceback, PyUnicode_AsUTF8() has failed.\n");
+			Py_DECREF(line);
+			Py_DECREF(pResult);
+			if (buf)
+				pkg_free(buf);
+			if (srcbuf) pkg_free(srcbuf);
+			return;
+		}
+
+		msglen = strlen(msg);
+		buflen += ++msglen;
+
+		buf = (char *)pkg_reallocxf(buf, buflen * sizeof(char));
+		if (!buf)
+		{
+			LM_ERR("Can't allocate memory (%lu bytes), pkg_realloc() has failed."
+					" Not enough memory.\n", (unsigned long)(buflen * sizeof(char *)));
+			Py_DECREF(line);
+			Py_DECREF(pResult);
+			if (srcbuf) pkg_free(srcbuf);
+			return;
+		}
+
+		strncat(buf, msg, msglen >= buflen ? buflen-1 : msglen);
+
+		Py_DECREF(line);
+	}
+
+	if (srcbuf == NULL) {
+		if(exc_exit) {
+			LM_DBG("Unhandled exception in the Python code:\n%s", buf);
+		} else {
+			LM_ERR("Unhandled exception in the Python code:\n%s", buf);
+		}
+	} else {
+		if(exc_exit) {
+			LM_DBG("%s: Unhandled exception in the Python code:\n%s", srcbuf, buf);
+		} else {
+			LM_ERR("%s: Unhandled exception in the Python code:\n%s", srcbuf, buf);
+		}
+	}
+
+	if (buf)
+		pkg_free(buf);
+
+	if (srcbuf)
+		pkg_free(srcbuf);
+
+	Py_DECREF(pResult);
+}
+
+
+PyObject *InitTracebackModule()
+{
+	PyObject *pModule, *pTracebackObject;
+
+	pModule = PyImport_ImportModule("traceback");
+	if (pModule == NULL) {
+		LM_ERR("Cannot import module 'traceback'.\n");
+		return NULL;
+	}
+
+	pTracebackObject = PyObject_GetAttrString(pModule, "format_exception");
+	Py_DECREF(pModule);
+	if (pTracebackObject == NULL || !PyCallable_Check(pTracebackObject)) {
+		LM_ERR("AttributeError: 'module' object 'traceback' has no attribute"
+				" 'format_exception'.\n");
+		Py_XDECREF(pTracebackObject);
+		return NULL;
+	}
+
+	return pTracebackObject;
+}
+
+
+static char *apy3s_make_message(const char *fmt, va_list ap)
+{
+	int n;
+	size_t size;
+	char *p, *np;
+
+	size = 100;     /* Guess we need no more than 100 bytes. */
+	p = (char *)pkg_realloc(NULL, size * sizeof(char));
+	if (!p)
+	{
+		LM_ERR("Can't allocate memory (%lu bytes), pkg_malloc() has failed:"
+				" Not enough memory.\n", (unsigned long)(size * sizeof(char)));
+		return NULL;
+	}
+	memset(p, 0, size * sizeof(char));
+
+	while (1)
+	{
+		n = vsnprintf(p, size, fmt, ap);
+
+		if (n > -1 && n < size)
+			return p;
+
+		if (n > -1)    /* glibc 2.1 */
+			size = n+1;
+		else           /* glibc 2.0 */
+			size *= 2;
+
+		np = (char *)pkg_realloc(p, size * sizeof(char));
+		if (!np)
+		{
+			LM_ERR("Can't allocate memory (%lu bytes), pkg_realloc() has failed:"
+					" Not enough memory.\n", (unsigned long)size * sizeof(char));
+			if (p)
+				pkg_free(p);
+			return NULL;
+		}
+		else
+			p = np;
+	}
+
+	return NULL;	// shall not happened, but who knows ;)
+}
+
+#if PY_VERSION_HEX >= 0x03070000
+const char *get_class_name(PyObject *y)
+#else
+char *get_class_name(PyObject *y)
+#endif
+{
+	PyObject *p;
+#if PY_VERSION_HEX >= 0x03070000
+	const char *name;
+#else
+	char *name;
+#endif
+
+	p = PyObject_GetAttrString(y, "__name__");
+	if (p == NULL || p == Py_None)
+	{
+		Py_XDECREF(p);
+		return NULL;
+	}
+
+	name = PyUnicode_AsUTF8(p);
+	Py_XDECREF(p);
+
+	return name;
+}
+
+
+#if PY_VERSION_HEX >= 0x03070000
+const char *get_instance_class_name(PyObject *y)
+#else
+char *get_instance_class_name(PyObject *y)
+#endif
+{
+	PyObject *p, *n;
+#if PY_VERSION_HEX >= 0x03070000
+	const char *name;
+#else
+	char *name;
+#endif
+
+	n = PyObject_GetAttrString(y, "__class__");
+	if (n == NULL || n == Py_None)
+	{
+		Py_XDECREF(n);
+		return NULL;
+	}
+
+	p = PyObject_GetAttrString(n, "__name__");
+	if (p == NULL || p == Py_None)
+	{
+		Py_XDECREF(p);
+		return NULL;
+	}
+
+	name = PyUnicode_AsUTF8(p);
+	Py_XDECREF(p);
+	Py_XDECREF(n);
+
+	return name;
+}

+ 41 - 0
src/modules/app_python3s/apy3s_exception.h

@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2009 Sippy Software, Inc., http://www.sippysoft.com
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+*/
+
+#ifndef _PYTHON_SUPPORT_H
+#define  _PYTHON_SUPPORT_H
+
+#include <Python.h>
+#include <stdarg.h>
+
+extern PyObject *_sr_apy3s_format_exc_obj;
+
+void apy3s_handle_exception(const char *, ...);
+
+PyObject *InitTracebackModule(void);
+#if PY_VERSION_HEX >= 0x03070000
+const char *get_class_name(PyObject *);
+const char *get_instance_class_name(PyObject *);
+#else
+char *get_class_name(PyObject *);
+char *get_instance_class_name(PyObject *);
+#endif
+
+#endif

+ 934 - 0
src/modules/app_python3s/apy3s_kemi.c

@@ -0,0 +1,934 @@
+/**
+ * Copyright (C) 2016 Daniel-Constantin Mierla (asipto.com)
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <Python.h>
+#include <frameobject.h>
+
+#include "../../core/dprint.h"
+#include "../../core/route.h"
+#include "../../core/fmsg.h"
+#include "../../core/kemi.h"
+#include "../../core/locking.h"
+#include "../../core/pvar.h"
+#include "../../core/timer.h"
+#include "../../core/mem/pkg.h"
+#include "../../core/mem/shm.h"
+#include "../../core/sr_module.h"
+#include "../../core/rpc.h"
+#include "../../core/rpc_lookup.h"
+
+#include "app_python3s_mod.h"
+#include "apy3s_exception.h"
+#include "apy3s_kemi_export.h"
+#include "apy3s_kemi.h"
+
+int *_sr_python_reload_version = NULL;
+int _sr_python_local_version = 0;
+gen_lock_t* _sr_python_reload_lock = NULL;
+extern str _sr_python_load_file;
+extern int _apy3s_process_rank;
+
+int apy_reload_script(void);
+
+static sr_apy_env_t _sr_apy_env = {0};
+
+/**
+ *
+ */
+sr_apy_env_t *sr_apy_env_get()
+{
+	return &_sr_apy_env;
+}
+
+/**
+ *
+ */
+int apy3s_exec_func(sip_msg_t *_msg, char *fname, char *fparam, int emode)
+{
+    PyObject *pFunc, *pArgs, *pValue;
+    sip_msg_t *bmsg;
+    int rval = -1;
+	int locked = 0;
+
+    if (_sr_apy3s_handler_script == NULL) {
+    	LM_ERR("interpreter not properly initialized\n");
+    	return -1;
+	}
+
+	if (lock_try(_sr_python_reload_lock) == 0) {
+		if(_sr_python_reload_version && *_sr_python_reload_version != _sr_python_local_version) {
+			LM_INFO("Reloading script %d->%d\n", _sr_python_local_version, *_sr_python_reload_version);
+			if (apy_reload_script()) {
+				LM_ERR("Error reloading script\n");
+			} else {
+				_sr_python_local_version = *_sr_python_reload_version;
+			}
+		}
+		locked = 1;
+	}
+
+	bmsg = _sr_apy_env.msg;
+	_sr_apy_env.msg = _msg;
+
+	pFunc = PyObject_GetAttrString(_sr_apy3s_handler_script, fname);
+	/* pFunc is a new reference */
+
+	if (pFunc == NULL || !PyCallable_Check(pFunc)) {
+		if(emode==1) {
+			LM_ERR("%s not found or is not callable\n", fname);
+		} else {
+			LM_DBG("%s not found or is not callable\n", fname);
+		}
+		Py_XDECREF(pFunc);
+		_sr_apy_env.msg = bmsg;
+		if(emode==1) {
+			goto error;
+		} else {
+			rval = 1;
+			goto error;
+		}
+	}
+	if(fparam) {
+		pArgs = PyTuple_New(1);
+		if (pArgs == NULL) {
+			LM_ERR("PyTuple_New() failed\n");
+			Py_DECREF(pFunc);
+			_sr_apy_env.msg = bmsg;
+			goto error;
+		}
+		pValue = PyUnicode_FromString(fparam);
+		if (pValue == NULL) {
+			LM_ERR("PyUnicode_FromString(%s) failed\n", fparam);
+			Py_DECREF(pArgs);
+			Py_DECREF(pFunc);
+			_sr_apy_env.msg = bmsg;
+			goto error;
+		}
+		PyTuple_SetItem(pArgs, 0, pValue);
+	} else {
+		pArgs = PyTuple_New(0);
+	}
+
+	pValue = PyObject_CallObject(pFunc, pArgs);
+	Py_XDECREF(pArgs);
+	Py_DECREF(pFunc);
+
+	if (PyErr_Occurred()) {
+		Py_XDECREF(pValue);
+		LM_ERR("error exception occurred\n");
+		apy3s_handle_exception("apy3s_exec_func: %s(%s)", fname, fparam);
+		_sr_apy_env.msg = bmsg;
+		goto error;
+	}
+	if (pValue == NULL) {
+		LM_ERR("PyObject_CallObject() returned NULL\n");
+		_sr_apy_env.msg = bmsg;
+		goto error;
+	}
+	rval = (int)PyLong_AsLong(pValue);
+
+	Py_DECREF(pValue);
+
+error:
+	if(locked) {
+		lock_release(_sr_python_reload_lock);
+	}
+    return rval;
+}
+
+
+/**
+ *
+ */
+int sr_kemi_config_engine_python(sip_msg_t *msg, int rtype, str *rname,
+		str *rparam)
+{
+	int ret;
+
+	ret = -1;
+	if(rtype==REQUEST_ROUTE) {
+		if(rname!=NULL && rname->s!=NULL) {
+			ret = apy3s_exec_func(msg, rname->s,
+					(rparam && rparam->s)?rparam->s:NULL, 0);
+		} else {
+			ret = apy3s_exec_func(msg, "ksr_request_route", NULL, 1);
+		}
+	} else if(rtype==CORE_ONREPLY_ROUTE) {
+		if(kemi_reply_route_callback.len>0) {
+			ret = apy3s_exec_func(msg, kemi_reply_route_callback.s, NULL, 0);
+		}
+	} else if(rtype==BRANCH_ROUTE) {
+		if(rname!=NULL && rname->s!=NULL) {
+			ret = apy3s_exec_func(msg, rname->s, NULL, 0);
+		}
+	} else if(rtype==FAILURE_ROUTE) {
+		if(rname!=NULL && rname->s!=NULL) {
+			ret = apy3s_exec_func(msg, rname->s, NULL, 0);
+		}
+	} else if(rtype==BRANCH_FAILURE_ROUTE) {
+		if(rname!=NULL && rname->s!=NULL) {
+			ret = apy3s_exec_func(msg, rname->s, NULL, 0);
+		}
+	} else if(rtype==TM_ONREPLY_ROUTE) {
+		if(rname!=NULL && rname->s!=NULL) {
+			ret = apy3s_exec_func(msg, rname->s, NULL, 0);
+		}
+	} else if(rtype==ONSEND_ROUTE) {
+		if(kemi_onsend_route_callback.len>0) {
+			ret = apy3s_exec_func(msg, kemi_onsend_route_callback.s, NULL, 0);
+		}
+		return 1;
+	} else if(rtype==EVENT_ROUTE) {
+		if(rname!=NULL && rname->s!=NULL) {
+			ret = apy3s_exec_func(msg, rname->s,
+					(rparam && rparam->s)?rparam->s:NULL, 0);
+		}
+	} else {
+		if(rname!=NULL) {
+			LM_ERR("route type %d with name [%.*s] not implemented\n",
+				rtype, rname->len, rname->s);
+		} else {
+			LM_ERR("route type %d with no name not implemented\n",
+				rtype);
+		}
+	}
+
+	if(rname!=NULL) {
+		LM_DBG("execution of route type %d with name [%.*s] returned %d\n",
+				rtype, rname->len, rname->s, ret);
+	} else {
+		LM_DBG("execution of route type %d with no name returned %d\n",
+			rtype, ret);
+	}
+
+	return 1;
+}
+
+
+/**
+ *
+ */
+PyObject *sr_kemi_apy_return_true(void)
+{
+	Py_INCREF(Py_True);
+	return Py_True;
+}
+
+/**
+ *
+ */
+PyObject *sr_kemi_apy_return_false(void)
+{
+	Py_INCREF(Py_False);
+	return Py_False;
+}
+
+/**
+ *
+ */
+PyObject *sr_apy_kemi_return_none(void)
+{
+	Py_INCREF(Py_None);
+	return Py_None;
+}
+
+/**
+ *
+ */
+PyObject *sr_kemi_apy_return_int(sr_kemi_t *ket, int rval)
+{
+	if(ket!=NULL && ket->rtype==SR_KEMIP_BOOL) {
+		if(rval==SR_KEMI_TRUE) {
+			return sr_kemi_apy_return_true();
+		} else {
+			return sr_kemi_apy_return_false();
+		}
+	}
+	return PyLong_FromLong((long)rval);
+}
+
+/**
+ *
+ */
+PyObject *sr_kemi_apy_return_long(sr_kemi_t *ket, long rval)
+{
+	return PyLong_FromLong(rval);
+}
+
+/**
+ *
+ */
+PyObject *sr_apy_kemi_return_str(sr_kemi_t *ket, char *sval, int slen)
+{
+	return PyUnicode_FromStringAndSize(sval, slen);
+}
+
+/**
+ *
+ */
+PyObject *sr_kemi_apy_return_xval(sr_kemi_t *ket, sr_kemi_xval_t *rx)
+{
+	switch(rx->vtype) {
+		case SR_KEMIP_NONE:
+			return sr_apy_kemi_return_none();
+		case SR_KEMIP_INT:
+			return sr_kemi_apy_return_int(ket, rx->v.n);
+		case SR_KEMIP_LONG:
+			return sr_kemi_apy_return_long(ket, rx->v.l);
+		case SR_KEMIP_STR:
+			return sr_apy_kemi_return_str(ket, rx->v.s.s, rx->v.s.len);
+		case SR_KEMIP_BOOL:
+			if(rx->v.n!=SR_KEMI_FALSE) {
+				return sr_kemi_apy_return_true();
+			} else {
+				return sr_kemi_apy_return_false();
+			}
+		case SR_KEMIP_ARRAY:
+			LM_ERR("unsupported return type: array\n");
+			sr_kemi_xval_free(rx);
+			return sr_apy_kemi_return_none();
+		case SR_KEMIP_DICT:
+			LM_ERR("unsupported return type: map\n");
+			sr_kemi_xval_free(rx);
+			return sr_apy_kemi_return_none();
+		case SR_KEMIP_XVAL:
+			/* unknown content - return false */
+			return sr_kemi_apy_return_false();
+		case SR_KEMIP_NULL:
+			return sr_apy_kemi_return_none();
+		default:
+			/* unknown type - return false */
+			return sr_kemi_apy_return_false();
+	}
+}
+
+/**
+ *
+ */
+PyObject *sr_apy_kemi_exec_func_ex(sr_kemi_t *ket, PyObject *self, PyObject *args, int idx)
+{
+	str fname;
+	int i;
+	int ret;
+	sr_kemi_xval_t vps[SR_KEMI_PARAMS_MAX];
+	sr_apy_env_t *env_P;
+	sip_msg_t *lmsg = NULL;
+	sr_kemi_xval_t *xret;
+	Py_ssize_t slen;
+	Py_ssize_t alen;
+	PyObject *pobj;
+
+	env_P = sr_apy_env_get();
+
+	if(env_P==NULL) {
+		LM_ERR("invalid Python environment attributes\n");
+		return sr_kemi_apy_return_false();
+	}
+	if(env_P->msg==NULL) {
+		lmsg = faked_msg_next();
+	} else {
+		lmsg = env_P->msg;
+	}
+
+	if(ket->mname.len>0) {
+		LM_DBG("execution of method: %.*s.%.*s\n",
+				ket->mname.len, ket->mname.s,
+				ket->fname.len, ket->fname.s);
+	} else {
+		LM_DBG("execution of method: %.*s\n", ket->fname.len, ket->fname.s);
+	}
+	fname = ket->fname;
+
+	if(ket->ptypes[0]==SR_KEMIP_NONE) {
+		if(ket->rtype==SR_KEMIP_XVAL) {
+			xret = ((sr_kemi_xfm_f)(ket->func))(lmsg);
+			return sr_kemi_apy_return_xval(ket, xret);
+		} else {
+			ret = ((sr_kemi_fm_f)(ket->func))(lmsg);
+			return sr_kemi_apy_return_int(ket, ret);
+		}
+	}
+
+	if(!PyTuple_Check(args)) {
+		LM_ERR("invalid arguments from Python\n");
+		return sr_kemi_apy_return_false();
+
+	}
+	memset(vps, 0, SR_KEMI_PARAMS_MAX*sizeof(sr_kemi_xval_t));
+
+	alen = PyTuple_Size(args);
+	LM_DBG("number of arguments: %d\n", (int)alen);
+
+	for(i=0; i<SR_KEMI_PARAMS_MAX; i++) {
+		if(ket->ptypes[i]==SR_KEMIP_NONE) {
+			break;
+		}
+		if(i>=alen) {
+			LM_ERR("invalid number of parameters - idx: %d argc: %d\n", i, (int)alen);
+			return sr_kemi_apy_return_false();
+		}
+		pobj = PyTuple_GetItem(args, i);
+		if(pobj==NULL) {
+			LM_ERR("null parameter - func: %.*s idx: %d argc: %d\n",
+					fname.len, fname.s, i, (int)alen);
+			return sr_kemi_apy_return_false();
+		}
+		if(ket->ptypes[i]==SR_KEMIP_STR) {
+			if(!PyUnicode_Check(pobj)) {
+				LM_ERR("non-string parameter - func: %.*s idx: %d argc: %d\n",
+						fname.len, fname.s, i, (int)alen);
+				return sr_kemi_apy_return_false();
+			}
+			vps[i].v.s.s = (char*)PyUnicode_AsUTF8AndSize(pobj, &slen);
+			if(vps[i].v.s.s==NULL) {
+				LM_ERR("null-string parameter - func: %.*s idx: %d argc: %d\n",
+						fname.len, fname.s, i, (int)alen);
+				return sr_kemi_apy_return_false();
+			}
+			vps[i].v.s.len = (int)slen;
+			vps[i].vtype = SR_KEMIP_STR;
+		} else if((ket->ptypes[i]==SR_KEMIP_INT) || (ket->ptypes[i]==SR_KEMIP_LONG)) {
+			if(PyLong_Check(pobj)) {
+				vps[i].v.l = PyLong_AsLong(pobj);
+			} else if(pobj==Py_True) {
+				vps[i].v.l = 1;
+			} else if(pobj==Py_False) {
+				vps[i].v.l = 0;
+			} else {
+				LM_ERR("non-number parameter - func: %.*s idx: %d argc: %d\n",
+						fname.len, fname.s, i, (int)alen);
+				return sr_kemi_apy_return_false();
+			}
+			if(ket->ptypes[i]==SR_KEMIP_INT) {
+				vps[i].vtype = SR_KEMIP_INT;
+				vps[i].v.n = (int)vps[i].v.l;
+			} else {
+				vps[i].vtype = SR_KEMIP_LONG;
+			}
+		} else {
+			LM_ERR("invalid parameter type - func: %.*s idx: %d argc: %d\n",
+					fname.len, fname.s, i, (int)alen);
+			return sr_kemi_apy_return_false();
+		}
+	}
+
+	xret = sr_kemi_exec_func(ket, lmsg, i, vps);
+	return sr_kemi_apy_return_xval(ket, xret);
+}
+
+/**
+ *
+ */
+PyObject *sr_apy_kemi_exec_func(PyObject *self, PyObject *args, int idx)
+{
+	sr_kemi_t *ket = NULL;
+	PyObject *ret = NULL;
+	PyThreadState *pstate = NULL;
+	PyFrameObject *pframe = NULL;
+#if PY_VERSION_HEX >= 0x03100000
+	PyCodeObject *pcode = NULL;
+#endif
+	struct timeval tvb = {0}, tve = {0};
+	struct timezone tz;
+	unsigned int tdiff;
+
+	ket = sr_apy_kemi_export_get(idx);
+	if(ket==NULL) {
+		return sr_kemi_apy_return_false();
+	}
+	if(unlikely(cfg_get(core, core_cfg, latency_limit_action)>0)
+			&& is_printable(cfg_get(core, core_cfg, latency_log))) {
+		gettimeofday(&tvb, &tz);
+	}
+
+	ret = sr_apy_kemi_exec_func_ex(ket, self, args, idx);
+
+	if(unlikely(cfg_get(core, core_cfg, latency_limit_action)>0)
+			&& is_printable(cfg_get(core, core_cfg, latency_log))) {
+		gettimeofday(&tve, &tz);
+		tdiff = (tve.tv_sec - tvb.tv_sec) * 1000000
+				   + (tve.tv_usec - tvb.tv_usec);
+		if(tdiff >= cfg_get(core, core_cfg, latency_limit_action)) {
+			pstate = PyThreadState_GET();
+			if (pstate != NULL) {
+#if PY_VERSION_HEX >= 0x03100000
+				pframe = PyThreadState_GetFrame(pstate);
+				if(pframe != NULL) {
+					pcode = PyFrame_GetCode(pframe);
+				}
+#else
+				pframe = pstate->frame;
+#endif
+			}
+
+#if PY_VERSION_HEX >= 0x03100000
+			LOG(cfg_get(core, core_cfg, latency_log),
+					"alert - action KSR.%s%s%s(...)"
+					" took too long [%u us] (file:%s func:%s line:%d)\n",
+					(ket->mname.len>0)?ket->mname.s:"",
+					(ket->mname.len>0)?".":"", ket->fname.s, tdiff,
+					(pcode)?PyUnicode_AsUTF8(pcode->co_filename):"",
+					(pcode)?PyUnicode_AsUTF8(pcode->co_name):"",
+					(pframe)?PyFrame_GetLineNumber(pframe):0);
+#else
+			LOG(cfg_get(core, core_cfg, latency_log),
+					"alert - action KSR.%s%s%s(...)"
+					" took too long [%u us] (file:%s func:%s line:%d)\n",
+					(ket->mname.len>0)?ket->mname.s:"",
+					(ket->mname.len>0)?".":"", ket->fname.s, tdiff,
+					(pframe && pframe->f_code)?PyUnicode_AsUTF8(pframe->f_code->co_filename):"",
+					(pframe && pframe->f_code)?PyUnicode_AsUTF8(pframe->f_code->co_name):"",
+					(pframe && pframe->f_code)?PyCode_Addr2Line(pframe->f_code, pframe->f_lasti):0);
+#endif
+		}
+	}
+
+	return ret;
+}
+
+PyObject *apy3s_kemi_modx(PyObject *self, PyObject *args)
+{
+	int i, rval;
+	char *fname, *arg1, *arg2;
+	ksr_cmd_export_t* fexport;
+	struct action *act;
+	struct run_act_ctx ra_ctx;
+
+	if (_sr_apy_env.msg == NULL) {
+		PyErr_SetString(PyExc_RuntimeError, "msg is NULL");
+		return NULL;
+	}
+
+	i = PySequence_Size(args);
+	if (i < 1 || i > 3) {
+		PyErr_SetString(PyExc_RuntimeError, "call_function() should " \
+				"have from 1 to 3 arguments");
+		return NULL;
+	}
+
+	if(!PyArg_ParseTuple(args, "s|ss:call_function", &fname, &arg1, &arg2))
+		return NULL;
+
+	fexport = find_export_record(fname, i - 1, 0);
+	if (fexport == NULL) {
+		PyErr_SetString(PyExc_RuntimeError, "no such function");
+		return NULL;
+	}
+
+	act = mk_action(MODULE2_T, 4 /* number of (type, value) pairs */,
+			MODEXP_ST, fexport, /* function */
+			NUMBER_ST, 2,       /* parameter number */
+			STRING_ST, arg1,    /* param. 1 */
+			STRING_ST, arg2     /* param. 2 */
+			);
+
+	if (act == NULL) {
+		PyErr_SetString(PyExc_RuntimeError,
+				"action structure could not be created");
+		return NULL;
+	}
+
+	if (fexport->fixup != NULL) {
+		if (i >= 3) {
+			rval = fexport->fixup(&(act->val[3].u.data), 2);
+			if (rval < 0) {
+				pkg_free(act);
+				PyErr_SetString(PyExc_RuntimeError, "Error in fixup (2)");
+				return NULL;
+			}
+			act->val[3].type = MODFIXUP_ST;
+		}
+		if (i >= 2) {
+			rval = fexport->fixup(&(act->val[2].u.data), 1);
+			if (rval < 0) {
+				pkg_free(act);
+				PyErr_SetString(PyExc_RuntimeError, "Error in fixup (1)");
+				return NULL;
+			}
+			act->val[2].type = MODFIXUP_ST;
+		}
+		if (i == 1) {
+			rval = fexport->fixup(0, 0);
+			if (rval < 0) {
+				pkg_free(act);
+				PyErr_SetString(PyExc_RuntimeError, "Error in fixup (0)");
+				return NULL;
+			}
+		}
+	}
+
+	init_run_actions_ctx(&ra_ctx);
+	rval = do_action(&ra_ctx, act, _sr_apy_env.msg);
+
+	if ((act->val[3].type == MODFIXUP_ST) && (act->val[3].u.data)) {
+		pkg_free(act->val[3].u.data);
+	}
+
+	if ((act->val[2].type == MODFIXUP_ST) && (act->val[2].u.data)) {
+		pkg_free(act->val[2].u.data);
+	}
+
+	pkg_free(act);
+
+	return PyLong_FromLong(rval);
+}
+
+
+/**
+ *
+ */
+PyObject *_sr_apy_ksr_module = NULL;
+PyObject **_sr_apy_ksr_modules_list = NULL;
+
+PyMethodDef *_sr_KSRMethods = NULL;
+#define SR_APY_KSR_MODULES_SIZE	256
+#define SR_APY_KSR_METHODS_SIZE	(SR_APY_KEMI_EXPORT_SIZE + SR_APY_KSR_MODULES_SIZE)
+
+/**
+ *
+ */
+static int sr_apy_kemi_f_ktest(sip_msg_t *msg, str *txt)
+{
+	if(txt!=NULL && txt->s!=NULL)
+		LM_DBG("%.*s", txt->len, txt->s);
+	return 0;
+}
+
+/**
+ *
+ */
+/* clang-format off */
+static sr_kemi_t _sr_apy_kemi_test[] = {
+	{ str_init(""), str_init("ktest"),
+		SR_KEMIP_NONE, sr_apy_kemi_f_ktest,
+		{ SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE,
+			SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE }
+	},
+
+	{ {0, 0}, {0, 0}, 0, NULL, { 0, 0, 0, 0, 0, 0 } }
+};
+/* clang-format on */
+
+static struct PyModuleDef KSR_moduledef = {
+        PyModuleDef_HEAD_INIT,
+        "KSR",
+        NULL,
+        -1,
+        NULL,
+        NULL,
+        NULL,
+        NULL,
+        NULL
+};
+
+/**
+ *
+ */
+static PyMethodDef _sr_apy_kemi_x_Methods[] = {
+	{"modf", (PyCFunction)apy3s_kemi_modx, METH_VARARGS,
+		"Invoke function exported by the other module."},
+	{NULL, NULL, 0, NULL} /* sentinel */
+};
+
+static struct PyModuleDef KSR_x_moduledef = {
+        PyModuleDef_HEAD_INIT,
+        "KSR.x",
+        NULL,
+        -1,
+        _sr_apy_kemi_x_Methods,
+        NULL,
+        NULL,
+        NULL,
+        NULL
+};
+
+/* forward */
+static PyObject* init_KSR(void);
+int sr_apy3s_init_ksr(void) {
+	PyImport_AppendInittab("KSR", &init_KSR);
+	return 0;
+}
+/**
+ *
+ */
+static
+PyObject* init_KSR(void)
+{
+	PyMethodDef *_sr_crt_KSRMethods = NULL;
+	sr_kemi_module_t *emods = NULL;
+	int emods_size = 0;
+	int i;
+	int k;
+	int m;
+	int n;
+	char mname[128];
+
+	/* init faked sip msg */
+	if(faked_msg_init()<0)
+	{
+		LM_ERR("failed to init local faked sip msg\n");
+		return NULL;
+	}
+
+	_sr_KSRMethods = malloc(SR_APY_KSR_METHODS_SIZE * sizeof(PyMethodDef));
+	if(_sr_KSRMethods==NULL) {
+		LM_ERR("no more pkg memory\n");
+		return NULL;
+	}
+	_sr_apy_ksr_modules_list = malloc(SR_APY_KSR_MODULES_SIZE * sizeof(PyObject*));
+	if(_sr_apy_ksr_modules_list==NULL) {
+		LM_ERR("no more pkg memory\n");
+		return NULL;
+	}
+	memset(_sr_KSRMethods, 0, SR_APY_KSR_METHODS_SIZE * sizeof(PyMethodDef));
+	memset(_sr_apy_ksr_modules_list, 0, SR_APY_KSR_MODULES_SIZE * sizeof(PyObject*));
+
+	emods_size = sr_kemi_modules_size_get();
+	emods = sr_kemi_modules_get();
+
+	n = 0;
+	_sr_crt_KSRMethods = _sr_KSRMethods;
+	if(emods_size==0 || emods[0].kexp==NULL) {
+		LM_DBG("exporting KSR.%s(...)\n", _sr_apy_kemi_test[0].fname.s);
+		_sr_crt_KSRMethods[0].ml_name = _sr_apy_kemi_test[0].fname.s;
+		_sr_crt_KSRMethods[0].ml_meth = sr_apy_kemi_export_associate(&_sr_apy_kemi_test[0]);
+		_sr_crt_KSRMethods[0].ml_flags = METH_VARARGS;
+		_sr_crt_KSRMethods[0].ml_doc = NAME " exported function";
+	} else {
+		for(i=0; emods[0].kexp[i].func!=NULL; i++) {
+			LM_DBG("exporting KSR.%s(...)\n", emods[0].kexp[i].fname.s);
+			_sr_crt_KSRMethods[i].ml_name = emods[0].kexp[i].fname.s;
+			_sr_crt_KSRMethods[i].ml_meth =
+				sr_apy_kemi_export_associate(&emods[0].kexp[i]);
+			if(_sr_crt_KSRMethods[i].ml_meth == NULL) {
+				LM_ERR("failed to associate kemi function with python export\n");
+				free(_sr_KSRMethods);
+				_sr_KSRMethods = NULL;
+				return NULL;
+			}
+			_sr_crt_KSRMethods[i].ml_flags = METH_VARARGS;
+			_sr_crt_KSRMethods[i].ml_doc = NAME " exported function";
+			n++;
+		}
+	}
+
+	KSR_moduledef.m_methods = _sr_crt_KSRMethods;
+	_sr_apy_ksr_module = PyModule_Create(&KSR_moduledef);
+
+	Py_INCREF(_sr_apy_ksr_module);
+
+	m = 0;
+
+	/* special sub-modules - x.modf() can have variable number of params */
+	_sr_apy_ksr_modules_list[m] = PyModule_Create(&KSR_x_moduledef);
+	PyModule_AddObject(_sr_apy_ksr_module, "x", _sr_apy_ksr_modules_list[m]);
+	Py_INCREF(_sr_apy_ksr_modules_list[m]);
+	m++;
+
+	if(emods_size>1) {
+		for(k=1; k<emods_size; k++) {
+			n++;
+			_sr_crt_KSRMethods = _sr_KSRMethods + n;
+			snprintf(mname, 128, "KSR.%s", emods[k].kexp[0].mname.s);
+			for(i=0; emods[k].kexp[i].func!=NULL; i++) {
+				LM_DBG("exporting %s.%s(...)\n", mname,
+						emods[k].kexp[i].fname.s);
+				_sr_crt_KSRMethods[i].ml_name = emods[k].kexp[i].fname.s;
+				_sr_crt_KSRMethods[i].ml_meth =
+					sr_apy_kemi_export_associate(&emods[k].kexp[i]);
+				if(_sr_crt_KSRMethods[i].ml_meth == NULL) {
+					LM_ERR("failed to associate kemi function with python export\n");
+					free(_sr_KSRMethods);
+					_sr_KSRMethods = NULL;
+					return NULL;
+				}
+				_sr_crt_KSRMethods[i].ml_flags = METH_VARARGS;
+				_sr_crt_KSRMethods[i].ml_doc = NAME " exported function";
+				n++;
+			}
+			LM_DBG("initializing kemi sub-module: %s (%s)\n", mname,
+					emods[k].kexp[0].mname.s);
+
+			PyModuleDef *mmodule  = malloc(sizeof(PyModuleDef));
+			memset(mmodule, 0, sizeof(PyModuleDef));
+			mmodule->m_name = strndup(mname, 127);
+			mmodule->m_methods = _sr_crt_KSRMethods;
+			mmodule->m_size = -1;
+
+			_sr_apy_ksr_modules_list[m] = PyModule_Create(mmodule);
+			PyModule_AddObject(_sr_apy_ksr_module, emods[k].kexp[0].mname.s, _sr_apy_ksr_modules_list[m]);
+			Py_INCREF(_sr_apy_ksr_modules_list[m]);
+			m++;
+		}
+	}
+	LM_DBG("module 'KSR' has been initialized\n");
+	return _sr_apy_ksr_module;
+}
+
+/**
+ *
+ */
+void sr_apy_destroy_ksr(void)
+{
+	if(_sr_apy_ksr_module!=NULL) {
+		Py_XDECREF(_sr_apy_ksr_module);
+		_sr_apy_ksr_module = NULL;
+	}
+	if(_sr_KSRMethods!=NULL) {
+		free(_sr_KSRMethods);
+		_sr_KSRMethods = NULL;
+	}
+
+	LM_DBG("module 'KSR' has been destroyed\n");
+}
+
+/**
+ *
+ */
+int apy_sr_init_mod(void)
+{
+	if(_sr_python_reload_version == NULL) {
+		_sr_python_reload_version = (int*)shm_malloc(sizeof(int));
+		if(_sr_python_reload_version == NULL) {
+			LM_ERR("failed to allocated reload version\n");
+			return -1;
+		}
+		*_sr_python_reload_version = 0;
+	}
+	_sr_python_reload_lock = lock_alloc();
+	lock_init(_sr_python_reload_lock);
+	return 0;
+}
+
+static const char* app_python3s_rpc_reload_doc[2] = {
+	"Reload python file",
+	0
+};
+
+
+static void app_python3s_rpc_reload(rpc_t* rpc, void* ctx)
+{
+	int v;
+	void *vh;
+
+	if(_sr_python_load_file.s == NULL && _sr_python_load_file.len<=0) {
+		LM_WARN("script file path not provided\n");
+		rpc->fault(ctx, 500, "No script file");
+		return;
+	}
+	if(_sr_python_reload_version == NULL) {
+		LM_WARN("reload not enabled\n");
+		rpc->fault(ctx, 500, "Reload not enabled");
+		return;
+	}
+
+	_sr_python_local_version = v = *_sr_python_reload_version;
+	*_sr_python_reload_version += 1;
+	LM_INFO("marking for reload Python script file: %.*s (%d => %d)\n",
+		_sr_python_load_file.len, _sr_python_load_file.s,
+		v,
+		*_sr_python_reload_version);
+
+	if (rpc->add(ctx, "{", &vh) < 0) {
+		rpc->fault(ctx, 500, "Server error");
+		return;
+	}
+	rpc->struct_add(vh, "dd",
+			"old", v,
+			"new", *_sr_python_reload_version);
+
+	return;
+}
+
+static const char* app_python3s_rpc_api_list_doc[2] = {
+	"List kemi exports to javascript",
+	0
+};
+
+static void app_python3s_rpc_api_list(rpc_t* rpc, void* ctx)
+{
+	int i;
+	int n;
+	sr_kemi_t *ket;
+	void* th;
+	void* sh;
+	void* ih;
+
+	if (rpc->add(ctx, "{", &th) < 0) {
+		rpc->fault(ctx, 500, "Internal error root reply");
+		return;
+	}
+	n = 0;
+	for(i=0; i<SR_APY_KSR_METHODS_SIZE ; i++) {
+		ket = sr_apy_kemi_export_get(i);
+		if(ket==NULL) continue;
+		n++;
+	}
+
+	if(rpc->struct_add(th, "d[",
+				"msize", n,
+				"methods",  &ih)<0)
+	{
+		rpc->fault(ctx, 500, "Internal error array structure");
+		return;
+	}
+	for(i=0; i<SR_APY_KSR_METHODS_SIZE; i++) {
+		ket = sr_apy_kemi_export_get(i);
+		if(ket==NULL) continue;
+		if(rpc->struct_add(ih, "{", "func", &sh)<0) {
+			rpc->fault(ctx, 500, "Internal error internal structure");
+			return;
+		}
+		if(rpc->struct_add(sh, "SSSS",
+				"ret", sr_kemi_param_map_get_name(ket->rtype),
+				"module", &ket->mname,
+				"name", &ket->fname,
+				"params", sr_kemi_param_map_get_params(ket->ptypes))<0) {
+			LM_ERR("failed to add the structure with attributes (%d)\n", i);
+			rpc->fault(ctx, 500, "Internal error creating dest struct");
+			return;
+		}
+	}
+}
+
+rpc_export_t app_python3s_rpc_cmds[] = {
+	{"app_python3s.reload", app_python3s_rpc_reload,
+		app_python3s_rpc_reload_doc, 0},
+	{"app_python3s.api_list", app_python3s_rpc_api_list,
+		app_python3s_rpc_api_list_doc, 0},
+	{0, 0, 0, 0}
+};
+
+/**
+ * register RPC commands
+ */
+int app_python3s_init_rpc(void)
+{
+	if (rpc_register_array(app_python3s_rpc_cmds)!=0)
+	{
+		LM_ERR("failed to register RPC commands\n");
+		return -1;
+	}
+	return 0;
+}

+ 48 - 0
src/modules/app_python3s/apy3s_kemi.h

@@ -0,0 +1,48 @@
+/**
+ * Copyright (C) 2016 Daniel-Constantin Mierla (asipto.com)
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifndef __APY_KEMI_H__
+#define __APY_KEMI_H__
+
+#include <Python.h>
+#include "../../core/parser/msg_parser.h"
+
+int sr_apy3s_init_ksr(void);
+void sr_apy_destroy_ksr(void);
+int sr_kemi_config_engine_python(sip_msg_t *msg, int rtype, str *rname,
+		str *rparam);
+
+int apy3s_exec_func(sip_msg_t *_msg, char *fname, char *fparam, int emode);
+
+PyObject *sr_apy_kemi_exec_func(PyObject *self, PyObject *args, int idx);
+
+int apy_sr_init_mod(void);
+int app_python3s_init_rpc(void);
+int apy_load_script(void);
+int apy_init_script(int rank);
+
+typedef struct sr_apy_env {
+	sip_msg_t *msg;
+} sr_apy_env_t;
+
+sr_apy_env_t *sr_apy_env_get();
+
+#endif

+ 9288 - 0
src/modules/app_python3s/apy3s_kemi_export.c

@@ -0,0 +1,9288 @@
+/**
+ * Copyright (C) 2016 Daniel-Constantin Mierla (asipto.com)
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+/**
+ * this file is generated - do not edit
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <Python.h>
+
+#include "../../core/dprint.h"
+
+#include "apy3s_kemi.h"
+#include "apy3s_kemi_export.h"
+
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_0(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 0);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_2(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 2);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_3(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 3);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_4(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 4);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_5(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 5);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_6(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 6);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_7(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 7);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_8(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 8);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_9(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 9);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_10(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 10);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_11(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 11);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_12(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 12);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_13(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 13);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_14(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 14);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_15(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 15);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_16(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 16);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_17(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 17);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_18(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 18);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_19(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 19);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_20(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 20);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_21(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 21);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_22(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 22);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_23(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 23);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_24(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 24);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_25(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 25);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_26(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 26);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_27(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 27);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_28(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 28);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_29(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 29);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_30(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 30);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_31(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 31);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_32(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 32);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_33(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 33);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_34(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 34);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_35(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 35);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_36(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 36);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_37(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 37);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_38(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 38);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_39(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 39);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_40(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 40);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_41(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 41);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_42(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 42);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_43(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 43);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_44(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 44);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_45(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 45);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_46(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 46);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_47(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 47);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_48(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 48);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_49(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 49);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_50(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 50);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_51(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 51);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_52(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 52);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_53(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 53);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_54(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 54);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_55(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 55);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_56(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 56);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_57(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 57);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_58(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 58);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_59(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 59);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_60(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 60);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_61(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 61);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_62(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 62);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_63(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 63);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_64(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 64);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_65(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 65);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_66(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 66);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_67(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 67);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_68(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 68);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_69(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 69);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_70(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 70);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_71(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 71);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_72(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 72);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_73(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 73);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_74(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 74);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_75(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 75);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_76(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 76);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_77(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 77);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_78(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 78);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_79(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 79);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_80(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 80);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_81(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 81);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_82(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 82);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_83(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 83);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_84(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 84);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_85(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 85);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_86(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 86);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_87(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 87);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_88(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 88);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_89(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 89);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_90(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 90);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_91(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 91);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_92(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 92);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_93(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 93);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_94(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 94);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_95(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 95);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_96(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 96);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_97(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 97);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_98(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 98);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_99(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 99);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_100(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 100);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_101(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 101);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_102(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 102);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_103(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 103);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_104(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 104);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_105(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 105);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_106(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 106);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_107(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 107);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_108(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 108);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_109(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 109);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_110(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 110);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_111(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 111);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_112(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 112);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_113(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 113);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_114(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 114);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_115(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 115);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_116(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 116);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_117(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 117);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_118(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 118);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_119(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 119);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_120(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 120);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_121(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 121);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_122(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 122);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_123(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 123);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_124(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 124);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_125(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 125);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_126(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 126);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_127(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 127);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_128(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 128);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_129(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 129);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_130(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 130);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_131(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 131);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_132(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 132);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_133(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 133);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_134(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 134);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_135(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 135);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_136(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 136);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_137(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 137);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_138(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 138);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_139(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 139);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_140(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 140);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_141(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 141);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_142(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 142);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_143(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 143);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_144(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 144);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_145(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 145);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_146(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 146);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_147(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 147);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_148(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 148);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_149(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 149);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_150(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 150);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_151(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 151);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_152(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 152);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_153(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 153);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_154(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 154);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_155(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 155);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_156(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 156);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_157(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 157);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_158(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 158);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_159(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 159);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_160(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 160);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_161(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 161);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_162(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 162);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_163(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 163);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_164(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 164);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_165(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 165);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_166(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 166);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_167(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 167);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_168(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 168);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_169(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 169);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_170(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 170);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_171(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 171);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_172(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 172);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_173(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 173);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_174(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 174);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_175(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 175);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_176(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 176);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_177(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 177);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_178(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 178);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_179(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 179);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_180(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 180);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_181(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 181);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_182(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 182);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_183(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 183);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_184(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 184);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_185(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 185);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_186(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 186);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_187(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 187);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_188(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 188);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_189(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 189);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_190(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 190);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_191(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 191);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_192(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 192);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_193(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 193);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_194(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 194);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_195(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 195);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_196(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 196);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_197(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 197);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_198(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 198);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_199(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 199);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_200(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 200);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_201(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 201);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_202(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 202);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_203(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 203);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_204(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 204);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_205(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 205);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_206(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 206);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_207(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 207);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_208(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 208);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_209(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 209);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_210(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 210);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_211(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 211);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_212(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 212);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_213(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 213);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_214(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 214);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_215(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 215);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_216(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 216);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_217(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 217);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_218(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 218);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_219(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 219);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_220(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 220);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_221(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 221);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_222(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 222);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_223(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 223);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_224(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 224);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_225(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 225);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_226(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 226);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_227(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 227);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_228(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 228);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_229(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 229);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_230(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 230);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_231(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 231);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_232(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 232);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_233(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 233);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_234(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 234);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_235(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 235);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_236(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 236);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_237(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 237);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_238(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 238);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_239(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 239);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_240(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 240);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_241(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 241);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_242(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 242);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_243(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 243);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_244(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 244);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_245(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 245);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_246(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 246);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_247(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 247);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_248(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 248);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_249(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 249);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_250(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 250);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_251(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 251);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_252(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 252);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_253(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 253);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_254(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 254);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_255(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 255);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_256(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 256);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_257(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 257);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_258(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 258);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_259(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 259);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_260(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 260);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_261(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 261);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_262(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 262);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_263(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 263);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_264(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 264);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_265(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 265);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_266(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 266);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_267(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 267);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_268(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 268);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_269(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 269);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_270(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 270);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_271(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 271);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_272(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 272);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_273(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 273);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_274(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 274);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_275(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 275);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_276(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 276);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_277(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 277);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_278(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 278);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_279(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 279);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_280(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 280);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_281(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 281);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_282(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 282);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_283(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 283);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_284(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 284);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_285(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 285);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_286(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 286);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_287(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 287);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_288(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 288);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_289(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 289);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_290(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 290);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_291(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 291);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_292(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 292);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_293(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 293);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_294(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 294);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_295(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 295);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_296(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 296);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_297(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 297);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_298(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 298);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_299(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 299);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_300(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 300);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_301(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 301);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_302(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 302);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_303(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 303);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_304(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 304);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_305(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 305);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_306(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 306);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_307(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 307);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_308(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 308);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_309(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 309);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_310(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 310);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_311(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 311);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_312(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 312);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_313(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 313);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_314(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 314);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_315(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 315);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_316(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 316);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_317(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 317);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_318(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 318);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_319(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 319);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_320(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 320);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_321(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 321);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_322(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 322);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_323(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 323);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_324(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 324);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_325(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 325);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_326(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 326);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_327(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 327);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_328(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 328);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_329(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 329);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_330(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 330);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_331(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 331);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_332(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 332);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_333(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 333);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_334(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 334);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_335(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 335);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_336(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 336);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_337(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 337);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_338(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 338);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_339(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 339);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_340(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 340);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_341(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 341);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_342(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 342);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_343(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 343);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_344(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 344);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_345(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 345);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_346(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 346);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_347(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 347);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_348(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 348);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_349(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 349);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_350(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 350);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_351(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 351);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_352(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 352);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_353(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 353);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_354(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 354);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_355(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 355);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_356(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 356);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_357(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 357);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_358(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 358);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_359(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 359);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_360(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 360);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_361(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 361);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_362(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 362);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_363(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 363);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_364(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 364);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_365(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 365);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_366(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 366);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_367(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 367);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_368(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 368);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_369(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 369);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_370(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 370);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_371(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 371);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_372(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 372);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_373(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 373);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_374(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 374);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_375(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 375);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_376(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 376);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_377(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 377);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_378(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 378);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_379(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 379);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_380(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 380);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_381(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 381);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_382(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 382);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_383(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 383);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_384(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 384);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_385(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 385);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_386(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 386);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_387(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 387);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_388(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 388);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_389(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 389);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_390(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 390);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_391(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 391);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_392(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 392);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_393(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 393);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_394(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 394);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_395(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 395);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_396(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 396);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_397(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 397);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_398(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 398);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_399(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 399);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_400(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 400);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_401(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 401);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_402(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 402);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_403(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 403);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_404(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 404);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_405(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 405);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_406(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 406);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_407(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 407);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_408(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 408);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_409(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 409);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_410(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 410);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_411(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 411);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_412(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 412);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_413(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 413);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_414(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 414);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_415(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 415);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_416(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 416);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_417(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 417);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_418(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 418);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_419(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 419);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_420(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 420);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_421(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 421);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_422(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 422);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_423(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 423);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_424(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 424);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_425(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 425);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_426(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 426);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_427(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 427);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_428(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 428);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_429(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 429);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_430(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 430);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_431(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 431);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_432(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 432);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_433(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 433);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_434(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 434);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_435(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 435);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_436(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 436);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_437(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 437);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_438(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 438);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_439(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 439);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_440(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 440);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_441(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 441);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_442(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 442);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_443(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 443);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_444(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 444);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_445(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 445);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_446(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 446);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_447(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 447);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_448(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 448);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_449(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 449);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_450(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 450);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_451(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 451);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_452(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 452);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_453(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 453);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_454(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 454);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_455(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 455);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_456(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 456);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_457(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 457);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_458(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 458);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_459(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 459);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_460(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 460);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_461(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 461);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_462(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 462);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_463(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 463);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_464(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 464);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_465(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 465);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_466(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 466);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_467(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 467);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_468(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 468);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_469(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 469);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_470(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 470);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_471(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 471);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_472(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 472);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_473(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 473);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_474(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 474);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_475(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 475);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_476(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 476);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_477(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 477);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_478(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 478);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_479(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 479);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_480(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 480);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_481(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 481);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_482(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 482);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_483(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 483);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_484(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 484);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_485(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 485);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_486(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 486);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_487(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 487);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_488(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 488);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_489(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 489);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_490(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 490);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_491(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 491);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_492(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 492);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_493(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 493);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_494(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 494);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_495(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 495);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_496(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 496);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_497(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 497);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_498(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 498);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_499(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 499);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_500(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 500);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_501(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 501);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_502(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 502);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_503(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 503);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_504(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 504);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_505(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 505);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_506(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 506);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_507(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 507);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_508(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 508);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_509(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 509);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_510(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 510);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_511(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 511);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_512(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 512);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_513(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 513);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_514(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 514);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_515(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 515);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_516(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 516);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_517(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 517);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_518(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 518);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_519(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 519);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_520(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 520);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_521(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 521);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_522(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 522);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_523(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 523);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_524(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 524);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_525(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 525);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_526(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 526);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_527(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 527);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_528(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 528);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_529(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 529);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_530(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 530);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_531(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 531);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_532(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 532);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_533(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 533);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_534(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 534);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_535(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 535);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_536(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 536);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_537(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 537);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_538(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 538);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_539(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 539);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_540(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 540);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_541(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 541);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_542(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 542);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_543(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 543);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_544(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 544);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_545(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 545);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_546(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 546);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_547(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 547);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_548(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 548);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_549(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 549);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_550(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 550);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_551(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 551);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_552(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 552);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_553(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 553);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_554(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 554);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_555(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 555);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_556(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 556);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_557(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 557);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_558(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 558);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_559(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 559);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_560(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 560);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_561(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 561);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_562(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 562);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_563(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 563);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_564(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 564);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_565(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 565);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_566(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 566);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_567(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 567);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_568(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 568);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_569(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 569);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_570(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 570);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_571(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 571);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_572(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 572);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_573(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 573);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_574(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 574);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_575(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 575);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_576(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 576);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_577(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 577);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_578(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 578);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_579(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 579);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_580(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 580);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_581(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 581);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_582(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 582);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_583(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 583);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_584(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 584);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_585(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 585);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_586(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 586);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_587(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 587);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_588(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 588);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_589(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 589);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_590(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 590);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_591(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 591);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_592(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 592);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_593(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 593);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_594(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 594);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_595(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 595);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_596(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 596);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_597(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 597);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_598(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 598);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_599(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 599);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_600(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 600);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_601(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 601);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_602(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 602);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_603(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 603);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_604(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 604);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_605(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 605);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_606(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 606);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_607(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 607);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_608(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 608);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_609(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 609);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_610(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 610);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_611(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 611);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_612(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 612);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_613(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 613);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_614(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 614);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_615(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 615);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_616(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 616);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_617(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 617);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_618(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 618);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_619(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 619);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_620(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 620);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_621(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 621);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_622(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 622);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_623(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 623);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_624(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 624);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_625(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 625);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_626(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 626);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_627(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 627);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_628(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 628);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_629(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 629);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_630(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 630);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_631(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 631);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_632(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 632);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_633(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 633);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_634(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 634);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_635(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 635);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_636(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 636);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_637(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 637);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_638(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 638);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_639(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 639);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_640(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 640);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_641(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 641);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_642(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 642);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_643(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 643);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_644(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 644);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_645(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 645);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_646(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 646);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_647(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 647);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_648(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 648);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_649(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 649);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_650(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 650);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_651(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 651);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_652(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 652);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_653(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 653);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_654(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 654);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_655(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 655);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_656(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 656);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_657(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 657);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_658(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 658);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_659(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 659);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_660(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 660);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_661(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 661);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_662(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 662);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_663(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 663);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_664(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 664);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_665(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 665);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_666(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 666);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_667(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 667);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_668(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 668);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_669(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 669);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_670(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 670);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_671(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 671);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_672(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 672);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_673(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 673);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_674(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 674);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_675(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 675);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_676(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 676);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_677(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 677);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_678(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 678);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_679(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 679);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_680(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 680);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_681(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 681);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_682(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 682);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_683(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 683);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_684(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 684);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_685(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 685);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_686(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 686);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_687(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 687);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_688(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 688);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_689(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 689);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_690(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 690);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_691(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 691);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_692(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 692);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_693(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 693);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_694(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 694);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_695(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 695);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_696(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 696);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_697(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 697);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_698(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 698);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_699(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 699);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_700(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 700);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_701(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 701);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_702(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 702);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_703(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 703);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_704(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 704);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_705(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 705);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_706(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 706);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_707(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 707);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_708(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 708);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_709(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 709);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_710(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 710);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_711(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 711);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_712(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 712);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_713(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 713);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_714(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 714);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_715(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 715);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_716(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 716);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_717(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 717);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_718(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 718);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_719(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 719);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_720(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 720);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_721(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 721);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_722(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 722);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_723(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 723);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_724(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 724);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_725(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 725);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_726(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 726);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_727(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 727);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_728(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 728);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_729(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 729);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_730(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 730);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_731(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 731);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_732(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 732);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_733(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 733);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_734(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 734);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_735(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 735);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_736(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 736);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_737(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 737);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_738(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 738);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_739(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 739);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_740(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 740);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_741(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 741);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_742(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 742);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_743(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 743);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_744(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 744);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_745(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 745);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_746(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 746);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_747(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 747);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_748(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 748);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_749(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 749);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_750(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 750);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_751(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 751);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_752(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 752);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_753(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 753);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_754(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 754);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_755(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 755);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_756(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 756);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_757(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 757);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_758(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 758);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_759(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 759);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_760(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 760);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_761(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 761);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_762(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 762);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_763(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 763);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_764(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 764);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_765(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 765);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_766(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 766);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_767(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 767);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_768(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 768);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_769(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 769);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_770(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 770);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_771(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 771);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_772(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 772);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_773(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 773);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_774(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 774);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_775(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 775);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_776(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 776);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_777(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 777);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_778(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 778);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_779(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 779);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_780(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 780);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_781(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 781);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_782(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 782);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_783(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 783);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_784(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 784);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_785(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 785);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_786(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 786);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_787(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 787);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_788(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 788);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_789(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 789);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_790(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 790);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_791(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 791);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_792(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 792);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_793(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 793);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_794(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 794);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_795(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 795);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_796(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 796);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_797(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 797);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_798(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 798);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_799(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 799);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_800(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 800);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_801(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 801);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_802(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 802);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_803(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 803);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_804(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 804);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_805(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 805);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_806(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 806);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_807(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 807);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_808(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 808);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_809(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 809);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_810(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 810);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_811(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 811);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_812(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 812);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_813(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 813);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_814(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 814);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_815(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 815);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_816(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 816);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_817(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 817);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_818(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 818);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_819(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 819);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_820(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 820);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_821(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 821);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_822(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 822);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_823(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 823);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_824(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 824);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_825(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 825);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_826(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 826);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_827(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 827);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_828(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 828);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_829(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 829);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_830(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 830);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_831(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 831);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_832(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 832);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_833(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 833);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_834(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 834);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_835(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 835);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_836(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 836);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_837(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 837);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_838(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 838);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_839(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 839);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_840(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 840);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_841(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 841);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_842(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 842);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_843(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 843);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_844(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 844);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_845(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 845);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_846(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 846);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_847(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 847);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_848(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 848);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_849(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 849);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_850(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 850);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_851(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 851);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_852(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 852);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_853(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 853);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_854(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 854);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_855(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 855);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_856(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 856);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_857(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 857);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_858(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 858);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_859(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 859);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_860(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 860);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_861(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 861);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_862(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 862);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_863(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 863);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_864(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 864);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_865(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 865);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_866(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 866);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_867(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 867);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_868(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 868);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_869(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 869);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_870(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 870);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_871(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 871);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_872(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 872);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_873(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 873);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_874(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 874);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_875(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 875);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_876(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 876);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_877(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 877);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_878(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 878);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_879(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 879);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_880(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 880);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_881(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 881);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_882(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 882);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_883(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 883);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_884(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 884);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_885(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 885);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_886(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 886);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_887(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 887);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_888(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 888);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_889(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 889);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_890(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 890);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_891(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 891);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_892(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 892);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_893(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 893);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_894(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 894);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_895(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 895);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_896(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 896);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_897(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 897);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_898(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 898);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_899(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 899);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_900(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 900);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_901(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 901);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_902(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 902);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_903(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 903);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_904(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 904);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_905(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 905);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_906(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 906);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_907(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 907);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_908(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 908);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_909(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 909);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_910(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 910);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_911(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 911);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_912(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 912);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_913(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 913);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_914(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 914);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_915(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 915);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_916(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 916);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_917(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 917);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_918(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 918);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_919(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 919);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_920(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 920);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_921(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 921);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_922(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 922);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_923(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 923);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_924(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 924);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_925(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 925);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_926(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 926);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_927(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 927);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_928(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 928);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_929(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 929);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_930(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 930);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_931(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 931);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_932(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 932);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_933(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 933);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_934(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 934);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_935(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 935);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_936(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 936);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_937(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 937);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_938(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 938);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_939(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 939);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_940(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 940);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_941(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 941);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_942(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 942);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_943(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 943);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_944(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 944);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_945(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 945);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_946(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 946);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_947(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 947);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_948(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 948);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_949(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 949);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_950(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 950);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_951(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 951);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_952(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 952);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_953(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 953);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_954(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 954);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_955(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 955);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_956(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 956);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_957(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 957);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_958(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 958);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_959(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 959);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_960(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 960);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_961(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 961);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_962(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 962);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_963(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 963);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_964(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 964);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_965(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 965);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_966(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 966);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_967(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 967);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_968(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 968);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_969(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 969);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_970(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 970);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_971(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 971);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_972(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 972);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_973(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 973);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_974(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 974);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_975(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 975);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_976(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 976);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_977(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 977);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_978(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 978);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_979(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 979);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_980(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 980);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_981(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 981);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_982(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 982);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_983(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 983);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_984(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 984);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_985(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 985);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_986(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 986);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_987(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 987);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_988(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 988);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_989(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 989);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_990(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 990);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_991(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 991);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_992(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 992);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_993(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 993);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_994(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 994);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_995(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 995);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_996(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 996);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_997(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 997);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_998(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 998);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_999(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 999);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1000(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1000);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1001(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1001);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1002(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1002);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1003(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1003);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1004(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1004);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1005(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1005);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1006(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1006);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1007(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1007);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1008(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1008);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1009(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1009);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1010(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1010);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1011(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1011);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1012(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1012);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1013(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1013);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1014(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1014);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1015(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1015);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1016(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1016);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1017(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1017);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1018(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1018);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1019(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1019);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1020(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1020);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1021(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1021);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1022(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1022);
+}
+
+/**
+ *
+ */
+static PyObject *sr_apy_kemi_exec_func_1023(PyObject *self, PyObject *args)
+{
+	return sr_apy_kemi_exec_func(self, args, 1023);
+}
+
+/**
+ *
+ */
+static sr_apy_kemi_export_t _sr_apy_kemi_export_list[] = {
+	{ sr_apy_kemi_exec_func_0, NULL},
+	{ sr_apy_kemi_exec_func_1, NULL},
+	{ sr_apy_kemi_exec_func_2, NULL},
+	{ sr_apy_kemi_exec_func_3, NULL},
+	{ sr_apy_kemi_exec_func_4, NULL},
+	{ sr_apy_kemi_exec_func_5, NULL},
+	{ sr_apy_kemi_exec_func_6, NULL},
+	{ sr_apy_kemi_exec_func_7, NULL},
+	{ sr_apy_kemi_exec_func_8, NULL},
+	{ sr_apy_kemi_exec_func_9, NULL},
+	{ sr_apy_kemi_exec_func_10, NULL},
+	{ sr_apy_kemi_exec_func_11, NULL},
+	{ sr_apy_kemi_exec_func_12, NULL},
+	{ sr_apy_kemi_exec_func_13, NULL},
+	{ sr_apy_kemi_exec_func_14, NULL},
+	{ sr_apy_kemi_exec_func_15, NULL},
+	{ sr_apy_kemi_exec_func_16, NULL},
+	{ sr_apy_kemi_exec_func_17, NULL},
+	{ sr_apy_kemi_exec_func_18, NULL},
+	{ sr_apy_kemi_exec_func_19, NULL},
+	{ sr_apy_kemi_exec_func_20, NULL},
+	{ sr_apy_kemi_exec_func_21, NULL},
+	{ sr_apy_kemi_exec_func_22, NULL},
+	{ sr_apy_kemi_exec_func_23, NULL},
+	{ sr_apy_kemi_exec_func_24, NULL},
+	{ sr_apy_kemi_exec_func_25, NULL},
+	{ sr_apy_kemi_exec_func_26, NULL},
+	{ sr_apy_kemi_exec_func_27, NULL},
+	{ sr_apy_kemi_exec_func_28, NULL},
+	{ sr_apy_kemi_exec_func_29, NULL},
+	{ sr_apy_kemi_exec_func_30, NULL},
+	{ sr_apy_kemi_exec_func_31, NULL},
+	{ sr_apy_kemi_exec_func_32, NULL},
+	{ sr_apy_kemi_exec_func_33, NULL},
+	{ sr_apy_kemi_exec_func_34, NULL},
+	{ sr_apy_kemi_exec_func_35, NULL},
+	{ sr_apy_kemi_exec_func_36, NULL},
+	{ sr_apy_kemi_exec_func_37, NULL},
+	{ sr_apy_kemi_exec_func_38, NULL},
+	{ sr_apy_kemi_exec_func_39, NULL},
+	{ sr_apy_kemi_exec_func_40, NULL},
+	{ sr_apy_kemi_exec_func_41, NULL},
+	{ sr_apy_kemi_exec_func_42, NULL},
+	{ sr_apy_kemi_exec_func_43, NULL},
+	{ sr_apy_kemi_exec_func_44, NULL},
+	{ sr_apy_kemi_exec_func_45, NULL},
+	{ sr_apy_kemi_exec_func_46, NULL},
+	{ sr_apy_kemi_exec_func_47, NULL},
+	{ sr_apy_kemi_exec_func_48, NULL},
+	{ sr_apy_kemi_exec_func_49, NULL},
+	{ sr_apy_kemi_exec_func_50, NULL},
+	{ sr_apy_kemi_exec_func_51, NULL},
+	{ sr_apy_kemi_exec_func_52, NULL},
+	{ sr_apy_kemi_exec_func_53, NULL},
+	{ sr_apy_kemi_exec_func_54, NULL},
+	{ sr_apy_kemi_exec_func_55, NULL},
+	{ sr_apy_kemi_exec_func_56, NULL},
+	{ sr_apy_kemi_exec_func_57, NULL},
+	{ sr_apy_kemi_exec_func_58, NULL},
+	{ sr_apy_kemi_exec_func_59, NULL},
+	{ sr_apy_kemi_exec_func_60, NULL},
+	{ sr_apy_kemi_exec_func_61, NULL},
+	{ sr_apy_kemi_exec_func_62, NULL},
+	{ sr_apy_kemi_exec_func_63, NULL},
+	{ sr_apy_kemi_exec_func_64, NULL},
+	{ sr_apy_kemi_exec_func_65, NULL},
+	{ sr_apy_kemi_exec_func_66, NULL},
+	{ sr_apy_kemi_exec_func_67, NULL},
+	{ sr_apy_kemi_exec_func_68, NULL},
+	{ sr_apy_kemi_exec_func_69, NULL},
+	{ sr_apy_kemi_exec_func_70, NULL},
+	{ sr_apy_kemi_exec_func_71, NULL},
+	{ sr_apy_kemi_exec_func_72, NULL},
+	{ sr_apy_kemi_exec_func_73, NULL},
+	{ sr_apy_kemi_exec_func_74, NULL},
+	{ sr_apy_kemi_exec_func_75, NULL},
+	{ sr_apy_kemi_exec_func_76, NULL},
+	{ sr_apy_kemi_exec_func_77, NULL},
+	{ sr_apy_kemi_exec_func_78, NULL},
+	{ sr_apy_kemi_exec_func_79, NULL},
+	{ sr_apy_kemi_exec_func_80, NULL},
+	{ sr_apy_kemi_exec_func_81, NULL},
+	{ sr_apy_kemi_exec_func_82, NULL},
+	{ sr_apy_kemi_exec_func_83, NULL},
+	{ sr_apy_kemi_exec_func_84, NULL},
+	{ sr_apy_kemi_exec_func_85, NULL},
+	{ sr_apy_kemi_exec_func_86, NULL},
+	{ sr_apy_kemi_exec_func_87, NULL},
+	{ sr_apy_kemi_exec_func_88, NULL},
+	{ sr_apy_kemi_exec_func_89, NULL},
+	{ sr_apy_kemi_exec_func_90, NULL},
+	{ sr_apy_kemi_exec_func_91, NULL},
+	{ sr_apy_kemi_exec_func_92, NULL},
+	{ sr_apy_kemi_exec_func_93, NULL},
+	{ sr_apy_kemi_exec_func_94, NULL},
+	{ sr_apy_kemi_exec_func_95, NULL},
+	{ sr_apy_kemi_exec_func_96, NULL},
+	{ sr_apy_kemi_exec_func_97, NULL},
+	{ sr_apy_kemi_exec_func_98, NULL},
+	{ sr_apy_kemi_exec_func_99, NULL},
+	{ sr_apy_kemi_exec_func_100, NULL},
+	{ sr_apy_kemi_exec_func_101, NULL},
+	{ sr_apy_kemi_exec_func_102, NULL},
+	{ sr_apy_kemi_exec_func_103, NULL},
+	{ sr_apy_kemi_exec_func_104, NULL},
+	{ sr_apy_kemi_exec_func_105, NULL},
+	{ sr_apy_kemi_exec_func_106, NULL},
+	{ sr_apy_kemi_exec_func_107, NULL},
+	{ sr_apy_kemi_exec_func_108, NULL},
+	{ sr_apy_kemi_exec_func_109, NULL},
+	{ sr_apy_kemi_exec_func_110, NULL},
+	{ sr_apy_kemi_exec_func_111, NULL},
+	{ sr_apy_kemi_exec_func_112, NULL},
+	{ sr_apy_kemi_exec_func_113, NULL},
+	{ sr_apy_kemi_exec_func_114, NULL},
+	{ sr_apy_kemi_exec_func_115, NULL},
+	{ sr_apy_kemi_exec_func_116, NULL},
+	{ sr_apy_kemi_exec_func_117, NULL},
+	{ sr_apy_kemi_exec_func_118, NULL},
+	{ sr_apy_kemi_exec_func_119, NULL},
+	{ sr_apy_kemi_exec_func_120, NULL},
+	{ sr_apy_kemi_exec_func_121, NULL},
+	{ sr_apy_kemi_exec_func_122, NULL},
+	{ sr_apy_kemi_exec_func_123, NULL},
+	{ sr_apy_kemi_exec_func_124, NULL},
+	{ sr_apy_kemi_exec_func_125, NULL},
+	{ sr_apy_kemi_exec_func_126, NULL},
+	{ sr_apy_kemi_exec_func_127, NULL},
+	{ sr_apy_kemi_exec_func_128, NULL},
+	{ sr_apy_kemi_exec_func_129, NULL},
+	{ sr_apy_kemi_exec_func_130, NULL},
+	{ sr_apy_kemi_exec_func_131, NULL},
+	{ sr_apy_kemi_exec_func_132, NULL},
+	{ sr_apy_kemi_exec_func_133, NULL},
+	{ sr_apy_kemi_exec_func_134, NULL},
+	{ sr_apy_kemi_exec_func_135, NULL},
+	{ sr_apy_kemi_exec_func_136, NULL},
+	{ sr_apy_kemi_exec_func_137, NULL},
+	{ sr_apy_kemi_exec_func_138, NULL},
+	{ sr_apy_kemi_exec_func_139, NULL},
+	{ sr_apy_kemi_exec_func_140, NULL},
+	{ sr_apy_kemi_exec_func_141, NULL},
+	{ sr_apy_kemi_exec_func_142, NULL},
+	{ sr_apy_kemi_exec_func_143, NULL},
+	{ sr_apy_kemi_exec_func_144, NULL},
+	{ sr_apy_kemi_exec_func_145, NULL},
+	{ sr_apy_kemi_exec_func_146, NULL},
+	{ sr_apy_kemi_exec_func_147, NULL},
+	{ sr_apy_kemi_exec_func_148, NULL},
+	{ sr_apy_kemi_exec_func_149, NULL},
+	{ sr_apy_kemi_exec_func_150, NULL},
+	{ sr_apy_kemi_exec_func_151, NULL},
+	{ sr_apy_kemi_exec_func_152, NULL},
+	{ sr_apy_kemi_exec_func_153, NULL},
+	{ sr_apy_kemi_exec_func_154, NULL},
+	{ sr_apy_kemi_exec_func_155, NULL},
+	{ sr_apy_kemi_exec_func_156, NULL},
+	{ sr_apy_kemi_exec_func_157, NULL},
+	{ sr_apy_kemi_exec_func_158, NULL},
+	{ sr_apy_kemi_exec_func_159, NULL},
+	{ sr_apy_kemi_exec_func_160, NULL},
+	{ sr_apy_kemi_exec_func_161, NULL},
+	{ sr_apy_kemi_exec_func_162, NULL},
+	{ sr_apy_kemi_exec_func_163, NULL},
+	{ sr_apy_kemi_exec_func_164, NULL},
+	{ sr_apy_kemi_exec_func_165, NULL},
+	{ sr_apy_kemi_exec_func_166, NULL},
+	{ sr_apy_kemi_exec_func_167, NULL},
+	{ sr_apy_kemi_exec_func_168, NULL},
+	{ sr_apy_kemi_exec_func_169, NULL},
+	{ sr_apy_kemi_exec_func_170, NULL},
+	{ sr_apy_kemi_exec_func_171, NULL},
+	{ sr_apy_kemi_exec_func_172, NULL},
+	{ sr_apy_kemi_exec_func_173, NULL},
+	{ sr_apy_kemi_exec_func_174, NULL},
+	{ sr_apy_kemi_exec_func_175, NULL},
+	{ sr_apy_kemi_exec_func_176, NULL},
+	{ sr_apy_kemi_exec_func_177, NULL},
+	{ sr_apy_kemi_exec_func_178, NULL},
+	{ sr_apy_kemi_exec_func_179, NULL},
+	{ sr_apy_kemi_exec_func_180, NULL},
+	{ sr_apy_kemi_exec_func_181, NULL},
+	{ sr_apy_kemi_exec_func_182, NULL},
+	{ sr_apy_kemi_exec_func_183, NULL},
+	{ sr_apy_kemi_exec_func_184, NULL},
+	{ sr_apy_kemi_exec_func_185, NULL},
+	{ sr_apy_kemi_exec_func_186, NULL},
+	{ sr_apy_kemi_exec_func_187, NULL},
+	{ sr_apy_kemi_exec_func_188, NULL},
+	{ sr_apy_kemi_exec_func_189, NULL},
+	{ sr_apy_kemi_exec_func_190, NULL},
+	{ sr_apy_kemi_exec_func_191, NULL},
+	{ sr_apy_kemi_exec_func_192, NULL},
+	{ sr_apy_kemi_exec_func_193, NULL},
+	{ sr_apy_kemi_exec_func_194, NULL},
+	{ sr_apy_kemi_exec_func_195, NULL},
+	{ sr_apy_kemi_exec_func_196, NULL},
+	{ sr_apy_kemi_exec_func_197, NULL},
+	{ sr_apy_kemi_exec_func_198, NULL},
+	{ sr_apy_kemi_exec_func_199, NULL},
+	{ sr_apy_kemi_exec_func_200, NULL},
+	{ sr_apy_kemi_exec_func_201, NULL},
+	{ sr_apy_kemi_exec_func_202, NULL},
+	{ sr_apy_kemi_exec_func_203, NULL},
+	{ sr_apy_kemi_exec_func_204, NULL},
+	{ sr_apy_kemi_exec_func_205, NULL},
+	{ sr_apy_kemi_exec_func_206, NULL},
+	{ sr_apy_kemi_exec_func_207, NULL},
+	{ sr_apy_kemi_exec_func_208, NULL},
+	{ sr_apy_kemi_exec_func_209, NULL},
+	{ sr_apy_kemi_exec_func_210, NULL},
+	{ sr_apy_kemi_exec_func_211, NULL},
+	{ sr_apy_kemi_exec_func_212, NULL},
+	{ sr_apy_kemi_exec_func_213, NULL},
+	{ sr_apy_kemi_exec_func_214, NULL},
+	{ sr_apy_kemi_exec_func_215, NULL},
+	{ sr_apy_kemi_exec_func_216, NULL},
+	{ sr_apy_kemi_exec_func_217, NULL},
+	{ sr_apy_kemi_exec_func_218, NULL},
+	{ sr_apy_kemi_exec_func_219, NULL},
+	{ sr_apy_kemi_exec_func_220, NULL},
+	{ sr_apy_kemi_exec_func_221, NULL},
+	{ sr_apy_kemi_exec_func_222, NULL},
+	{ sr_apy_kemi_exec_func_223, NULL},
+	{ sr_apy_kemi_exec_func_224, NULL},
+	{ sr_apy_kemi_exec_func_225, NULL},
+	{ sr_apy_kemi_exec_func_226, NULL},
+	{ sr_apy_kemi_exec_func_227, NULL},
+	{ sr_apy_kemi_exec_func_228, NULL},
+	{ sr_apy_kemi_exec_func_229, NULL},
+	{ sr_apy_kemi_exec_func_230, NULL},
+	{ sr_apy_kemi_exec_func_231, NULL},
+	{ sr_apy_kemi_exec_func_232, NULL},
+	{ sr_apy_kemi_exec_func_233, NULL},
+	{ sr_apy_kemi_exec_func_234, NULL},
+	{ sr_apy_kemi_exec_func_235, NULL},
+	{ sr_apy_kemi_exec_func_236, NULL},
+	{ sr_apy_kemi_exec_func_237, NULL},
+	{ sr_apy_kemi_exec_func_238, NULL},
+	{ sr_apy_kemi_exec_func_239, NULL},
+	{ sr_apy_kemi_exec_func_240, NULL},
+	{ sr_apy_kemi_exec_func_241, NULL},
+	{ sr_apy_kemi_exec_func_242, NULL},
+	{ sr_apy_kemi_exec_func_243, NULL},
+	{ sr_apy_kemi_exec_func_244, NULL},
+	{ sr_apy_kemi_exec_func_245, NULL},
+	{ sr_apy_kemi_exec_func_246, NULL},
+	{ sr_apy_kemi_exec_func_247, NULL},
+	{ sr_apy_kemi_exec_func_248, NULL},
+	{ sr_apy_kemi_exec_func_249, NULL},
+	{ sr_apy_kemi_exec_func_250, NULL},
+	{ sr_apy_kemi_exec_func_251, NULL},
+	{ sr_apy_kemi_exec_func_252, NULL},
+	{ sr_apy_kemi_exec_func_253, NULL},
+	{ sr_apy_kemi_exec_func_254, NULL},
+	{ sr_apy_kemi_exec_func_255, NULL},
+	{ sr_apy_kemi_exec_func_256, NULL},
+	{ sr_apy_kemi_exec_func_257, NULL},
+	{ sr_apy_kemi_exec_func_258, NULL},
+	{ sr_apy_kemi_exec_func_259, NULL},
+	{ sr_apy_kemi_exec_func_260, NULL},
+	{ sr_apy_kemi_exec_func_261, NULL},
+	{ sr_apy_kemi_exec_func_262, NULL},
+	{ sr_apy_kemi_exec_func_263, NULL},
+	{ sr_apy_kemi_exec_func_264, NULL},
+	{ sr_apy_kemi_exec_func_265, NULL},
+	{ sr_apy_kemi_exec_func_266, NULL},
+	{ sr_apy_kemi_exec_func_267, NULL},
+	{ sr_apy_kemi_exec_func_268, NULL},
+	{ sr_apy_kemi_exec_func_269, NULL},
+	{ sr_apy_kemi_exec_func_270, NULL},
+	{ sr_apy_kemi_exec_func_271, NULL},
+	{ sr_apy_kemi_exec_func_272, NULL},
+	{ sr_apy_kemi_exec_func_273, NULL},
+	{ sr_apy_kemi_exec_func_274, NULL},
+	{ sr_apy_kemi_exec_func_275, NULL},
+	{ sr_apy_kemi_exec_func_276, NULL},
+	{ sr_apy_kemi_exec_func_277, NULL},
+	{ sr_apy_kemi_exec_func_278, NULL},
+	{ sr_apy_kemi_exec_func_279, NULL},
+	{ sr_apy_kemi_exec_func_280, NULL},
+	{ sr_apy_kemi_exec_func_281, NULL},
+	{ sr_apy_kemi_exec_func_282, NULL},
+	{ sr_apy_kemi_exec_func_283, NULL},
+	{ sr_apy_kemi_exec_func_284, NULL},
+	{ sr_apy_kemi_exec_func_285, NULL},
+	{ sr_apy_kemi_exec_func_286, NULL},
+	{ sr_apy_kemi_exec_func_287, NULL},
+	{ sr_apy_kemi_exec_func_288, NULL},
+	{ sr_apy_kemi_exec_func_289, NULL},
+	{ sr_apy_kemi_exec_func_290, NULL},
+	{ sr_apy_kemi_exec_func_291, NULL},
+	{ sr_apy_kemi_exec_func_292, NULL},
+	{ sr_apy_kemi_exec_func_293, NULL},
+	{ sr_apy_kemi_exec_func_294, NULL},
+	{ sr_apy_kemi_exec_func_295, NULL},
+	{ sr_apy_kemi_exec_func_296, NULL},
+	{ sr_apy_kemi_exec_func_297, NULL},
+	{ sr_apy_kemi_exec_func_298, NULL},
+	{ sr_apy_kemi_exec_func_299, NULL},
+	{ sr_apy_kemi_exec_func_300, NULL},
+	{ sr_apy_kemi_exec_func_301, NULL},
+	{ sr_apy_kemi_exec_func_302, NULL},
+	{ sr_apy_kemi_exec_func_303, NULL},
+	{ sr_apy_kemi_exec_func_304, NULL},
+	{ sr_apy_kemi_exec_func_305, NULL},
+	{ sr_apy_kemi_exec_func_306, NULL},
+	{ sr_apy_kemi_exec_func_307, NULL},
+	{ sr_apy_kemi_exec_func_308, NULL},
+	{ sr_apy_kemi_exec_func_309, NULL},
+	{ sr_apy_kemi_exec_func_310, NULL},
+	{ sr_apy_kemi_exec_func_311, NULL},
+	{ sr_apy_kemi_exec_func_312, NULL},
+	{ sr_apy_kemi_exec_func_313, NULL},
+	{ sr_apy_kemi_exec_func_314, NULL},
+	{ sr_apy_kemi_exec_func_315, NULL},
+	{ sr_apy_kemi_exec_func_316, NULL},
+	{ sr_apy_kemi_exec_func_317, NULL},
+	{ sr_apy_kemi_exec_func_318, NULL},
+	{ sr_apy_kemi_exec_func_319, NULL},
+	{ sr_apy_kemi_exec_func_320, NULL},
+	{ sr_apy_kemi_exec_func_321, NULL},
+	{ sr_apy_kemi_exec_func_322, NULL},
+	{ sr_apy_kemi_exec_func_323, NULL},
+	{ sr_apy_kemi_exec_func_324, NULL},
+	{ sr_apy_kemi_exec_func_325, NULL},
+	{ sr_apy_kemi_exec_func_326, NULL},
+	{ sr_apy_kemi_exec_func_327, NULL},
+	{ sr_apy_kemi_exec_func_328, NULL},
+	{ sr_apy_kemi_exec_func_329, NULL},
+	{ sr_apy_kemi_exec_func_330, NULL},
+	{ sr_apy_kemi_exec_func_331, NULL},
+	{ sr_apy_kemi_exec_func_332, NULL},
+	{ sr_apy_kemi_exec_func_333, NULL},
+	{ sr_apy_kemi_exec_func_334, NULL},
+	{ sr_apy_kemi_exec_func_335, NULL},
+	{ sr_apy_kemi_exec_func_336, NULL},
+	{ sr_apy_kemi_exec_func_337, NULL},
+	{ sr_apy_kemi_exec_func_338, NULL},
+	{ sr_apy_kemi_exec_func_339, NULL},
+	{ sr_apy_kemi_exec_func_340, NULL},
+	{ sr_apy_kemi_exec_func_341, NULL},
+	{ sr_apy_kemi_exec_func_342, NULL},
+	{ sr_apy_kemi_exec_func_343, NULL},
+	{ sr_apy_kemi_exec_func_344, NULL},
+	{ sr_apy_kemi_exec_func_345, NULL},
+	{ sr_apy_kemi_exec_func_346, NULL},
+	{ sr_apy_kemi_exec_func_347, NULL},
+	{ sr_apy_kemi_exec_func_348, NULL},
+	{ sr_apy_kemi_exec_func_349, NULL},
+	{ sr_apy_kemi_exec_func_350, NULL},
+	{ sr_apy_kemi_exec_func_351, NULL},
+	{ sr_apy_kemi_exec_func_352, NULL},
+	{ sr_apy_kemi_exec_func_353, NULL},
+	{ sr_apy_kemi_exec_func_354, NULL},
+	{ sr_apy_kemi_exec_func_355, NULL},
+	{ sr_apy_kemi_exec_func_356, NULL},
+	{ sr_apy_kemi_exec_func_357, NULL},
+	{ sr_apy_kemi_exec_func_358, NULL},
+	{ sr_apy_kemi_exec_func_359, NULL},
+	{ sr_apy_kemi_exec_func_360, NULL},
+	{ sr_apy_kemi_exec_func_361, NULL},
+	{ sr_apy_kemi_exec_func_362, NULL},
+	{ sr_apy_kemi_exec_func_363, NULL},
+	{ sr_apy_kemi_exec_func_364, NULL},
+	{ sr_apy_kemi_exec_func_365, NULL},
+	{ sr_apy_kemi_exec_func_366, NULL},
+	{ sr_apy_kemi_exec_func_367, NULL},
+	{ sr_apy_kemi_exec_func_368, NULL},
+	{ sr_apy_kemi_exec_func_369, NULL},
+	{ sr_apy_kemi_exec_func_370, NULL},
+	{ sr_apy_kemi_exec_func_371, NULL},
+	{ sr_apy_kemi_exec_func_372, NULL},
+	{ sr_apy_kemi_exec_func_373, NULL},
+	{ sr_apy_kemi_exec_func_374, NULL},
+	{ sr_apy_kemi_exec_func_375, NULL},
+	{ sr_apy_kemi_exec_func_376, NULL},
+	{ sr_apy_kemi_exec_func_377, NULL},
+	{ sr_apy_kemi_exec_func_378, NULL},
+	{ sr_apy_kemi_exec_func_379, NULL},
+	{ sr_apy_kemi_exec_func_380, NULL},
+	{ sr_apy_kemi_exec_func_381, NULL},
+	{ sr_apy_kemi_exec_func_382, NULL},
+	{ sr_apy_kemi_exec_func_383, NULL},
+	{ sr_apy_kemi_exec_func_384, NULL},
+	{ sr_apy_kemi_exec_func_385, NULL},
+	{ sr_apy_kemi_exec_func_386, NULL},
+	{ sr_apy_kemi_exec_func_387, NULL},
+	{ sr_apy_kemi_exec_func_388, NULL},
+	{ sr_apy_kemi_exec_func_389, NULL},
+	{ sr_apy_kemi_exec_func_390, NULL},
+	{ sr_apy_kemi_exec_func_391, NULL},
+	{ sr_apy_kemi_exec_func_392, NULL},
+	{ sr_apy_kemi_exec_func_393, NULL},
+	{ sr_apy_kemi_exec_func_394, NULL},
+	{ sr_apy_kemi_exec_func_395, NULL},
+	{ sr_apy_kemi_exec_func_396, NULL},
+	{ sr_apy_kemi_exec_func_397, NULL},
+	{ sr_apy_kemi_exec_func_398, NULL},
+	{ sr_apy_kemi_exec_func_399, NULL},
+	{ sr_apy_kemi_exec_func_400, NULL},
+	{ sr_apy_kemi_exec_func_401, NULL},
+	{ sr_apy_kemi_exec_func_402, NULL},
+	{ sr_apy_kemi_exec_func_403, NULL},
+	{ sr_apy_kemi_exec_func_404, NULL},
+	{ sr_apy_kemi_exec_func_405, NULL},
+	{ sr_apy_kemi_exec_func_406, NULL},
+	{ sr_apy_kemi_exec_func_407, NULL},
+	{ sr_apy_kemi_exec_func_408, NULL},
+	{ sr_apy_kemi_exec_func_409, NULL},
+	{ sr_apy_kemi_exec_func_410, NULL},
+	{ sr_apy_kemi_exec_func_411, NULL},
+	{ sr_apy_kemi_exec_func_412, NULL},
+	{ sr_apy_kemi_exec_func_413, NULL},
+	{ sr_apy_kemi_exec_func_414, NULL},
+	{ sr_apy_kemi_exec_func_415, NULL},
+	{ sr_apy_kemi_exec_func_416, NULL},
+	{ sr_apy_kemi_exec_func_417, NULL},
+	{ sr_apy_kemi_exec_func_418, NULL},
+	{ sr_apy_kemi_exec_func_419, NULL},
+	{ sr_apy_kemi_exec_func_420, NULL},
+	{ sr_apy_kemi_exec_func_421, NULL},
+	{ sr_apy_kemi_exec_func_422, NULL},
+	{ sr_apy_kemi_exec_func_423, NULL},
+	{ sr_apy_kemi_exec_func_424, NULL},
+	{ sr_apy_kemi_exec_func_425, NULL},
+	{ sr_apy_kemi_exec_func_426, NULL},
+	{ sr_apy_kemi_exec_func_427, NULL},
+	{ sr_apy_kemi_exec_func_428, NULL},
+	{ sr_apy_kemi_exec_func_429, NULL},
+	{ sr_apy_kemi_exec_func_430, NULL},
+	{ sr_apy_kemi_exec_func_431, NULL},
+	{ sr_apy_kemi_exec_func_432, NULL},
+	{ sr_apy_kemi_exec_func_433, NULL},
+	{ sr_apy_kemi_exec_func_434, NULL},
+	{ sr_apy_kemi_exec_func_435, NULL},
+	{ sr_apy_kemi_exec_func_436, NULL},
+	{ sr_apy_kemi_exec_func_437, NULL},
+	{ sr_apy_kemi_exec_func_438, NULL},
+	{ sr_apy_kemi_exec_func_439, NULL},
+	{ sr_apy_kemi_exec_func_440, NULL},
+	{ sr_apy_kemi_exec_func_441, NULL},
+	{ sr_apy_kemi_exec_func_442, NULL},
+	{ sr_apy_kemi_exec_func_443, NULL},
+	{ sr_apy_kemi_exec_func_444, NULL},
+	{ sr_apy_kemi_exec_func_445, NULL},
+	{ sr_apy_kemi_exec_func_446, NULL},
+	{ sr_apy_kemi_exec_func_447, NULL},
+	{ sr_apy_kemi_exec_func_448, NULL},
+	{ sr_apy_kemi_exec_func_449, NULL},
+	{ sr_apy_kemi_exec_func_450, NULL},
+	{ sr_apy_kemi_exec_func_451, NULL},
+	{ sr_apy_kemi_exec_func_452, NULL},
+	{ sr_apy_kemi_exec_func_453, NULL},
+	{ sr_apy_kemi_exec_func_454, NULL},
+	{ sr_apy_kemi_exec_func_455, NULL},
+	{ sr_apy_kemi_exec_func_456, NULL},
+	{ sr_apy_kemi_exec_func_457, NULL},
+	{ sr_apy_kemi_exec_func_458, NULL},
+	{ sr_apy_kemi_exec_func_459, NULL},
+	{ sr_apy_kemi_exec_func_460, NULL},
+	{ sr_apy_kemi_exec_func_461, NULL},
+	{ sr_apy_kemi_exec_func_462, NULL},
+	{ sr_apy_kemi_exec_func_463, NULL},
+	{ sr_apy_kemi_exec_func_464, NULL},
+	{ sr_apy_kemi_exec_func_465, NULL},
+	{ sr_apy_kemi_exec_func_466, NULL},
+	{ sr_apy_kemi_exec_func_467, NULL},
+	{ sr_apy_kemi_exec_func_468, NULL},
+	{ sr_apy_kemi_exec_func_469, NULL},
+	{ sr_apy_kemi_exec_func_470, NULL},
+	{ sr_apy_kemi_exec_func_471, NULL},
+	{ sr_apy_kemi_exec_func_472, NULL},
+	{ sr_apy_kemi_exec_func_473, NULL},
+	{ sr_apy_kemi_exec_func_474, NULL},
+	{ sr_apy_kemi_exec_func_475, NULL},
+	{ sr_apy_kemi_exec_func_476, NULL},
+	{ sr_apy_kemi_exec_func_477, NULL},
+	{ sr_apy_kemi_exec_func_478, NULL},
+	{ sr_apy_kemi_exec_func_479, NULL},
+	{ sr_apy_kemi_exec_func_480, NULL},
+	{ sr_apy_kemi_exec_func_481, NULL},
+	{ sr_apy_kemi_exec_func_482, NULL},
+	{ sr_apy_kemi_exec_func_483, NULL},
+	{ sr_apy_kemi_exec_func_484, NULL},
+	{ sr_apy_kemi_exec_func_485, NULL},
+	{ sr_apy_kemi_exec_func_486, NULL},
+	{ sr_apy_kemi_exec_func_487, NULL},
+	{ sr_apy_kemi_exec_func_488, NULL},
+	{ sr_apy_kemi_exec_func_489, NULL},
+	{ sr_apy_kemi_exec_func_490, NULL},
+	{ sr_apy_kemi_exec_func_491, NULL},
+	{ sr_apy_kemi_exec_func_492, NULL},
+	{ sr_apy_kemi_exec_func_493, NULL},
+	{ sr_apy_kemi_exec_func_494, NULL},
+	{ sr_apy_kemi_exec_func_495, NULL},
+	{ sr_apy_kemi_exec_func_496, NULL},
+	{ sr_apy_kemi_exec_func_497, NULL},
+	{ sr_apy_kemi_exec_func_498, NULL},
+	{ sr_apy_kemi_exec_func_499, NULL},
+	{ sr_apy_kemi_exec_func_500, NULL},
+	{ sr_apy_kemi_exec_func_501, NULL},
+	{ sr_apy_kemi_exec_func_502, NULL},
+	{ sr_apy_kemi_exec_func_503, NULL},
+	{ sr_apy_kemi_exec_func_504, NULL},
+	{ sr_apy_kemi_exec_func_505, NULL},
+	{ sr_apy_kemi_exec_func_506, NULL},
+	{ sr_apy_kemi_exec_func_507, NULL},
+	{ sr_apy_kemi_exec_func_508, NULL},
+	{ sr_apy_kemi_exec_func_509, NULL},
+	{ sr_apy_kemi_exec_func_510, NULL},
+	{ sr_apy_kemi_exec_func_511, NULL},
+	{ sr_apy_kemi_exec_func_512, NULL},
+	{ sr_apy_kemi_exec_func_513, NULL},
+	{ sr_apy_kemi_exec_func_514, NULL},
+	{ sr_apy_kemi_exec_func_515, NULL},
+	{ sr_apy_kemi_exec_func_516, NULL},
+	{ sr_apy_kemi_exec_func_517, NULL},
+	{ sr_apy_kemi_exec_func_518, NULL},
+	{ sr_apy_kemi_exec_func_519, NULL},
+	{ sr_apy_kemi_exec_func_520, NULL},
+	{ sr_apy_kemi_exec_func_521, NULL},
+	{ sr_apy_kemi_exec_func_522, NULL},
+	{ sr_apy_kemi_exec_func_523, NULL},
+	{ sr_apy_kemi_exec_func_524, NULL},
+	{ sr_apy_kemi_exec_func_525, NULL},
+	{ sr_apy_kemi_exec_func_526, NULL},
+	{ sr_apy_kemi_exec_func_527, NULL},
+	{ sr_apy_kemi_exec_func_528, NULL},
+	{ sr_apy_kemi_exec_func_529, NULL},
+	{ sr_apy_kemi_exec_func_530, NULL},
+	{ sr_apy_kemi_exec_func_531, NULL},
+	{ sr_apy_kemi_exec_func_532, NULL},
+	{ sr_apy_kemi_exec_func_533, NULL},
+	{ sr_apy_kemi_exec_func_534, NULL},
+	{ sr_apy_kemi_exec_func_535, NULL},
+	{ sr_apy_kemi_exec_func_536, NULL},
+	{ sr_apy_kemi_exec_func_537, NULL},
+	{ sr_apy_kemi_exec_func_538, NULL},
+	{ sr_apy_kemi_exec_func_539, NULL},
+	{ sr_apy_kemi_exec_func_540, NULL},
+	{ sr_apy_kemi_exec_func_541, NULL},
+	{ sr_apy_kemi_exec_func_542, NULL},
+	{ sr_apy_kemi_exec_func_543, NULL},
+	{ sr_apy_kemi_exec_func_544, NULL},
+	{ sr_apy_kemi_exec_func_545, NULL},
+	{ sr_apy_kemi_exec_func_546, NULL},
+	{ sr_apy_kemi_exec_func_547, NULL},
+	{ sr_apy_kemi_exec_func_548, NULL},
+	{ sr_apy_kemi_exec_func_549, NULL},
+	{ sr_apy_kemi_exec_func_550, NULL},
+	{ sr_apy_kemi_exec_func_551, NULL},
+	{ sr_apy_kemi_exec_func_552, NULL},
+	{ sr_apy_kemi_exec_func_553, NULL},
+	{ sr_apy_kemi_exec_func_554, NULL},
+	{ sr_apy_kemi_exec_func_555, NULL},
+	{ sr_apy_kemi_exec_func_556, NULL},
+	{ sr_apy_kemi_exec_func_557, NULL},
+	{ sr_apy_kemi_exec_func_558, NULL},
+	{ sr_apy_kemi_exec_func_559, NULL},
+	{ sr_apy_kemi_exec_func_560, NULL},
+	{ sr_apy_kemi_exec_func_561, NULL},
+	{ sr_apy_kemi_exec_func_562, NULL},
+	{ sr_apy_kemi_exec_func_563, NULL},
+	{ sr_apy_kemi_exec_func_564, NULL},
+	{ sr_apy_kemi_exec_func_565, NULL},
+	{ sr_apy_kemi_exec_func_566, NULL},
+	{ sr_apy_kemi_exec_func_567, NULL},
+	{ sr_apy_kemi_exec_func_568, NULL},
+	{ sr_apy_kemi_exec_func_569, NULL},
+	{ sr_apy_kemi_exec_func_570, NULL},
+	{ sr_apy_kemi_exec_func_571, NULL},
+	{ sr_apy_kemi_exec_func_572, NULL},
+	{ sr_apy_kemi_exec_func_573, NULL},
+	{ sr_apy_kemi_exec_func_574, NULL},
+	{ sr_apy_kemi_exec_func_575, NULL},
+	{ sr_apy_kemi_exec_func_576, NULL},
+	{ sr_apy_kemi_exec_func_577, NULL},
+	{ sr_apy_kemi_exec_func_578, NULL},
+	{ sr_apy_kemi_exec_func_579, NULL},
+	{ sr_apy_kemi_exec_func_580, NULL},
+	{ sr_apy_kemi_exec_func_581, NULL},
+	{ sr_apy_kemi_exec_func_582, NULL},
+	{ sr_apy_kemi_exec_func_583, NULL},
+	{ sr_apy_kemi_exec_func_584, NULL},
+	{ sr_apy_kemi_exec_func_585, NULL},
+	{ sr_apy_kemi_exec_func_586, NULL},
+	{ sr_apy_kemi_exec_func_587, NULL},
+	{ sr_apy_kemi_exec_func_588, NULL},
+	{ sr_apy_kemi_exec_func_589, NULL},
+	{ sr_apy_kemi_exec_func_590, NULL},
+	{ sr_apy_kemi_exec_func_591, NULL},
+	{ sr_apy_kemi_exec_func_592, NULL},
+	{ sr_apy_kemi_exec_func_593, NULL},
+	{ sr_apy_kemi_exec_func_594, NULL},
+	{ sr_apy_kemi_exec_func_595, NULL},
+	{ sr_apy_kemi_exec_func_596, NULL},
+	{ sr_apy_kemi_exec_func_597, NULL},
+	{ sr_apy_kemi_exec_func_598, NULL},
+	{ sr_apy_kemi_exec_func_599, NULL},
+	{ sr_apy_kemi_exec_func_600, NULL},
+	{ sr_apy_kemi_exec_func_601, NULL},
+	{ sr_apy_kemi_exec_func_602, NULL},
+	{ sr_apy_kemi_exec_func_603, NULL},
+	{ sr_apy_kemi_exec_func_604, NULL},
+	{ sr_apy_kemi_exec_func_605, NULL},
+	{ sr_apy_kemi_exec_func_606, NULL},
+	{ sr_apy_kemi_exec_func_607, NULL},
+	{ sr_apy_kemi_exec_func_608, NULL},
+	{ sr_apy_kemi_exec_func_609, NULL},
+	{ sr_apy_kemi_exec_func_610, NULL},
+	{ sr_apy_kemi_exec_func_611, NULL},
+	{ sr_apy_kemi_exec_func_612, NULL},
+	{ sr_apy_kemi_exec_func_613, NULL},
+	{ sr_apy_kemi_exec_func_614, NULL},
+	{ sr_apy_kemi_exec_func_615, NULL},
+	{ sr_apy_kemi_exec_func_616, NULL},
+	{ sr_apy_kemi_exec_func_617, NULL},
+	{ sr_apy_kemi_exec_func_618, NULL},
+	{ sr_apy_kemi_exec_func_619, NULL},
+	{ sr_apy_kemi_exec_func_620, NULL},
+	{ sr_apy_kemi_exec_func_621, NULL},
+	{ sr_apy_kemi_exec_func_622, NULL},
+	{ sr_apy_kemi_exec_func_623, NULL},
+	{ sr_apy_kemi_exec_func_624, NULL},
+	{ sr_apy_kemi_exec_func_625, NULL},
+	{ sr_apy_kemi_exec_func_626, NULL},
+	{ sr_apy_kemi_exec_func_627, NULL},
+	{ sr_apy_kemi_exec_func_628, NULL},
+	{ sr_apy_kemi_exec_func_629, NULL},
+	{ sr_apy_kemi_exec_func_630, NULL},
+	{ sr_apy_kemi_exec_func_631, NULL},
+	{ sr_apy_kemi_exec_func_632, NULL},
+	{ sr_apy_kemi_exec_func_633, NULL},
+	{ sr_apy_kemi_exec_func_634, NULL},
+	{ sr_apy_kemi_exec_func_635, NULL},
+	{ sr_apy_kemi_exec_func_636, NULL},
+	{ sr_apy_kemi_exec_func_637, NULL},
+	{ sr_apy_kemi_exec_func_638, NULL},
+	{ sr_apy_kemi_exec_func_639, NULL},
+	{ sr_apy_kemi_exec_func_640, NULL},
+	{ sr_apy_kemi_exec_func_641, NULL},
+	{ sr_apy_kemi_exec_func_642, NULL},
+	{ sr_apy_kemi_exec_func_643, NULL},
+	{ sr_apy_kemi_exec_func_644, NULL},
+	{ sr_apy_kemi_exec_func_645, NULL},
+	{ sr_apy_kemi_exec_func_646, NULL},
+	{ sr_apy_kemi_exec_func_647, NULL},
+	{ sr_apy_kemi_exec_func_648, NULL},
+	{ sr_apy_kemi_exec_func_649, NULL},
+	{ sr_apy_kemi_exec_func_650, NULL},
+	{ sr_apy_kemi_exec_func_651, NULL},
+	{ sr_apy_kemi_exec_func_652, NULL},
+	{ sr_apy_kemi_exec_func_653, NULL},
+	{ sr_apy_kemi_exec_func_654, NULL},
+	{ sr_apy_kemi_exec_func_655, NULL},
+	{ sr_apy_kemi_exec_func_656, NULL},
+	{ sr_apy_kemi_exec_func_657, NULL},
+	{ sr_apy_kemi_exec_func_658, NULL},
+	{ sr_apy_kemi_exec_func_659, NULL},
+	{ sr_apy_kemi_exec_func_660, NULL},
+	{ sr_apy_kemi_exec_func_661, NULL},
+	{ sr_apy_kemi_exec_func_662, NULL},
+	{ sr_apy_kemi_exec_func_663, NULL},
+	{ sr_apy_kemi_exec_func_664, NULL},
+	{ sr_apy_kemi_exec_func_665, NULL},
+	{ sr_apy_kemi_exec_func_666, NULL},
+	{ sr_apy_kemi_exec_func_667, NULL},
+	{ sr_apy_kemi_exec_func_668, NULL},
+	{ sr_apy_kemi_exec_func_669, NULL},
+	{ sr_apy_kemi_exec_func_670, NULL},
+	{ sr_apy_kemi_exec_func_671, NULL},
+	{ sr_apy_kemi_exec_func_672, NULL},
+	{ sr_apy_kemi_exec_func_673, NULL},
+	{ sr_apy_kemi_exec_func_674, NULL},
+	{ sr_apy_kemi_exec_func_675, NULL},
+	{ sr_apy_kemi_exec_func_676, NULL},
+	{ sr_apy_kemi_exec_func_677, NULL},
+	{ sr_apy_kemi_exec_func_678, NULL},
+	{ sr_apy_kemi_exec_func_679, NULL},
+	{ sr_apy_kemi_exec_func_680, NULL},
+	{ sr_apy_kemi_exec_func_681, NULL},
+	{ sr_apy_kemi_exec_func_682, NULL},
+	{ sr_apy_kemi_exec_func_683, NULL},
+	{ sr_apy_kemi_exec_func_684, NULL},
+	{ sr_apy_kemi_exec_func_685, NULL},
+	{ sr_apy_kemi_exec_func_686, NULL},
+	{ sr_apy_kemi_exec_func_687, NULL},
+	{ sr_apy_kemi_exec_func_688, NULL},
+	{ sr_apy_kemi_exec_func_689, NULL},
+	{ sr_apy_kemi_exec_func_690, NULL},
+	{ sr_apy_kemi_exec_func_691, NULL},
+	{ sr_apy_kemi_exec_func_692, NULL},
+	{ sr_apy_kemi_exec_func_693, NULL},
+	{ sr_apy_kemi_exec_func_694, NULL},
+	{ sr_apy_kemi_exec_func_695, NULL},
+	{ sr_apy_kemi_exec_func_696, NULL},
+	{ sr_apy_kemi_exec_func_697, NULL},
+	{ sr_apy_kemi_exec_func_698, NULL},
+	{ sr_apy_kemi_exec_func_699, NULL},
+	{ sr_apy_kemi_exec_func_700, NULL},
+	{ sr_apy_kemi_exec_func_701, NULL},
+	{ sr_apy_kemi_exec_func_702, NULL},
+	{ sr_apy_kemi_exec_func_703, NULL},
+	{ sr_apy_kemi_exec_func_704, NULL},
+	{ sr_apy_kemi_exec_func_705, NULL},
+	{ sr_apy_kemi_exec_func_706, NULL},
+	{ sr_apy_kemi_exec_func_707, NULL},
+	{ sr_apy_kemi_exec_func_708, NULL},
+	{ sr_apy_kemi_exec_func_709, NULL},
+	{ sr_apy_kemi_exec_func_710, NULL},
+	{ sr_apy_kemi_exec_func_711, NULL},
+	{ sr_apy_kemi_exec_func_712, NULL},
+	{ sr_apy_kemi_exec_func_713, NULL},
+	{ sr_apy_kemi_exec_func_714, NULL},
+	{ sr_apy_kemi_exec_func_715, NULL},
+	{ sr_apy_kemi_exec_func_716, NULL},
+	{ sr_apy_kemi_exec_func_717, NULL},
+	{ sr_apy_kemi_exec_func_718, NULL},
+	{ sr_apy_kemi_exec_func_719, NULL},
+	{ sr_apy_kemi_exec_func_720, NULL},
+	{ sr_apy_kemi_exec_func_721, NULL},
+	{ sr_apy_kemi_exec_func_722, NULL},
+	{ sr_apy_kemi_exec_func_723, NULL},
+	{ sr_apy_kemi_exec_func_724, NULL},
+	{ sr_apy_kemi_exec_func_725, NULL},
+	{ sr_apy_kemi_exec_func_726, NULL},
+	{ sr_apy_kemi_exec_func_727, NULL},
+	{ sr_apy_kemi_exec_func_728, NULL},
+	{ sr_apy_kemi_exec_func_729, NULL},
+	{ sr_apy_kemi_exec_func_730, NULL},
+	{ sr_apy_kemi_exec_func_731, NULL},
+	{ sr_apy_kemi_exec_func_732, NULL},
+	{ sr_apy_kemi_exec_func_733, NULL},
+	{ sr_apy_kemi_exec_func_734, NULL},
+	{ sr_apy_kemi_exec_func_735, NULL},
+	{ sr_apy_kemi_exec_func_736, NULL},
+	{ sr_apy_kemi_exec_func_737, NULL},
+	{ sr_apy_kemi_exec_func_738, NULL},
+	{ sr_apy_kemi_exec_func_739, NULL},
+	{ sr_apy_kemi_exec_func_740, NULL},
+	{ sr_apy_kemi_exec_func_741, NULL},
+	{ sr_apy_kemi_exec_func_742, NULL},
+	{ sr_apy_kemi_exec_func_743, NULL},
+	{ sr_apy_kemi_exec_func_744, NULL},
+	{ sr_apy_kemi_exec_func_745, NULL},
+	{ sr_apy_kemi_exec_func_746, NULL},
+	{ sr_apy_kemi_exec_func_747, NULL},
+	{ sr_apy_kemi_exec_func_748, NULL},
+	{ sr_apy_kemi_exec_func_749, NULL},
+	{ sr_apy_kemi_exec_func_750, NULL},
+	{ sr_apy_kemi_exec_func_751, NULL},
+	{ sr_apy_kemi_exec_func_752, NULL},
+	{ sr_apy_kemi_exec_func_753, NULL},
+	{ sr_apy_kemi_exec_func_754, NULL},
+	{ sr_apy_kemi_exec_func_755, NULL},
+	{ sr_apy_kemi_exec_func_756, NULL},
+	{ sr_apy_kemi_exec_func_757, NULL},
+	{ sr_apy_kemi_exec_func_758, NULL},
+	{ sr_apy_kemi_exec_func_759, NULL},
+	{ sr_apy_kemi_exec_func_760, NULL},
+	{ sr_apy_kemi_exec_func_761, NULL},
+	{ sr_apy_kemi_exec_func_762, NULL},
+	{ sr_apy_kemi_exec_func_763, NULL},
+	{ sr_apy_kemi_exec_func_764, NULL},
+	{ sr_apy_kemi_exec_func_765, NULL},
+	{ sr_apy_kemi_exec_func_766, NULL},
+	{ sr_apy_kemi_exec_func_767, NULL},
+	{ sr_apy_kemi_exec_func_768, NULL},
+	{ sr_apy_kemi_exec_func_769, NULL},
+	{ sr_apy_kemi_exec_func_770, NULL},
+	{ sr_apy_kemi_exec_func_771, NULL},
+	{ sr_apy_kemi_exec_func_772, NULL},
+	{ sr_apy_kemi_exec_func_773, NULL},
+	{ sr_apy_kemi_exec_func_774, NULL},
+	{ sr_apy_kemi_exec_func_775, NULL},
+	{ sr_apy_kemi_exec_func_776, NULL},
+	{ sr_apy_kemi_exec_func_777, NULL},
+	{ sr_apy_kemi_exec_func_778, NULL},
+	{ sr_apy_kemi_exec_func_779, NULL},
+	{ sr_apy_kemi_exec_func_780, NULL},
+	{ sr_apy_kemi_exec_func_781, NULL},
+	{ sr_apy_kemi_exec_func_782, NULL},
+	{ sr_apy_kemi_exec_func_783, NULL},
+	{ sr_apy_kemi_exec_func_784, NULL},
+	{ sr_apy_kemi_exec_func_785, NULL},
+	{ sr_apy_kemi_exec_func_786, NULL},
+	{ sr_apy_kemi_exec_func_787, NULL},
+	{ sr_apy_kemi_exec_func_788, NULL},
+	{ sr_apy_kemi_exec_func_789, NULL},
+	{ sr_apy_kemi_exec_func_790, NULL},
+	{ sr_apy_kemi_exec_func_791, NULL},
+	{ sr_apy_kemi_exec_func_792, NULL},
+	{ sr_apy_kemi_exec_func_793, NULL},
+	{ sr_apy_kemi_exec_func_794, NULL},
+	{ sr_apy_kemi_exec_func_795, NULL},
+	{ sr_apy_kemi_exec_func_796, NULL},
+	{ sr_apy_kemi_exec_func_797, NULL},
+	{ sr_apy_kemi_exec_func_798, NULL},
+	{ sr_apy_kemi_exec_func_799, NULL},
+	{ sr_apy_kemi_exec_func_800, NULL},
+	{ sr_apy_kemi_exec_func_801, NULL},
+	{ sr_apy_kemi_exec_func_802, NULL},
+	{ sr_apy_kemi_exec_func_803, NULL},
+	{ sr_apy_kemi_exec_func_804, NULL},
+	{ sr_apy_kemi_exec_func_805, NULL},
+	{ sr_apy_kemi_exec_func_806, NULL},
+	{ sr_apy_kemi_exec_func_807, NULL},
+	{ sr_apy_kemi_exec_func_808, NULL},
+	{ sr_apy_kemi_exec_func_809, NULL},
+	{ sr_apy_kemi_exec_func_810, NULL},
+	{ sr_apy_kemi_exec_func_811, NULL},
+	{ sr_apy_kemi_exec_func_812, NULL},
+	{ sr_apy_kemi_exec_func_813, NULL},
+	{ sr_apy_kemi_exec_func_814, NULL},
+	{ sr_apy_kemi_exec_func_815, NULL},
+	{ sr_apy_kemi_exec_func_816, NULL},
+	{ sr_apy_kemi_exec_func_817, NULL},
+	{ sr_apy_kemi_exec_func_818, NULL},
+	{ sr_apy_kemi_exec_func_819, NULL},
+	{ sr_apy_kemi_exec_func_820, NULL},
+	{ sr_apy_kemi_exec_func_821, NULL},
+	{ sr_apy_kemi_exec_func_822, NULL},
+	{ sr_apy_kemi_exec_func_823, NULL},
+	{ sr_apy_kemi_exec_func_824, NULL},
+	{ sr_apy_kemi_exec_func_825, NULL},
+	{ sr_apy_kemi_exec_func_826, NULL},
+	{ sr_apy_kemi_exec_func_827, NULL},
+	{ sr_apy_kemi_exec_func_828, NULL},
+	{ sr_apy_kemi_exec_func_829, NULL},
+	{ sr_apy_kemi_exec_func_830, NULL},
+	{ sr_apy_kemi_exec_func_831, NULL},
+	{ sr_apy_kemi_exec_func_832, NULL},
+	{ sr_apy_kemi_exec_func_833, NULL},
+	{ sr_apy_kemi_exec_func_834, NULL},
+	{ sr_apy_kemi_exec_func_835, NULL},
+	{ sr_apy_kemi_exec_func_836, NULL},
+	{ sr_apy_kemi_exec_func_837, NULL},
+	{ sr_apy_kemi_exec_func_838, NULL},
+	{ sr_apy_kemi_exec_func_839, NULL},
+	{ sr_apy_kemi_exec_func_840, NULL},
+	{ sr_apy_kemi_exec_func_841, NULL},
+	{ sr_apy_kemi_exec_func_842, NULL},
+	{ sr_apy_kemi_exec_func_843, NULL},
+	{ sr_apy_kemi_exec_func_844, NULL},
+	{ sr_apy_kemi_exec_func_845, NULL},
+	{ sr_apy_kemi_exec_func_846, NULL},
+	{ sr_apy_kemi_exec_func_847, NULL},
+	{ sr_apy_kemi_exec_func_848, NULL},
+	{ sr_apy_kemi_exec_func_849, NULL},
+	{ sr_apy_kemi_exec_func_850, NULL},
+	{ sr_apy_kemi_exec_func_851, NULL},
+	{ sr_apy_kemi_exec_func_852, NULL},
+	{ sr_apy_kemi_exec_func_853, NULL},
+	{ sr_apy_kemi_exec_func_854, NULL},
+	{ sr_apy_kemi_exec_func_855, NULL},
+	{ sr_apy_kemi_exec_func_856, NULL},
+	{ sr_apy_kemi_exec_func_857, NULL},
+	{ sr_apy_kemi_exec_func_858, NULL},
+	{ sr_apy_kemi_exec_func_859, NULL},
+	{ sr_apy_kemi_exec_func_860, NULL},
+	{ sr_apy_kemi_exec_func_861, NULL},
+	{ sr_apy_kemi_exec_func_862, NULL},
+	{ sr_apy_kemi_exec_func_863, NULL},
+	{ sr_apy_kemi_exec_func_864, NULL},
+	{ sr_apy_kemi_exec_func_865, NULL},
+	{ sr_apy_kemi_exec_func_866, NULL},
+	{ sr_apy_kemi_exec_func_867, NULL},
+	{ sr_apy_kemi_exec_func_868, NULL},
+	{ sr_apy_kemi_exec_func_869, NULL},
+	{ sr_apy_kemi_exec_func_870, NULL},
+	{ sr_apy_kemi_exec_func_871, NULL},
+	{ sr_apy_kemi_exec_func_872, NULL},
+	{ sr_apy_kemi_exec_func_873, NULL},
+	{ sr_apy_kemi_exec_func_874, NULL},
+	{ sr_apy_kemi_exec_func_875, NULL},
+	{ sr_apy_kemi_exec_func_876, NULL},
+	{ sr_apy_kemi_exec_func_877, NULL},
+	{ sr_apy_kemi_exec_func_878, NULL},
+	{ sr_apy_kemi_exec_func_879, NULL},
+	{ sr_apy_kemi_exec_func_880, NULL},
+	{ sr_apy_kemi_exec_func_881, NULL},
+	{ sr_apy_kemi_exec_func_882, NULL},
+	{ sr_apy_kemi_exec_func_883, NULL},
+	{ sr_apy_kemi_exec_func_884, NULL},
+	{ sr_apy_kemi_exec_func_885, NULL},
+	{ sr_apy_kemi_exec_func_886, NULL},
+	{ sr_apy_kemi_exec_func_887, NULL},
+	{ sr_apy_kemi_exec_func_888, NULL},
+	{ sr_apy_kemi_exec_func_889, NULL},
+	{ sr_apy_kemi_exec_func_890, NULL},
+	{ sr_apy_kemi_exec_func_891, NULL},
+	{ sr_apy_kemi_exec_func_892, NULL},
+	{ sr_apy_kemi_exec_func_893, NULL},
+	{ sr_apy_kemi_exec_func_894, NULL},
+	{ sr_apy_kemi_exec_func_895, NULL},
+	{ sr_apy_kemi_exec_func_896, NULL},
+	{ sr_apy_kemi_exec_func_897, NULL},
+	{ sr_apy_kemi_exec_func_898, NULL},
+	{ sr_apy_kemi_exec_func_899, NULL},
+	{ sr_apy_kemi_exec_func_900, NULL},
+	{ sr_apy_kemi_exec_func_901, NULL},
+	{ sr_apy_kemi_exec_func_902, NULL},
+	{ sr_apy_kemi_exec_func_903, NULL},
+	{ sr_apy_kemi_exec_func_904, NULL},
+	{ sr_apy_kemi_exec_func_905, NULL},
+	{ sr_apy_kemi_exec_func_906, NULL},
+	{ sr_apy_kemi_exec_func_907, NULL},
+	{ sr_apy_kemi_exec_func_908, NULL},
+	{ sr_apy_kemi_exec_func_909, NULL},
+	{ sr_apy_kemi_exec_func_910, NULL},
+	{ sr_apy_kemi_exec_func_911, NULL},
+	{ sr_apy_kemi_exec_func_912, NULL},
+	{ sr_apy_kemi_exec_func_913, NULL},
+	{ sr_apy_kemi_exec_func_914, NULL},
+	{ sr_apy_kemi_exec_func_915, NULL},
+	{ sr_apy_kemi_exec_func_916, NULL},
+	{ sr_apy_kemi_exec_func_917, NULL},
+	{ sr_apy_kemi_exec_func_918, NULL},
+	{ sr_apy_kemi_exec_func_919, NULL},
+	{ sr_apy_kemi_exec_func_920, NULL},
+	{ sr_apy_kemi_exec_func_921, NULL},
+	{ sr_apy_kemi_exec_func_922, NULL},
+	{ sr_apy_kemi_exec_func_923, NULL},
+	{ sr_apy_kemi_exec_func_924, NULL},
+	{ sr_apy_kemi_exec_func_925, NULL},
+	{ sr_apy_kemi_exec_func_926, NULL},
+	{ sr_apy_kemi_exec_func_927, NULL},
+	{ sr_apy_kemi_exec_func_928, NULL},
+	{ sr_apy_kemi_exec_func_929, NULL},
+	{ sr_apy_kemi_exec_func_930, NULL},
+	{ sr_apy_kemi_exec_func_931, NULL},
+	{ sr_apy_kemi_exec_func_932, NULL},
+	{ sr_apy_kemi_exec_func_933, NULL},
+	{ sr_apy_kemi_exec_func_934, NULL},
+	{ sr_apy_kemi_exec_func_935, NULL},
+	{ sr_apy_kemi_exec_func_936, NULL},
+	{ sr_apy_kemi_exec_func_937, NULL},
+	{ sr_apy_kemi_exec_func_938, NULL},
+	{ sr_apy_kemi_exec_func_939, NULL},
+	{ sr_apy_kemi_exec_func_940, NULL},
+	{ sr_apy_kemi_exec_func_941, NULL},
+	{ sr_apy_kemi_exec_func_942, NULL},
+	{ sr_apy_kemi_exec_func_943, NULL},
+	{ sr_apy_kemi_exec_func_944, NULL},
+	{ sr_apy_kemi_exec_func_945, NULL},
+	{ sr_apy_kemi_exec_func_946, NULL},
+	{ sr_apy_kemi_exec_func_947, NULL},
+	{ sr_apy_kemi_exec_func_948, NULL},
+	{ sr_apy_kemi_exec_func_949, NULL},
+	{ sr_apy_kemi_exec_func_950, NULL},
+	{ sr_apy_kemi_exec_func_951, NULL},
+	{ sr_apy_kemi_exec_func_952, NULL},
+	{ sr_apy_kemi_exec_func_953, NULL},
+	{ sr_apy_kemi_exec_func_954, NULL},
+	{ sr_apy_kemi_exec_func_955, NULL},
+	{ sr_apy_kemi_exec_func_956, NULL},
+	{ sr_apy_kemi_exec_func_957, NULL},
+	{ sr_apy_kemi_exec_func_958, NULL},
+	{ sr_apy_kemi_exec_func_959, NULL},
+	{ sr_apy_kemi_exec_func_960, NULL},
+	{ sr_apy_kemi_exec_func_961, NULL},
+	{ sr_apy_kemi_exec_func_962, NULL},
+	{ sr_apy_kemi_exec_func_963, NULL},
+	{ sr_apy_kemi_exec_func_964, NULL},
+	{ sr_apy_kemi_exec_func_965, NULL},
+	{ sr_apy_kemi_exec_func_966, NULL},
+	{ sr_apy_kemi_exec_func_967, NULL},
+	{ sr_apy_kemi_exec_func_968, NULL},
+	{ sr_apy_kemi_exec_func_969, NULL},
+	{ sr_apy_kemi_exec_func_970, NULL},
+	{ sr_apy_kemi_exec_func_971, NULL},
+	{ sr_apy_kemi_exec_func_972, NULL},
+	{ sr_apy_kemi_exec_func_973, NULL},
+	{ sr_apy_kemi_exec_func_974, NULL},
+	{ sr_apy_kemi_exec_func_975, NULL},
+	{ sr_apy_kemi_exec_func_976, NULL},
+	{ sr_apy_kemi_exec_func_977, NULL},
+	{ sr_apy_kemi_exec_func_978, NULL},
+	{ sr_apy_kemi_exec_func_979, NULL},
+	{ sr_apy_kemi_exec_func_980, NULL},
+	{ sr_apy_kemi_exec_func_981, NULL},
+	{ sr_apy_kemi_exec_func_982, NULL},
+	{ sr_apy_kemi_exec_func_983, NULL},
+	{ sr_apy_kemi_exec_func_984, NULL},
+	{ sr_apy_kemi_exec_func_985, NULL},
+	{ sr_apy_kemi_exec_func_986, NULL},
+	{ sr_apy_kemi_exec_func_987, NULL},
+	{ sr_apy_kemi_exec_func_988, NULL},
+	{ sr_apy_kemi_exec_func_989, NULL},
+	{ sr_apy_kemi_exec_func_990, NULL},
+	{ sr_apy_kemi_exec_func_991, NULL},
+	{ sr_apy_kemi_exec_func_992, NULL},
+	{ sr_apy_kemi_exec_func_993, NULL},
+	{ sr_apy_kemi_exec_func_994, NULL},
+	{ sr_apy_kemi_exec_func_995, NULL},
+	{ sr_apy_kemi_exec_func_996, NULL},
+	{ sr_apy_kemi_exec_func_997, NULL},
+	{ sr_apy_kemi_exec_func_998, NULL},
+	{ sr_apy_kemi_exec_func_999, NULL},
+	{ sr_apy_kemi_exec_func_1000, NULL},
+	{ sr_apy_kemi_exec_func_1001, NULL},
+	{ sr_apy_kemi_exec_func_1002, NULL},
+	{ sr_apy_kemi_exec_func_1003, NULL},
+	{ sr_apy_kemi_exec_func_1004, NULL},
+	{ sr_apy_kemi_exec_func_1005, NULL},
+	{ sr_apy_kemi_exec_func_1006, NULL},
+	{ sr_apy_kemi_exec_func_1007, NULL},
+	{ sr_apy_kemi_exec_func_1008, NULL},
+	{ sr_apy_kemi_exec_func_1009, NULL},
+	{ sr_apy_kemi_exec_func_1010, NULL},
+	{ sr_apy_kemi_exec_func_1011, NULL},
+	{ sr_apy_kemi_exec_func_1012, NULL},
+	{ sr_apy_kemi_exec_func_1013, NULL},
+	{ sr_apy_kemi_exec_func_1014, NULL},
+	{ sr_apy_kemi_exec_func_1015, NULL},
+	{ sr_apy_kemi_exec_func_1016, NULL},
+	{ sr_apy_kemi_exec_func_1017, NULL},
+	{ sr_apy_kemi_exec_func_1018, NULL},
+	{ sr_apy_kemi_exec_func_1019, NULL},
+	{ sr_apy_kemi_exec_func_1020, NULL},
+	{ sr_apy_kemi_exec_func_1021, NULL},
+	{ sr_apy_kemi_exec_func_1022, NULL},
+	{ sr_apy_kemi_exec_func_1023, NULL},
+	{NULL, NULL}
+};
+
+/**
+ *
+ */
+sr_kemi_t *sr_apy_kemi_export_get(int idx)
+{
+	if(idx<0 || idx>=SR_APY_KEMI_EXPORT_SIZE)
+		return NULL;
+	return _sr_apy_kemi_export_list[idx].ket;
+}
+
+/**
+ *
+ */
+PyCFunction sr_apy_kemi_export_associate(sr_kemi_t *ket)
+{
+	int i;
+	for(i=0; i<SR_APY_KEMI_EXPORT_SIZE; i++) {
+		if(_sr_apy_kemi_export_list[i].ket==NULL) {
+			_sr_apy_kemi_export_list[i].ket = ket;
+			return _sr_apy_kemi_export_list[i].pfunc;
+		}
+		if(_sr_apy_kemi_export_list[i].ket==ket) {
+			return _sr_apy_kemi_export_list[i].pfunc;
+		}
+	}
+	LM_ERR("no more indexing slots\n");
+	return NULL;
+}

+ 42 - 0
src/modules/app_python3s/apy3s_kemi_export.h

@@ -0,0 +1,42 @@
+/**
+ * Copyright (C) 2016 Daniel-Constantin Mierla (asipto.com)
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+/**
+ * this file is generated - do not edit
+ */
+
+#ifndef __APY_KEMI_FLIB_H__
+#define __APY_KEMI_FLIB_H__
+
+#include <Python.h>
+#include "../../core/kemi.h"
+
+#define SR_APY_KEMI_EXPORT_SIZE	1024
+
+typedef struct sr_apy_kemi_export {
+	PyCFunction pfunc;
+	sr_kemi_t *ket;
+} sr_apy_kemi_export_t;
+
+sr_kemi_t *sr_apy_kemi_export_get(int idx);
+PyCFunction sr_apy_kemi_export_associate(sr_kemi_t *ket);
+
+#endif

+ 4 - 0
src/modules/app_python3s/doc/Makefile

@@ -0,0 +1,4 @@
+docs = app_python3s.xml
+
+docbook_dir = ../../../../doc/docbook
+include $(docbook_dir)/Makefile.module

+ 42 - 0
src/modules/app_python3s/doc/app_python3s.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding='ISO-8859-1'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
+
+<!-- Include general documentation entities -->
+<!ENTITY % docentities SYSTEM "../../../../doc/docbook/entities.xml">
+%docentities;
+
+]>
+
+<book xmlns:xi="http://www.w3.org/2001/XInclude">
+	<bookinfo>
+	<title>app_python3s Module</title>
+	<productname class="trade">&kamailioname;</productname>
+	<authorgroup>
+		<author>
+		<firstname>Daniel-Constantin</firstname>
+		<surname>Mierla</surname>
+		</author>
+		<author>
+		<firstname>Maxim</firstname>
+		<surname>Sobolev</surname>
+		</author>
+		<author>
+		<firstname>Anthony</firstname>
+		<surname>Alba</surname>
+		</author>
+		<editor>
+		<firstname>Daniel-Constantin</firstname>
+		<surname>Mierla</surname>
+		</editor>
+	</authorgroup>
+	<copyright>
+		<year>2022</year>
+		<holder>kamailio.org</holder>
+	</copyright>
+	</bookinfo>
+	<toc></toc>
+
+	<xi:include href="app_python3s_admin.xml"/>
+
+</book>

+ 216 - 0
src/modules/app_python3s/doc/app_python3s_admin.xml

@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding='ISO-8859-1'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
+
+<!-- Include general documentation entities -->
+<!ENTITY % docentities SYSTEM "../../../../doc/docbook/entities.xml">
+%docentities;
+
+]>
+
+<!-- Module User's Guide -->
+
+<chapter>
+
+    <title>&adminguide;</title>
+
+    <section>
+	<title>Overview</title>
+	<para>
+		This module is an alternative 'app_python3' module with static export
+		of 'KSR' object and functions, without instantiating the SIP message
+		object.
+	</para>
+	<para>
+		<emphasis>This module cannot be loaded together with 'app_python3'</emphasis>
+		as some global symbols conflict.
+	</para>
+	<para>
+		This module allows executing Python3 scripts from the config file,
+		exporting functions to access the SIP message from Python3.
+	</para>
+	<para>
+		Note: if symbols exported to KEMI (module or function names) conflict
+		with Python's reserved keywords, use the 'getattr()' function or the
+		'__dict__' attribute for 'KSR' (e.g., 'KSR.__dict__["async"].task_route("myroute")').
+	</para>
+    </section>
+    <section>
+	<title>Dependencies</title>
+	<section>
+	    <title>&kamailio; Modules</title>
+	    <para>
+		The following modules must be loaded before this module:
+	    	<itemizedlist>
+		    <listitem>
+			<para>
+			    <emphasis>none</emphasis>.
+			</para>
+		    </listitem>
+	    	</itemizedlist>
+	    </para>
+	</section>
+	<section>
+	    <title>External Libraries or Applications</title>
+	    <para>
+		The following libraries or applications must be installed before running
+		&kamailio; with this module loaded:
+	    	<itemizedlist>
+		    <listitem>
+			<para>
+			    <emphasis>python3</emphasis> - Python 3 runtime.
+			</para>
+		    </listitem>
+	    	</itemizedlist>
+	    </para>
+	    <para>
+		To compile this module the Python 3 development package is needed.
+		Requirements:
+	    	<itemizedlist>
+		    <listitem>
+			<para>
+			    <emphasis>python3-dev</emphasis> - Python 3 development package.
+			</para>
+		    </listitem>
+		    <listitem>
+			<para>
+			    <emphasis>python3-config</emphasis> - (part of python3-dev)
+				tool to output C includes and library paths.
+			</para>
+		    </listitem>
+	    	</itemizedlist>
+	    </para>
+	</section>
+    </section>
+    <section>
+	<title>Parameters</title>
+	<section id="app_python3s.p.load">
+	    <title><varname>load</varname> (string)</title>
+	    <para>
+			The path to the file with Python code to be executed
+			from configuration file.
+	    </para>
+	    <para>
+		<emphasis>
+			Default value is <quote>/usr/local/etc/kamailio/kamailio.py</quote>.
+		</emphasis>
+	    </para>
+	    <example>
+		<title>Set <varname>load</varname> parameter</title>
+		<programlisting format="linespecific">
+...
+modparam("app_python3s", "load", "/usr/local/etc/kamailio/myscript.py")
+...
+</programlisting>
+	    </example>
+	</section>
+
+	</section>
+
+    <section>
+	<title>Functions</title>
+ 	<section id="app_python3.f.app_python3s_exec">
+	    <title>
+		<function moreinfo="none">app_python3s_exec(method [, param])</function>
+	    </title>
+	    <para>
+			Execute the Python function with the name given by the parameter 'method'.
+			Optionally can be provided a second string with the parameter to be passed
+			to the Python function.
+	    </para>
+	    <para>
+			Both parameters can contain pseudo-variables.
+	    </para>
+		<example>
+		<title><function>app_python3s_exec</function> usage</title>
+		<programlisting format="linespecific">
+...
+app_python3s_exec("my_python_function");
+app_python3s_exec("my_python_function", "my_params");
+app_python3s_exec("my_python_function", "$rU");
+...
+</programlisting>
+	    </example>
+	</section>
+
+    </section>
+	<section>
+        <title>RPC Commands</title>
+        <section id="app_python3s.r.reload">
+            <title>
+            <function moreinfo="none">app_python.reload</function>
+            </title>
+			<para>
+				IMPORTANT: this is not thread-safe. In your Python script
+				do not use C extensions with threads that call into
+				<varname>apy_exec()</varname>.
+			</para>
+            <para>
+            Marks the need to reload the Python script.
+            The actual reload is done in each worker when it next invokes a Python method.
+            The module uses a worker process lock to prevent recursive reloads.
+            </para>
+            <para>
+			This function only reloads (re-executes) the user script and creates
+			a new script object. It does not reinitialize the interpreter (references
+			in the old module remain if not redefined by the new version).
+            </para>
+            <para>
+            Name: <emphasis>app_python.reload</emphasis>
+            </para>
+            <para>Parameters: <emphasis>none</emphasis></para>
+            <para>
+            Example:
+            </para>
+            <programlisting  format="linespecific">
+...
+&kamcmd; app_python3s.reload
+...
+            </programlisting>
+			<para>
+			Note that reload is done for the Python script provided as parameter
+			to this &kamailio; module. To reload the Python libraries imported
+			in this script, use something like:
+            </para>
+            <programlisting  format="linespecific">
+...
+import mod1
+...
+import modN
+from importlib import reload
+
+def mod_init():
+    reload(mod1)
+    ...
+    reload(modN)
+    return kamailio()
+...
+            </programlisting>
+			<para>
+				Where "modX" are the modules imported at the top.
+            </para>
+		</section>
+		<section id="app_python3s.r.api_list">
+            <title>
+            <function moreinfo="none">app_python.api_list</function>
+            </title>
+            <para>
+			List the functions available via Kemi framework.
+            </para>
+            <para>
+            Name: <emphasis>app_python.api_list</emphasis>
+            </para>
+            <para>Parameters: <emphasis>none</emphasis></para>
+            <para>
+            Example:
+            </para>
+            <programlisting  format="linespecific">
+...
+&kamcmd; app_python3s.api_list
+...
+            </programlisting>
+        </section>
+	</section>
+
+</chapter>
+

+ 148 - 0
src/modules/app_python3s/utils/app_python_ctl

@@ -0,0 +1,148 @@
+#!/bin/bash
+
+# generate the .h file
+
+KEMI_MAX_SIZE=1024
+
+cat > ../apy_kemi_export.h <<EOF
+/**
+ * Copyright (C) 2016 Daniel-Constantin Mierla (asipto.com)
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+/**
+ * this file is generated - do not edit
+ */
+
+#ifndef __APY_KEMI_FLIB_H__
+#define __APY_KEMI_FLIB_H__
+
+#include <Python.h>
+#include "../../core/kemi.h"
+
+#define SR_APY_KEMI_EXPORT_SIZE	${KEMI_MAX_SIZE}
+
+typedef struct sr_apy_kemi_export {
+	PyCFunction pfunc;
+	sr_kemi_t *ket;
+} sr_apy_kemi_export_t;
+
+sr_kemi_t *sr_apy_kemi_export_get(int idx);
+PyCFunction sr_apy_kemi_export_associate(sr_kemi_t *ket);
+
+#endif
+EOF
+
+# generate the .c file
+
+cat > ../apy_kemi_export.c <<EOF
+/**
+ * Copyright (C) 2016 Daniel-Constantin Mierla (asipto.com)
+ *
+ * This file is part of Kamailio, a free SIP server.
+ *
+ * Kamailio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version
+ *
+ * Kamailio 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+/**
+ * this file is generated - do not edit
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <Python.h>
+
+#include "../../core/dprint.h"
+
+#include "apy_kemi.h"
+#include "apy_kemi_export.h"
+
+EOF
+
+CEND=${KEMI_MAX_SIZE}
+
+for (( c=0; c<CEND; c++ )); do
+	echo >>../apy_kemi_export.c
+	echo "/**" >>../apy_kemi_export.c
+	echo " *" >>../apy_kemi_export.c
+	echo " */" >>../apy_kemi_export.c
+	echo "static PyObject *sr_apy_kemi_exec_func_${c}(PyObject *self, PyObject *args)" >>../apy_kemi_export.c
+	echo "{" >>../apy_kemi_export.c
+	echo "	return sr_apy_kemi_exec_func(self, args, ${c});" >>../apy_kemi_export.c
+	echo "}" >>../apy_kemi_export.c
+done
+
+echo >>../apy_kemi_export.c
+echo "/**" >>../apy_kemi_export.c
+echo " *" >>../apy_kemi_export.c
+echo " */" >>../apy_kemi_export.c
+
+echo "static sr_apy_kemi_export_t _sr_apy_kemi_export_list[] = {" >>../apy_kemi_export.c
+for (( c=0; c<CEND; c++ )); do
+	echo "	{ sr_apy_kemi_exec_func_${c}, NULL}," >>../apy_kemi_export.c
+done
+echo "	{NULL, NULL}" >>../apy_kemi_export.c
+echo "};" >>../apy_kemi_export.c
+
+cat >> ../apy_kemi_export.c <<EOF
+
+/**
+ *
+ */
+sr_kemi_t *sr_apy_kemi_export_get(int idx)
+{
+	if(idx<0 || idx>=SR_APY_KEMI_EXPORT_SIZE)
+		return NULL;
+	return _sr_apy_kemi_export_list[idx].ket;
+}
+
+/**
+ *
+ */
+PyCFunction sr_apy_kemi_export_associate(sr_kemi_t *ket)
+{
+	int i;
+	for(i=0; i<SR_APY_KEMI_EXPORT_SIZE; i++) {
+		if(_sr_apy_kemi_export_list[i].ket==NULL) {
+			_sr_apy_kemi_export_list[i].ket = ket;
+			return _sr_apy_kemi_export_list[i].pfunc;
+		}
+		if(_sr_apy_kemi_export_list[i].ket==ket) {
+			return _sr_apy_kemi_export_list[i].pfunc;
+		}
+	}
+	LM_ERR("no more indexing slots\n");
+	return NULL;
+}
+EOF