summaryrefslogtreecommitdiff
path: root/ext/sqlite3/sqlite3.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/sqlite3/sqlite3.c')
-rw-r--r--ext/sqlite3/sqlite3.c150
1 files changed, 75 insertions, 75 deletions
diff --git a/ext/sqlite3/sqlite3.c b/ext/sqlite3/sqlite3.c
index 6643506c1a..af3dec0681 100644
--- a/ext/sqlite3/sqlite3.c
+++ b/ext/sqlite3/sqlite3.c
@@ -1,6 +1,6 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 5 |
+ | PHP Version 7 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
@@ -102,14 +102,14 @@ PHP_METHOD(sqlite3, open)
php_sqlite3_db_object *db_obj;
zval *object = getThis();
char *filename, *encryption_key, *fullpath;
- int filename_len, encryption_key_len = 0;
- php_int_t flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
+ size_t filename_len, encryption_key_len = 0;
+ zend_long flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
zend_error_handling error_handling;
db_obj = Z_SQLITE3_DB_P(object);
zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC);
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|is", &filename, &filename_len, &flags, &encryption_key, &encryption_key_len)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "p|ls", &filename, &filename_len, &flags, &encryption_key, &encryption_key_len)) {
zend_restore_error_handling(&error_handling TSRMLS_CC);
return;
}
@@ -249,7 +249,7 @@ PHP_METHOD(sqlite3, version)
array_init(return_value);
add_assoc_string(return_value, "versionString", (char*)sqlite3_libversion());
- add_assoc_int(return_value, "versionNumber", sqlite3_libversion_number());
+ add_assoc_long(return_value, "versionNumber", sqlite3_libversion_number());
return;
}
@@ -269,7 +269,7 @@ PHP_METHOD(sqlite3, lastInsertRowID)
return;
}
- RETURN_INT(sqlite3_last_insert_rowid(db_obj->db));
+ RETURN_LONG(sqlite3_last_insert_rowid(db_obj->db));
}
/* }}} */
@@ -287,7 +287,7 @@ PHP_METHOD(sqlite3, lastErrorCode)
return;
}
- RETURN_INT(sqlite3_errcode(db_obj->db));
+ RETURN_LONG(sqlite3_errcode(db_obj->db));
}
/* }}} */
@@ -315,13 +315,13 @@ PHP_METHOD(sqlite3, busyTimeout)
{
php_sqlite3_db_object *db_obj;
zval *object = getThis();
- php_int_t ms;
+ zend_long ms;
int return_code;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &ms)) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &ms)) {
return;
}
@@ -345,7 +345,7 @@ PHP_METHOD(sqlite3, loadExtension)
zval *object = getThis();
char *extension, *lib_path, *extension_dir, *errtext = NULL;
char fullpath[MAXPATHLEN];
- int extension_len, extension_dir_len;
+ size_t extension_len, extension_dir_len;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
@@ -424,7 +424,7 @@ PHP_METHOD(sqlite3, changes)
return;
}
- RETURN_INT(sqlite3_changes(db_obj->db));
+ RETURN_LONG(sqlite3_changes(db_obj->db));
}
/* }}} */
@@ -580,7 +580,7 @@ static void sqlite_value_to_zval(sqlite3_stmt *stmt, int column, zval *data) /*
if ((sqlite3_column_int64(stmt, column)) >= INT_MAX || sqlite3_column_int64(stmt, column) <= INT_MIN) {
ZVAL_STRINGL(data, (char *)sqlite3_column_text(stmt, column), sqlite3_column_bytes(stmt, column));
} else {
- ZVAL_INT(data, sqlite3_column_int64(stmt, column));
+ ZVAL_LONG(data, sqlite3_column_int64(stmt, column));
}
break;
@@ -713,16 +713,16 @@ static int sqlite3_do_callback(struct php_sqlite3_fci *fc, zval *cb, int argc, s
ZVAL_NULL(&agg_context->zval_context);
}
ZVAL_COPY_VALUE(&zargs[0], &agg_context->zval_context);
- ZVAL_INT(&zargs[1], agg_context->row_count);
+ ZVAL_LONG(&zargs[1], agg_context->row_count);
}
for (i = 0; i < argc; i++) {
switch (sqlite3_value_type(argv[i])) {
case SQLITE_INTEGER:
-#if PHP_INT_MAX > 2147483647
- ZVAL_INT(&zargs[i + is_agg], sqlite3_value_int64(argv[i]));
+#if ZEND_LONG_MAX > 2147483647
+ ZVAL_LONG(&zargs[i + is_agg], sqlite3_value_int64(argv[i]));
#else
- ZVAL_INT(&zargs[i + is_agg], sqlite3_value_int(argv[i]));
+ ZVAL_LONG(&zargs[i + is_agg], sqlite3_value_int(argv[i]));
#endif
break;
@@ -764,11 +764,11 @@ static int sqlite3_do_callback(struct php_sqlite3_fci *fc, zval *cb, int argc, s
* or if we are finalizing an aggregate */
if (!Z_ISUNDEF(retval)) {
switch (Z_TYPE(retval)) {
- case IS_INT:
-#if PHP_INT_MAX > 2147483647
- sqlite3_result_int64(context, Z_IVAL(retval));
+ case IS_LONG:
+#if ZEND_LONG_MAX > 2147483647
+ sqlite3_result_int64(context, Z_LVAL(retval));
#else
- sqlite3_result_int(context, Z_IVAL(retval));
+ sqlite3_result_int(context, Z_LVAL(retval));
#endif
break;
@@ -782,7 +782,7 @@ static int sqlite3_do_callback(struct php_sqlite3_fci *fc, zval *cb, int argc, s
default:
convert_to_string_ex(&retval);
- sqlite3_result_text(context, Z_STRVAL(retval), Z_STRSIZE(retval), SQLITE_TRANSIENT);
+ sqlite3_result_text(context, Z_STRVAL(retval), Z_STRLEN(retval), SQLITE_TRANSIENT);
break;
}
} else {
@@ -873,13 +873,13 @@ static int php_sqlite3_callback_compare(void *coll, int a_len, const void *a, in
zval_ptr_dtor(&zargs[1]);
efree(zargs);
- //retval ought to contain a ZVAL_INT by now
+ //retval ought to contain a ZVAL_LONG by now
// (the result of a comparison, i.e. most likely -1, 0, or 1)
//I suppose we could accept any scalar return type, though.
- if (Z_TYPE(retval) != IS_INT){
+ if (Z_TYPE(retval) != IS_LONG){
php_error_docref(NULL TSRMLS_CC, E_WARNING, "An error occurred while invoking the compare callback (invalid return type). Collation behaviour is undefined.");
}else{
- ret = Z_IVAL(retval);
+ ret = Z_LVAL(retval);
}
zval_ptr_dtor(&retval);
@@ -896,15 +896,15 @@ PHP_METHOD(sqlite3, createFunction)
zval *object = getThis();
php_sqlite3_func *func;
char *sql_func;
- int sql_func_len;
+ size_t sql_func_len;
zval *callback_func;
zend_string *callback_name;
- php_int_t sql_func_num_args = -1;
+ zend_long sql_func_num_args = -1;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|i", &sql_func, &sql_func_len, &callback_func, &sql_func_num_args) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|l", &sql_func, &sql_func_len, &callback_func, &sql_func_num_args) == FAILURE) {
return;
}
@@ -914,10 +914,10 @@ PHP_METHOD(sqlite3, createFunction)
if (!zend_is_callable(callback_func, 0, &callback_name TSRMLS_CC)) {
php_sqlite3_error(db_obj, "Not a valid callback function %s", callback_name->val);
- STR_RELEASE(callback_name);
+ zend_string_release(callback_name);
RETURN_FALSE;
}
- STR_RELEASE(callback_name);
+ zend_string_release(callback_name);
func = (php_sqlite3_func *)ecalloc(1, sizeof(*func));
@@ -947,14 +947,14 @@ PHP_METHOD(sqlite3, createAggregate)
php_sqlite3_func *func;
char *sql_func;
zend_string *callback_name;
- int sql_func_len;
+ size_t sql_func_len;
zval *step_callback, *fini_callback;
- php_int_t sql_func_num_args = -1;
+ zend_long sql_func_num_args = -1;
db_obj = Z_SQLITE3_DB_P(object);
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szz|i", &sql_func, &sql_func_len, &step_callback, &fini_callback, &sql_func_num_args) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "szz|l", &sql_func, &sql_func_len, &step_callback, &fini_callback, &sql_func_num_args) == FAILURE) {
return;
}
@@ -964,17 +964,17 @@ PHP_METHOD(sqlite3, createAggregate)
if (!zend_is_callable(step_callback, 0, &callback_name TSRMLS_CC)) {
php_sqlite3_error(db_obj, "Not a valid callback function %s", callback_name->val);
- STR_RELEASE(callback_name);
+ zend_string_release(callback_name);
RETURN_FALSE;
}
- STR_RELEASE(callback_name);
+ zend_string_release(callback_name);
if (!zend_is_callable(fini_callback, 0, &callback_name TSRMLS_CC)) {
php_sqlite3_error(db_obj, "Not a valid callback function %s", callback_name->val);
- STR_RELEASE(callback_name);
+ zend_string_release(callback_name);
RETURN_FALSE;
}
- STR_RELEASE(callback_name);
+ zend_string_release(callback_name);
func = (php_sqlite3_func *)ecalloc(1, sizeof(*func));
@@ -1005,7 +1005,7 @@ PHP_METHOD(sqlite3, createCollation)
php_sqlite3_collation *collation;
char *collation_name;
zend_string *callback_name;
- int collation_name_len;
+ size_t collation_name_len;
zval *callback_func;
db_obj = Z_SQLITE3_DB_P(object);
@@ -1021,10 +1021,10 @@ PHP_METHOD(sqlite3, createCollation)
if (!zend_is_callable(callback_func, 0, &callback_name TSRMLS_CC)) {
php_sqlite3_error(db_obj, "Not a valid callback function %s", callback_name->val);
- STR_RELEASE(callback_name);
+ zend_string_release(callback_name);
RETURN_FALSE;
}
- STR_RELEASE(callback_name);
+ zend_string_release(callback_name);
collation = (php_sqlite3_collation *)ecalloc(1, sizeof(*collation));
if (sqlite3_create_collation(db_obj->db, collation_name, SQLITE_UTF8, collation, php_sqlite3_callback_compare) == SQLITE_OK) {
@@ -1186,8 +1186,8 @@ PHP_METHOD(sqlite3, openBlob)
php_sqlite3_db_object *db_obj;
zval *object = getThis();
char *table, *column, *dbname = "main";
- int table_len, column_len, dbname_len;
- php_int_t rowid, flags = 0;
+ size_t table_len, column_len, dbname_len;
+ zend_long rowid, flags = 0;
sqlite3_blob *blob = NULL;
php_stream_sqlite3_data *sqlite3_stream;
php_stream *stream;
@@ -1196,7 +1196,7 @@ PHP_METHOD(sqlite3, openBlob)
SQLITE3_CHECK_INITIALIZED(db_obj, db_obj->initialised, SQLite3)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssi|s", &table, &table_len, &column, &column_len, &rowid, &dbname, &dbname_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssl|s", &table, &table_len, &column, &column_len, &rowid, &dbname, &dbname_len) == FAILURE) {
return;
}
@@ -1254,7 +1254,7 @@ PHP_METHOD(sqlite3stmt, paramCount)
SQLITE3_CHECK_INITIALIZED_STMT(stmt_obj->stmt, SQLite3Stmt);
- RETURN_INT(sqlite3_bind_parameter_count(stmt_obj->stmt));
+ RETURN_LONG(sqlite3_bind_parameter_count(stmt_obj->stmt));
}
/* }}} */
@@ -1361,19 +1361,19 @@ static int register_bound_parameter_to_sqlite(struct php_sqlite3_bound_param *pa
if (param->name) {
if (param->name->val[0] != ':') {
/* pre-increment for character + 1 for null */
- zend_string *temp = STR_ALLOC(param->name->len + 1, 0);
+ zend_string *temp = zend_string_alloc(param->name->len + 1, 0);
temp->val[0] = ':';
memmove(temp->val + 1, param->name->val, param->name->len + 1);
param->name = temp;
} else {
- param->name = STR_INIT(param->name->val, param->name->len, 0);
+ param->name = zend_string_init(param->name->val, param->name->len, 0);
}
/* do lookup*/
param->param_number = sqlite3_bind_parameter_index(stmt->stmt, param->name->val);
}
if (param->param_number < 1) {
- STR_RELEASE(param->name);
+ zend_string_release(param->name);
return 0;
}
@@ -1404,7 +1404,7 @@ PHP_METHOD(sqlite3stmt, bindParam)
param.param_number = -1;
param.type = SQLITE3_TEXT;
- if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "iz|i", &param.param_number, &parameter, &param.type) == FAILURE) {
+ if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "lz|l", &param.param_number, &parameter, &param.type) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Sz|l", &param.name, &parameter, &param.type) == FAILURE) {
return;
}
@@ -1438,8 +1438,8 @@ PHP_METHOD(sqlite3stmt, bindValue)
param.param_number = -1;
param.type = SQLITE3_TEXT;
- if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "iz/|i", &param.param_number, &parameter, &param.type) == FAILURE) {
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Sz/|i", &param.name, &parameter, &param.type) == FAILURE) {
+ if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "lz/|l", &param.param_number, &parameter, &param.type) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Sz/|l", &param.name, &parameter, &param.type) == FAILURE) {
return;
}
}
@@ -1495,11 +1495,11 @@ PHP_METHOD(sqlite3stmt, execute)
switch (param->type) {
case SQLITE_INTEGER:
- convert_to_int(parameter);
-#if PHP_INT_MAX > 2147483647
- sqlite3_bind_int64(stmt_obj->stmt, param->param_number, Z_IVAL_P(parameter));
+ convert_to_long(parameter);
+#if ZEND_LONG_MAX > 2147483647
+ sqlite3_bind_int64(stmt_obj->stmt, param->param_number, Z_LVAL_P(parameter));
#else
- sqlite3_bind_int(stmt_obj->stmt, param->param_number, Z_IVAL_P(parameter));
+ sqlite3_bind_int(stmt_obj->stmt, param->param_number, Z_LVAL_P(parameter));
#endif
break;
@@ -1527,14 +1527,14 @@ PHP_METHOD(sqlite3stmt, execute)
sqlite3_bind_blob(stmt_obj->stmt, param->param_number, buffer->val, buffer->len, SQLITE_TRANSIENT);
if (stream) {
- STR_RELEASE(buffer);
+ zend_string_release(buffer);
}
break;
}
case SQLITE3_TEXT:
convert_to_string(parameter);
- sqlite3_bind_text(stmt_obj->stmt, param->param_number, Z_STRVAL_P(parameter), Z_STRSIZE_P(parameter), SQLITE_STATIC);
+ sqlite3_bind_text(stmt_obj->stmt, param->param_number, Z_STRVAL_P(parameter), Z_STRLEN_P(parameter), SQLITE_STATIC);
break;
case SQLITE_NULL:
@@ -1643,7 +1643,7 @@ PHP_METHOD(sqlite3result, numColumns)
return;
}
- RETURN_INT(sqlite3_column_count(result_obj->stmt_obj->stmt));
+ RETURN_LONG(sqlite3_column_count(result_obj->stmt_obj->stmt));
}
/* }}} */
@@ -1653,13 +1653,13 @@ PHP_METHOD(sqlite3result, columnName)
{
php_sqlite3_result *result_obj;
zval *object = getThis();
- php_int_t column = 0;
+ zend_long column = 0;
char *column_name;
result_obj = Z_SQLITE3_RESULT_P(object);
SQLITE3_CHECK_INITIALIZED(result_obj->db_obj, result_obj->stmt_obj->initialised, SQLite3Result)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &column) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &column) == FAILURE) {
return;
}
column_name = (char*) sqlite3_column_name(result_obj->stmt_obj->stmt, column);
@@ -1678,12 +1678,12 @@ PHP_METHOD(sqlite3result, columnType)
{
php_sqlite3_result *result_obj;
zval *object = getThis();
- php_int_t column = 0;
+ zend_long column = 0;
result_obj = Z_SQLITE3_RESULT_P(object);
SQLITE3_CHECK_INITIALIZED(result_obj->db_obj, result_obj->stmt_obj->initialised, SQLite3Result)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &column) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &column) == FAILURE) {
return;
}
@@ -1691,7 +1691,7 @@ PHP_METHOD(sqlite3result, columnType)
RETURN_FALSE;
}
- RETURN_INT(sqlite3_column_type(result_obj->stmt_obj->stmt, column));
+ RETURN_LONG(sqlite3_column_type(result_obj->stmt_obj->stmt, column));
}
/* }}} */
@@ -1702,12 +1702,12 @@ PHP_METHOD(sqlite3result, fetchArray)
php_sqlite3_result *result_obj;
zval *object = getThis();
int i, ret;
- php_int_t mode = PHP_SQLITE3_BOTH;
+ zend_long mode = PHP_SQLITE3_BOTH;
result_obj = Z_SQLITE3_RESULT_P(object);
SQLITE3_CHECK_INITIALIZED(result_obj->db_obj, result_obj->stmt_obj->initialised, SQLite3Result)
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|i", &mode) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &mode) == FAILURE) {
return;
}
@@ -2170,7 +2170,7 @@ static void sqlite3_param_dtor(zval *data) /* {{{ */
struct php_sqlite3_bound_param *param = (struct php_sqlite3_bound_param*)Z_PTR_P(data);
if (param->name) {
- STR_RELEASE(param->name);
+ zend_string_release(param->name);
}
if (!Z_ISNULL(param->parameter)) {
@@ -2225,19 +2225,19 @@ PHP_MINIT_FUNCTION(sqlite3)
REGISTER_INI_ENTRIES();
- REGISTER_INT_CONSTANT("SQLITE3_ASSOC", PHP_SQLITE3_ASSOC, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_NUM", PHP_SQLITE3_NUM, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_BOTH", PHP_SQLITE3_BOTH, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_ASSOC", PHP_SQLITE3_ASSOC, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_NUM", PHP_SQLITE3_NUM, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_BOTH", PHP_SQLITE3_BOTH, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_INTEGER", SQLITE_INTEGER, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_FLOAT", SQLITE_FLOAT, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_TEXT", SQLITE3_TEXT, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_BLOB", SQLITE_BLOB, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_NULL", SQLITE_NULL, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_INTEGER", SQLITE_INTEGER, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_FLOAT", SQLITE_FLOAT, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_TEXT", SQLITE3_TEXT, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_BLOB", SQLITE_BLOB, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_NULL", SQLITE_NULL, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_OPEN_READONLY", SQLITE_OPEN_READONLY, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_OPEN_READWRITE", SQLITE_OPEN_READWRITE, CONST_CS | CONST_PERSISTENT);
- REGISTER_INT_CONSTANT("SQLITE3_OPEN_CREATE", SQLITE_OPEN_CREATE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_OPEN_READONLY", SQLITE_OPEN_READONLY, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_OPEN_READWRITE", SQLITE_OPEN_READWRITE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLITE3_OPEN_CREATE", SQLITE_OPEN_CREATE, CONST_CS | CONST_PERSISTENT);
return SUCCESS;
}