From 479e4a6a12293c7cff757ac9b31902a219076d6e Mon Sep 17 00:00:00 2001
From: erititan <elemer.lelik@ericsson.com>
Date: Fri, 7 Aug 2015 13:22:10 +0200
Subject: [PATCH] Initial contribution

---
 TCCUsefulFunctions_CNL113472_Common.tpd       |   60 +
 TCCUsefulFunctions_CNL113472_IPsec.tpd        |   91 +
 TCCUsefulFunctions_CNL113472_Interface.tpd    |   44 +
 TCCUsefulFunctions_CNL113472_Maths.tpd        |   46 +
 ...nctions_CNL113472_PermutatedParameters.tpd |   50 +
 TCCUsefulFunctions_CNL113472_Regexp.tpd       |   46 +
 TCCUsefulFunctions_CNL113472_TitanSim.tpd     |   49 +
 TCCUsefulFunctions_CNL113472_XPath.tpd        |   54 +
 demo/TCCAssertion_Example.ttcn                |   37 +
 demo/TCCConversion_Example.ttcn               |  253 ++
 demo/TCCDateTime_Example.ttcn                 |  283 ++
 demo/TCCEncoding_Example.ttcn                 |  155 +
 demo/TCCEnv_Example.ttcn                      |   39 +
 demo/TCCFileIO_Example.ttcn                   |  331 ++
 demo/TCCFileSystem_Example.ttcn               |   82 +
 demo/TCCIPsec_Example.ttcn                    |  409 ++
 demo/TCCInterface_Example.ttcn                |  146 +
 demo/TCCMaths_Example.ttcn                    |  668 +++
 demo/TCCMessageHandling_Example.ttcn          |  101 +
 demo/TCCPermutatedParameters_Example.ttcn     |   68 +
 demo/TCCTemplate_Example.ttcn                 |   60 +
 demo/TCCTitanMetadata_Example.ttcn            |   47 +
 demo/TCCXPathSupport_Example.ttcn             |   45 +
 doc/TCCUsefulFunctions_CNL113472_1551.doc     |  Bin 0 -> 388608 bytes
 doc/TCCUsefulFunctions_CNL113472_PRI.doc      |  Bin 0 -> 139776 bytes
 doc/apidoc/Data/ClassHierarchy.nd             |  Bin 0 -> 7 bytes
 doc/apidoc/Data/ConfigFileInfo.nd             |  Bin 0 -> 26 bytes
 doc/apidoc/Data/FileInfo.nd                   |   41 +
 doc/apidoc/Data/ImageFileInfo.nd              |  Bin 0 -> 8 bytes
 doc/apidoc/Data/ImageReferenceTable.nd        |  Bin 0 -> 8 bytes
 doc/apidoc/Data/IndexInfo.nd                  |  Bin 0 -> 225 bytes
 doc/apidoc/Data/PreviousMenuState.nd          |  Bin 0 -> 4058 bytes
 doc/apidoc/Data/PreviousSettings.nd           |  Bin 0 -> 133 bytes
 doc/apidoc/Data/SymbolTable.nd                |  Bin 0 -> 84415 bytes
 doc/apidoc/Menu.txt                           |  165 +
 doc/apidoc/Menu.txt~                          |  165 +
 doc/apidoc/html/files/TCCAssertion-cc.html    |   56 +
 .../files/TCCAssertion_Functions-ttcn.html    |  121 +
 doc/apidoc/html/files/TCCConversion-cc.html   |  334 ++
 .../files/TCCConversion_Functions-ttcn.html   | 1155 +++++
 doc/apidoc/html/files/TCCDateTime-cc.html     |  483 ++
 .../files/TCCDateTime_Functions-ttcn.html     |  791 ++++
 doc/apidoc/html/files/TCCEncoding-cc.html     |  223 +
 .../files/TCCEncoding_Functions-ttcn.html     |  473 ++
 doc/apidoc/html/files/TCCEnv-cc.html          |  116 +
 .../html/files/TCCEnv_Functions-ttcn.html     |  180 +
 doc/apidoc/html/files/TCCFileIO-cc.html       |  863 ++++
 .../html/files/TCCFileIO_Functions-ttcn.html  | 1751 ++++++++
 .../files/TCCFileSystem_Functions-ttcn.html   |  245 ++
 .../html/files/TCCIPsec_Definitions-ttcn.html |  827 ++++
 .../html/files/TCCIPsec_Functions-ttcn.html   |  849 ++++
 doc/apidoc/html/files/TCCInterface-cc.html    |  382 ++
 .../files/TCCInterface_Functions-ttcn.html    |  911 ++++
 doc/apidoc/html/files/TCCMaths-cc.html        |  999 +++++
 .../html/files/TCCMaths_Functions-ttcn.html   | 2094 +++++++++
 .../files/TCCMaths_GenericTypes-ttcn.html     |  246 ++
 .../TCCMessageHandling_Functions-ttcn.html    |  200 +
 .../html/files/TCCRegexp_Functions-ttcn.html  |  199 +
 doc/apidoc/html/files/TCCSecurity-cc.html     |  856 ++++
 .../files/TCCSecurity_Functions-ttcn.html     | 1665 +++++++
 doc/apidoc/html/files/TCCSystem-cc.html       |   49 +
 .../html/files/TCCSystem_Functions-ttcn.html  |   49 +
 .../files/TCCTemplate_Functions-ttcn.html     |  216 +
 .../html/files/TCCTitanMetadata-cc.html       |   49 +
 .../TCCTitanMetadata_Functions-ttcn.html      |   98 +
 doc/apidoc/html/files/TCCUsefulFunctions.html |   49 +
 doc/apidoc/html/files/TCCXPathSupport-cc.html |   50 +
 .../files/TCCXPathSupport_Functions-ttcn.html |  129 +
 .../html/files/aka_algorythm_set-h.html       |  441 ++
 doc/apidoc/html/files/digcalc-h.html          |  208 +
 doc/apidoc/html/files/zuc-h.html              |  163 +
 doc/apidoc/html/index.html                    |   21 +
 doc/apidoc/html/index.html~                   |   21 +
 doc/apidoc/html/index/Constants.html          |   75 +
 doc/apidoc/html/index/Files.html              |  223 +
 doc/apidoc/html/index/Functions.html          |  199 +
 doc/apidoc/html/index/Functions2.html         | 3878 ++++++++++++++++
 doc/apidoc/html/index/Functions3.html         |  112 +
 doc/apidoc/html/index/General.html            |  253 ++
 doc/apidoc/html/index/General2.html           | 3920 +++++++++++++++++
 doc/apidoc/html/index/General3.html           |  578 +++
 doc/apidoc/html/index/Types.html              |  353 ++
 doc/apidoc/html/index/Variables.html          |   47 +
 doc/apidoc/html/javascript/main.js            |  836 ++++
 doc/apidoc/html/javascript/searchdata.js      |  182 +
 doc/apidoc/html/menu.html                     |  254 ++
 doc/apidoc/html/menu.html~                    |  254 ++
 doc/apidoc/html/search/ConstantsC.html        |   48 +
 doc/apidoc/html/search/ConstantsP.html        |   45 +
 doc/apidoc/html/search/FilesA.html            |   45 +
 doc/apidoc/html/search/FilesD.html            |   45 +
 doc/apidoc/html/search/FilesR.html            |   45 +
 doc/apidoc/html/search/FilesT.html            |  117 +
 doc/apidoc/html/search/FilesZ.html            |   45 +
 doc/apidoc/html/search/FunctionsB.html        |   45 +
 doc/apidoc/html/search/FunctionsC.html        |   48 +
 doc/apidoc/html/search/FunctionsD.html        |   60 +
 doc/apidoc/html/search/FunctionsE.html        |   60 +
 doc/apidoc/html/search/FunctionsF.html        |  867 ++++
 doc/apidoc/html/search/FunctionsK.html        |   45 +
 doc/apidoc/html/search/FunctionsM.html        |   45 +
 doc/apidoc/html/search/FunctionsR.html        |   48 +
 doc/apidoc/html/search/FunctionsS.html        |   45 +
 doc/apidoc/html/search/FunctionsX.html        |   48 +
 doc/apidoc/html/search/GeneralA.html          |   45 +
 doc/apidoc/html/search/GeneralB.html          |   48 +
 doc/apidoc/html/search/GeneralC.html          |   57 +
 doc/apidoc/html/search/GeneralD.html          |   63 +
 doc/apidoc/html/search/GeneralE.html          |   63 +
 doc/apidoc/html/search/GeneralF.html          |  901 ++++
 doc/apidoc/html/search/GeneralI.html          |   45 +
 doc/apidoc/html/search/GeneralK.html          |   45 +
 doc/apidoc/html/search/GeneralM.html          |   45 +
 doc/apidoc/html/search/GeneralO.html          |   45 +
 doc/apidoc/html/search/GeneralP.html          |   45 +
 doc/apidoc/html/search/GeneralR.html          |   51 +
 doc/apidoc/html/search/GeneralS.html          |   48 +
 doc/apidoc/html/search/GeneralT.html          |  189 +
 doc/apidoc/html/search/GeneralU.html          |   45 +
 doc/apidoc/html/search/GeneralV.html          |   48 +
 doc/apidoc/html/search/GeneralX.html          |   48 +
 doc/apidoc/html/search/GeneralZ.html          |   45 +
 doc/apidoc/html/search/NoResults.html         |   32 +
 doc/apidoc/html/search/TypesB.html            |   45 +
 doc/apidoc/html/search/TypesF.html            |   45 +
 doc/apidoc/html/search/TypesI.html            |   45 +
 doc/apidoc/html/search/TypesO.html            |   45 +
 doc/apidoc/html/search/TypesS.html            |   45 +
 doc/apidoc/html/search/TypesT.html            |  108 +
 doc/apidoc/html/search/TypesV.html            |   45 +
 doc/apidoc/html/search/VariablesU.html        |   45 +
 doc/apidoc/html/styles/1.css                  |  767 ++++
 doc/apidoc/html/styles/2.css                  |   45 +
 doc/apidoc/html/styles/main.css               |    2 +
 src/TCCAssertion.cc                           |   57 +
 src/TCCAssertion_Functions.ttcn               |   61 +
 src/TCCConversion.cc                          |  502 +++
 src/TCCConversion_Functions.ttcn              |  959 ++++
 src/TCCDateTime.cc                            |  443 ++
 src/TCCDateTime_Functions.ttcn                |  365 ++
 src/TCCEncoding.cc                            |  377 ++
 src/TCCEncoding_Functions.ttcn                |  735 ++++
 src/TCCEnv.cc                                 |   95 +
 src/TCCEnv_Functions.ttcn                     |   82 +
 src/TCCFileIO.cc                              | 1302 ++++++
 src/TCCFileIO_Functions.ttcn                  |  525 +++
 src/TCCFileSystem.cc                          |   59 +
 src/TCCFileSystem_Functions.ttcn              |  120 +
 src/TCCIPsec.cc                               |  795 ++++
 src/TCCIPsec_Definitions.ttcn                 |  636 +++
 src/TCCIPsec_Functions.ttcn                   |  221 +
 src/TCCInterface.cc                           | 1104 +++++
 src/TCCInterface_Functions.ttcn               |  359 ++
 src/TCCInterface_ip.h                         |  649 +++
 src/TCCMaths.cc                               |  936 ++++
 src/TCCMaths_Functions.ttcn                   |  937 ++++
 src/TCCMaths_GenericTypes.ttcn                |  145 +
 src/TCCMessageHandling.cc                     |  215 +
 src/TCCMessageHandling_Functions.ttcn         |   90 +
 src/TCCPermutatedParameters_Definitions.ttcn  |  161 +
 src/TCCPermutatedParameters_Functions.ttcn    |  910 ++++
 src/TCCRegexp.cc                              |   92 +
 src/TCCRegexp_Functions.ttcn                  |  107 +
 src/TCCSystem.cc                              |   47 +
 src/TCCSystem_Functions.ttcn                  |   41 +
 src/TCCTemplate_Functions.ttcn                |  251 ++
 src/TCCTitanMetadata.cc                       |   50 +
 src/TCCTitanMetadata_Functions.ttcn           |   62 +
 src/TCCUsefulFunctions_Library.grp            |   63 +
 ...CCUsefulFunctions_PermutatedParameters.grp |   25 +
 src/TCCXPathSupport.cc                        |  124 +
 src/TCCXPathSupport_Functions.ttcn            |  103 +
 172 files changed, 50912 insertions(+)
 create mode 100644 TCCUsefulFunctions_CNL113472_Common.tpd
 create mode 100644 TCCUsefulFunctions_CNL113472_IPsec.tpd
 create mode 100644 TCCUsefulFunctions_CNL113472_Interface.tpd
 create mode 100644 TCCUsefulFunctions_CNL113472_Maths.tpd
 create mode 100644 TCCUsefulFunctions_CNL113472_PermutatedParameters.tpd
 create mode 100644 TCCUsefulFunctions_CNL113472_Regexp.tpd
 create mode 100644 TCCUsefulFunctions_CNL113472_TitanSim.tpd
 create mode 100644 TCCUsefulFunctions_CNL113472_XPath.tpd
 create mode 100644 demo/TCCAssertion_Example.ttcn
 create mode 100644 demo/TCCConversion_Example.ttcn
 create mode 100644 demo/TCCDateTime_Example.ttcn
 create mode 100644 demo/TCCEncoding_Example.ttcn
 create mode 100644 demo/TCCEnv_Example.ttcn
 create mode 100644 demo/TCCFileIO_Example.ttcn
 create mode 100644 demo/TCCFileSystem_Example.ttcn
 create mode 100644 demo/TCCIPsec_Example.ttcn
 create mode 100644 demo/TCCInterface_Example.ttcn
 create mode 100644 demo/TCCMaths_Example.ttcn
 create mode 100644 demo/TCCMessageHandling_Example.ttcn
 create mode 100644 demo/TCCPermutatedParameters_Example.ttcn
 create mode 100644 demo/TCCTemplate_Example.ttcn
 create mode 100644 demo/TCCTitanMetadata_Example.ttcn
 create mode 100644 demo/TCCXPathSupport_Example.ttcn
 create mode 100644 doc/TCCUsefulFunctions_CNL113472_1551.doc
 create mode 100644 doc/TCCUsefulFunctions_CNL113472_PRI.doc
 create mode 100755 doc/apidoc/Data/ClassHierarchy.nd
 create mode 100755 doc/apidoc/Data/ConfigFileInfo.nd
 create mode 100755 doc/apidoc/Data/FileInfo.nd
 create mode 100755 doc/apidoc/Data/ImageFileInfo.nd
 create mode 100755 doc/apidoc/Data/ImageReferenceTable.nd
 create mode 100755 doc/apidoc/Data/IndexInfo.nd
 create mode 100755 doc/apidoc/Data/PreviousMenuState.nd
 create mode 100755 doc/apidoc/Data/PreviousSettings.nd
 create mode 100755 doc/apidoc/Data/SymbolTable.nd
 create mode 100755 doc/apidoc/Menu.txt
 create mode 100644 doc/apidoc/Menu.txt~
 create mode 100644 doc/apidoc/html/files/TCCAssertion-cc.html
 create mode 100644 doc/apidoc/html/files/TCCAssertion_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCConversion-cc.html
 create mode 100644 doc/apidoc/html/files/TCCConversion_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCDateTime-cc.html
 create mode 100644 doc/apidoc/html/files/TCCDateTime_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCEncoding-cc.html
 create mode 100644 doc/apidoc/html/files/TCCEncoding_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCEnv-cc.html
 create mode 100644 doc/apidoc/html/files/TCCEnv_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCFileIO-cc.html
 create mode 100644 doc/apidoc/html/files/TCCFileIO_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCFileSystem_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCIPsec_Definitions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCIPsec_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCInterface-cc.html
 create mode 100644 doc/apidoc/html/files/TCCInterface_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCMaths-cc.html
 create mode 100644 doc/apidoc/html/files/TCCMaths_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCMaths_GenericTypes-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCMessageHandling_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCRegexp_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCSecurity-cc.html
 create mode 100644 doc/apidoc/html/files/TCCSecurity_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCSystem-cc.html
 create mode 100644 doc/apidoc/html/files/TCCSystem_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCTemplate_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCTitanMetadata-cc.html
 create mode 100644 doc/apidoc/html/files/TCCTitanMetadata_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/TCCUsefulFunctions.html
 create mode 100644 doc/apidoc/html/files/TCCXPathSupport-cc.html
 create mode 100644 doc/apidoc/html/files/TCCXPathSupport_Functions-ttcn.html
 create mode 100644 doc/apidoc/html/files/aka_algorythm_set-h.html
 create mode 100644 doc/apidoc/html/files/digcalc-h.html
 create mode 100644 doc/apidoc/html/files/zuc-h.html
 create mode 100644 doc/apidoc/html/index.html
 create mode 100644 doc/apidoc/html/index.html~
 create mode 100644 doc/apidoc/html/index/Constants.html
 create mode 100644 doc/apidoc/html/index/Files.html
 create mode 100644 doc/apidoc/html/index/Functions.html
 create mode 100644 doc/apidoc/html/index/Functions2.html
 create mode 100644 doc/apidoc/html/index/Functions3.html
 create mode 100644 doc/apidoc/html/index/General.html
 create mode 100644 doc/apidoc/html/index/General2.html
 create mode 100644 doc/apidoc/html/index/General3.html
 create mode 100644 doc/apidoc/html/index/Types.html
 create mode 100644 doc/apidoc/html/index/Variables.html
 create mode 100755 doc/apidoc/html/javascript/main.js
 create mode 100755 doc/apidoc/html/javascript/searchdata.js
 create mode 100644 doc/apidoc/html/menu.html
 create mode 100644 doc/apidoc/html/menu.html~
 create mode 100644 doc/apidoc/html/search/ConstantsC.html
 create mode 100644 doc/apidoc/html/search/ConstantsP.html
 create mode 100644 doc/apidoc/html/search/FilesA.html
 create mode 100644 doc/apidoc/html/search/FilesD.html
 create mode 100644 doc/apidoc/html/search/FilesR.html
 create mode 100644 doc/apidoc/html/search/FilesT.html
 create mode 100644 doc/apidoc/html/search/FilesZ.html
 create mode 100644 doc/apidoc/html/search/FunctionsB.html
 create mode 100644 doc/apidoc/html/search/FunctionsC.html
 create mode 100644 doc/apidoc/html/search/FunctionsD.html
 create mode 100644 doc/apidoc/html/search/FunctionsE.html
 create mode 100644 doc/apidoc/html/search/FunctionsF.html
 create mode 100644 doc/apidoc/html/search/FunctionsK.html
 create mode 100644 doc/apidoc/html/search/FunctionsM.html
 create mode 100644 doc/apidoc/html/search/FunctionsR.html
 create mode 100644 doc/apidoc/html/search/FunctionsS.html
 create mode 100644 doc/apidoc/html/search/FunctionsX.html
 create mode 100644 doc/apidoc/html/search/GeneralA.html
 create mode 100644 doc/apidoc/html/search/GeneralB.html
 create mode 100644 doc/apidoc/html/search/GeneralC.html
 create mode 100644 doc/apidoc/html/search/GeneralD.html
 create mode 100644 doc/apidoc/html/search/GeneralE.html
 create mode 100644 doc/apidoc/html/search/GeneralF.html
 create mode 100644 doc/apidoc/html/search/GeneralI.html
 create mode 100644 doc/apidoc/html/search/GeneralK.html
 create mode 100644 doc/apidoc/html/search/GeneralM.html
 create mode 100644 doc/apidoc/html/search/GeneralO.html
 create mode 100644 doc/apidoc/html/search/GeneralP.html
 create mode 100644 doc/apidoc/html/search/GeneralR.html
 create mode 100644 doc/apidoc/html/search/GeneralS.html
 create mode 100644 doc/apidoc/html/search/GeneralT.html
 create mode 100644 doc/apidoc/html/search/GeneralU.html
 create mode 100644 doc/apidoc/html/search/GeneralV.html
 create mode 100644 doc/apidoc/html/search/GeneralX.html
 create mode 100644 doc/apidoc/html/search/GeneralZ.html
 create mode 100644 doc/apidoc/html/search/NoResults.html
 create mode 100644 doc/apidoc/html/search/TypesB.html
 create mode 100644 doc/apidoc/html/search/TypesF.html
 create mode 100644 doc/apidoc/html/search/TypesI.html
 create mode 100644 doc/apidoc/html/search/TypesO.html
 create mode 100644 doc/apidoc/html/search/TypesS.html
 create mode 100644 doc/apidoc/html/search/TypesT.html
 create mode 100644 doc/apidoc/html/search/TypesV.html
 create mode 100644 doc/apidoc/html/search/VariablesU.html
 create mode 100755 doc/apidoc/html/styles/1.css
 create mode 100755 doc/apidoc/html/styles/2.css
 create mode 100755 doc/apidoc/html/styles/main.css
 create mode 100644 src/TCCAssertion.cc
 create mode 100644 src/TCCAssertion_Functions.ttcn
 create mode 100644 src/TCCConversion.cc
 create mode 100644 src/TCCConversion_Functions.ttcn
 create mode 100644 src/TCCDateTime.cc
 create mode 100644 src/TCCDateTime_Functions.ttcn
 create mode 100644 src/TCCEncoding.cc
 create mode 100644 src/TCCEncoding_Functions.ttcn
 create mode 100644 src/TCCEnv.cc
 create mode 100644 src/TCCEnv_Functions.ttcn
 create mode 100644 src/TCCFileIO.cc
 create mode 100644 src/TCCFileIO_Functions.ttcn
 create mode 100644 src/TCCFileSystem.cc
 create mode 100644 src/TCCFileSystem_Functions.ttcn
 create mode 100644 src/TCCIPsec.cc
 create mode 100644 src/TCCIPsec_Definitions.ttcn
 create mode 100644 src/TCCIPsec_Functions.ttcn
 create mode 100644 src/TCCInterface.cc
 create mode 100644 src/TCCInterface_Functions.ttcn
 create mode 100644 src/TCCInterface_ip.h
 create mode 100644 src/TCCMaths.cc
 create mode 100644 src/TCCMaths_Functions.ttcn
 create mode 100644 src/TCCMaths_GenericTypes.ttcn
 create mode 100644 src/TCCMessageHandling.cc
 create mode 100644 src/TCCMessageHandling_Functions.ttcn
 create mode 100644 src/TCCPermutatedParameters_Definitions.ttcn
 create mode 100644 src/TCCPermutatedParameters_Functions.ttcn
 create mode 100644 src/TCCRegexp.cc
 create mode 100644 src/TCCRegexp_Functions.ttcn
 create mode 100644 src/TCCSystem.cc
 create mode 100644 src/TCCSystem_Functions.ttcn
 create mode 100644 src/TCCTemplate_Functions.ttcn
 create mode 100644 src/TCCTitanMetadata.cc
 create mode 100644 src/TCCTitanMetadata_Functions.ttcn
 create mode 100644 src/TCCUsefulFunctions_Library.grp
 create mode 100644 src/TCCUsefulFunctions_PermutatedParameters.grp
 create mode 100644 src/TCCXPathSupport.cc
 create mode 100644 src/TCCXPathSupport_Functions.ttcn

diff --git a/TCCUsefulFunctions_CNL113472_Common.tpd b/TCCUsefulFunctions_CNL113472_Common.tpd
new file mode 100644
index 0000000..2314c04
--- /dev/null
+++ b/TCCUsefulFunctions_CNL113472_Common.tpd
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+  The copyright to the computer  program(s) herein  is the property of Ericsson.
+  The program(s) may be used and/or copied only with the written permission
+  of Ericsson or in accordance with  the terms and conditions  stipulated in the
+  agreement/contract under which the program(s) has been supplied.
+
+
+   File:               TCCUsefulFunctions_CNL113472_Common.tpd
+   Description:        tpd project file
+   Rev:                R22B
+   Prodnr:             CNL 113 472
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_Common</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCConversion.cc" relativeURI="src/TCCConversion.cc"/>
+    <FileResource projectRelativePath="TCCConversion_Functions.ttcn" relativeURI="src/TCCConversion_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCDateTime.cc" relativeURI="src/TCCDateTime.cc"/>
+    <FileResource projectRelativePath="TCCDateTime_Functions.ttcn" relativeURI="src/TCCDateTime_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCEncoding.cc" relativeURI="src/TCCEncoding.cc"/>
+    <FileResource projectRelativePath="TCCEncoding_Functions.ttcn" relativeURI="src/TCCEncoding_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCEnv.cc" relativeURI="src/TCCEnv.cc"/>
+    <FileResource projectRelativePath="TCCEnv_Functions.ttcn" relativeURI="src/TCCEnv_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCFileIO.cc" relativeURI="src/TCCFileIO.cc"/>
+    <FileResource projectRelativePath="TCCFileIO_Functions.ttcn" relativeURI="src/TCCFileIO_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCMessageHandling.cc" relativeURI="src/TCCMessageHandling.cc"/>
+    <FileResource projectRelativePath="TCCMessageHandling_Functions.ttcn" relativeURI="src/TCCMessageHandling_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCSystem.cc" relativeURI="src/TCCSystem.cc"/>
+    <FileResource projectRelativePath="TCCSystem_Functions.ttcn" relativeURI="src/TCCSystem_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCFileSystem.cc" relativeURI="src/TCCFileSystem.cc"/>
+    <FileResource projectRelativePath="TCCFileSystem_Functions.ttcn" relativeURI="src/TCCFileSystem_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCTitanMetadata.cc" relativeURI="src/TCCTitanMetadata.cc"/>
+    <FileResource projectRelativePath="TCCTitanMetadata_Functions.ttcn" relativeURI="src/TCCTitanMetadata_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Common</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/TCCUsefulFunctions_CNL113472_IPsec.tpd b/TCCUsefulFunctions_CNL113472_IPsec.tpd
new file mode 100644
index 0000000..961e065
--- /dev/null
+++ b/TCCUsefulFunctions_CNL113472_IPsec.tpd
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+  The copyright to the computer  program(s) herein  is the property of Ericsson.
+  The program(s) may be used and/or copied only with the written permission
+  of Ericsson or in accordance with  the terms and conditions  stipulated in the
+  agreement/contract under which the program(s) has been supplied.
+
+
+   File:               TCCUsefulFunctions_CNL113472_IPsec.tpd
+   Description:        tpd project file
+   Rev:                R22B
+   Prodnr:             CNL 113 472
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_IPsec</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCIPsec.cc" relativeURI="src/TCCIPsec.cc"/>
+    <FileResource projectRelativePath="TCCIPsec_Definitions.ttcn" relativeURI="src/TCCIPsec_Definitions.ttcn"/>
+    <FileResource projectRelativePath="TCCIPsec_Functions.ttcn" relativeURI="src/TCCIPsec_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>KAME_IPSEC</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_IPsec</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="IPSEC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_IPsec</targetExecutable>
+          <preprocessorDefines>
+            <listItem>USE_IPSEC</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="KAME_IPSEC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_IPsec</targetExecutable>
+          <preprocessorDefines>
+            <listItem>USE_KAME_IPSEC</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/TCCUsefulFunctions_CNL113472_Interface.tpd b/TCCUsefulFunctions_CNL113472_Interface.tpd
new file mode 100644
index 0000000..ce108f5
--- /dev/null
+++ b/TCCUsefulFunctions_CNL113472_Interface.tpd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+  The copyright to the computer  program(s) herein  is the property of Ericsson.
+  The program(s) may be used and/or copied only with the written permission
+  of Ericsson or in accordance with  the terms and conditions  stipulated in the
+  agreement/contract under which the program(s) has been supplied.
+
+
+   File:               TCCUsefulFunctions_CNL113472_Interface.tpd
+   Description:        tpd project file
+   Rev:                R22B
+   Prodnr:             CNL 113 472
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_Interface</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCInterface.cc" relativeURI="src/TCCInterface.cc"/>
+    <FileResource projectRelativePath="TCCInterface_Functions.ttcn" relativeURI="src/TCCInterface_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCInterface_ip.h" relativeURI="src/TCCInterface_ip.h"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Interface</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/TCCUsefulFunctions_CNL113472_Maths.tpd b/TCCUsefulFunctions_CNL113472_Maths.tpd
new file mode 100644
index 0000000..def398a
--- /dev/null
+++ b/TCCUsefulFunctions_CNL113472_Maths.tpd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+  The copyright to the computer  program(s) herein  is the property of Ericsson.
+  The program(s) may be used and/or copied only with the written permission
+  of Ericsson or in accordance with  the terms and conditions  stipulated in the
+  agreement/contract under which the program(s) has been supplied.
+
+
+   File:               TCCUsefulFunctions_CNL113472_Maths.tpd
+   Description:        tpd project file
+   Rev:                R22B
+   Prodnr:             CNL 113 472
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_Maths</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCMaths.cc" relativeURI="src/TCCMaths.cc"/>
+    <FileResource projectRelativePath="TCCMaths_Functions.ttcn" relativeURI="src/TCCMaths_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCMaths_GenericTypes.ttcn" relativeURI="src/TCCMaths_GenericTypes.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Maths</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/TCCUsefulFunctions_CNL113472_PermutatedParameters.tpd b/TCCUsefulFunctions_CNL113472_PermutatedParameters.tpd
new file mode 100644
index 0000000..4868d87
--- /dev/null
+++ b/TCCUsefulFunctions_CNL113472_PermutatedParameters.tpd
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+  The copyright to the computer  program(s) herein  is the property of Ericsson.
+  The program(s) may be used and/or copied only with the written permission
+  of Ericsson or in accordance with  the terms and conditions  stipulated in the
+  agreement/contract under which the program(s) has been supplied.
+
+
+   File:               TCCUsefulFunctions_CNL113472_PermutatedParameters.tpd
+   Description:        tpd project file
+   Rev:                R22B
+   Prodnr:             CNL 113 472
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_PermutatedParameters</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="TCCUsefulFunctions_CNL113472_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="TCCPermutatedParameters_Definitions.ttcn" relativeURI="src/TCCPermutatedParameters_Definitions.ttcn"/>
+    <FileResource projectRelativePath="TCCPermutatedParameters_Functions.ttcn" relativeURI="src/TCCPermutatedParameters_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Common</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/TCCUsefulFunctions_CNL113472_Regexp.tpd b/TCCUsefulFunctions_CNL113472_Regexp.tpd
new file mode 100644
index 0000000..ded064f
--- /dev/null
+++ b/TCCUsefulFunctions_CNL113472_Regexp.tpd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+  The copyright to the computer  program(s) herein  is the property of Ericsson.
+  The program(s) may be used and/or copied only with the written permission
+  of Ericsson or in accordance with  the terms and conditions  stipulated in the
+  agreement/contract under which the program(s) has been supplied.
+
+
+   File:               TCCUsefulFunctions_CNL113472_Regexp.tpd
+   Description:        tpd project file
+   Rev:                R22B
+   Prodnr:             CNL 113 472
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_Regexp</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCRegexp.cc" relativeURI="src/TCCRegexp.cc"/>
+    <FileResource projectRelativePath="TCCRegexp_Functions.ttcn" relativeURI="src/TCCRegexp_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Regexp</targetExecutable>
+          <linkerLibraries>
+            <listItem>pcre</listItem>
+          </linkerLibraries>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/TCCUsefulFunctions_CNL113472_TitanSim.tpd b/TCCUsefulFunctions_CNL113472_TitanSim.tpd
new file mode 100644
index 0000000..02def4c
--- /dev/null
+++ b/TCCUsefulFunctions_CNL113472_TitanSim.tpd
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+  The copyright to the computer  program(s) herein  is the property of Ericsson.
+  The program(s) may be used and/or copied only with the written permission
+  of Ericsson or in accordance with  the terms and conditions  stipulated in the
+  agreement/contract under which the program(s) has been supplied.
+
+
+   File:               TCCUsefulFunctions_CNL113472_TitanSim.tpd
+   Description:        tpd project file
+   Rev:                R22B
+   Prodnr:             CNL 113 472
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_TitanSim</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="TCCUsefulFunctions_CNL113472_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="TCCAssertion.cc" relativeURI="src/TCCAssertion.cc"/>
+    <FileResource projectRelativePath="TCCAssertion_Functions.ttcn" relativeURI="src/TCCAssertion_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCTemplate_Functions.ttcn" relativeURI="src/TCCTemplate_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_TitanSim</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/TCCUsefulFunctions_CNL113472_XPath.tpd b/TCCUsefulFunctions_CNL113472_XPath.tpd
new file mode 100644
index 0000000..809efac
--- /dev/null
+++ b/TCCUsefulFunctions_CNL113472_XPath.tpd
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2015 Ericsson
+
+  The copyright to the computer  program(s) herein  is the property of Ericsson.
+  The program(s) may be used and/or copied only with the written permission
+  of Ericsson or in accordance with  the terms and conditions  stipulated in the
+  agreement/contract under which the program(s) has been supplied.
+
+
+   File:               TCCUsefulFunctions_CNL113472_XPath.tpd
+   Description:        tpd project file
+   Rev:                R22B
+   Prodnr:             CNL 113 472
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_XPath</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCXPathSupport.cc" relativeURI="src/TCCXPathSupport.cc"/>
+    <FileResource projectRelativePath="TCCXPathSupport_Functions.ttcn" relativeURI="src/TCCXPathSupport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_XPath</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[TINY_XPATH_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>tinyxpath</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[TINY_XPATH_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/demo/TCCAssertion_Example.ttcn b/demo/TCCAssertion_Example.ttcn
new file mode 100644
index 0000000..436e24a
--- /dev/null
+++ b/demo/TCCAssertion_Example.ttcn
@@ -0,0 +1,37 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCAssertion_Example.ttcn
+//  Description:        TCC Useful Functions: Assertion Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-11-14
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////
+
+module TCCAssertion_Example
+{
+
+import from TCCAssertion_Functions all;
+
+type component Assertion_CT
+{
+}
+
+//////////////////////////////////////////////////////////////
+// Asssert functions
+//////////////////////////////////////////////////////////////
+
+control
+{
+  log(" ----####--- NO Assertion tests executed ----####--- ");
+}
+
+}
diff --git a/demo/TCCConversion_Example.ttcn b/demo/TCCConversion_Example.ttcn
new file mode 100644
index 0000000..34cf117
--- /dev/null
+++ b/demo/TCCConversion_Example.ttcn
@@ -0,0 +1,253 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCConversion_Example.ttcn
+//  Description:        TCC Useful Functions: Conversion Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-09-24
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////
+
+module TCCConversion_Example
+{
+
+import from TCCConversion_Functions all;
+
+type component Conversion_CT
+{
+  // conversion
+  var octetstring base := int2oct(3,  1);
+  var octetstring delta := int2oct(7, 1);
+  var octetstring result;
+  
+  var charstring tw := "tWiNKy WINkY";
+  var charstring replacestr := "AaACCCAaABbB";
+
+  var charstring twLo := "twinky winky";
+  var charstring twUp := "TWINKY WINKY";
+
+  var charstring rStr1 := "DdDCCCAaABbB";
+  var charstring rStr2 := "DdDCCCDdDBbB";
+  var charstring rStr3 := "<3A>CCCAaABbB";
+  var charstring rStr4 := "<3A>CCC<3A>BbB";
+
+  var charstring tmpStr;
+
+  var integer tmpInt;
+  var integer octAdd := 10;
+  var integer octSub := 252; // no negative numbers
+  var integer octComp := 2; // second is greater
+}
+
+//////////////////////////////////////////////////////////////
+// Conversion functions
+//////////////////////////////////////////////////////////////
+
+// test f_putInUppercase testcase
+testcase f_test_uppercase() runs on Conversion_CT
+{ 
+  log(" ----------- f_putInUppercase ----------- ");
+  tmpStr := f_putInUppercase(tw);
+  log(tw, " to uppercase: ", tmpStr);
+  
+  if (tmpStr == twUp) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_putInLowercase testcase
+testcase f_test_lowercase() runs on Conversion_CT
+{
+  log(" ----------- f_putInLowercase ----------- ");
+  tmpStr := f_putInLowercase(tw);
+  log(tw, " to lowercase: ", tmpStr); 
+
+  if (tmpStr == twLo) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test unichar2charstr conversion and backwards
+testcase f_test_uniconv() runs on Conversion_CT
+{
+  log(" ----------- f_unichar2charstr/f_charstr2unichar ----------- ");
+  log("Original string: ", tw);
+  log("Converted to unichar: ", f_charstr2unichar(tw));
+  tmpStr := f_unichar2charstr(f_charstr2unichar(tw));
+  log("Converted back to charstring: ", tmpStr);
+
+  // only backward conversion check
+  if (tw == tmpStr)  { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_replaceFirstOccurenceOfSubstring testcase
+testcase f_test_replacefirstoccuranceofstring() runs on Conversion_CT
+{
+  log(" ----------- f_replaceFirstOccurenceOfSubstring ----------- ");
+  log("Original string: ", replacestr);
+  tmpStr := 
+    f_replaceFirstOccurenceOfSubstring(replacestr, "AaA", "DdD");
+  log("Replace first occurence of AaA to DdD: ", tmpStr);
+
+  if (tmpStr == rStr1)  { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_replaceFirstOccurenceOfSubstring testcase
+testcase f_test_replaceeveryoccurenceofsubstring() runs on Conversion_CT
+{
+  log(" ----------- f_replaceEveryOccurenceOfSubstring ----------- ");
+  log("Original string: ", replacestr);
+  tmpStr := 
+    f_replaceEveryOccurenceOfSubstring(replacestr, "AaA", "DdD");
+  log("Replace every occurence of AaA to DdD: ", tmpStr); 
+
+  if (tmpStr == rStr2)  { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+testcase f_test_HM83229() runs on Conversion_CT
+{
+  var charstring ch:= "sip:annc@192.168.73.1:5068;play=http:%2F%2FextMrfc.ericsson.com%2Fplay%2F1";
+  log(" ----------- f_test_HM83229 ----------- ");
+  log("Original string: ", ch);
+  tmpStr := 
+    f_replaceEveryOccurenceOfSubstring(replacestr, "%2F", "/");
+  log("Replace every occurence of %2F to /: ", tmpStr); 
+
+  if (tmpStr == "sip:annc@192.168.73.1:5068;play=http://extMrfc.ericsson.com/play/1")  { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+
+// test f_replaceFirstOccurenceOfSubstring testcase
+testcase f_test_replacefirstoccuranceofpattern() runs on Conversion_CT
+{
+  log(" ----------- f_replaceFirstOccurenceOfPattern ----------- ");
+  log("Original string: ", replacestr);
+  tmpStr := 
+    f_replaceFirstOccurenceOfPattern(replacestr, "*([Aa]#(3,3))*", "<3A>");
+  log("Replace first occurence of *([Aa]#(3,3))* to <3A>: ", tmpStr);
+
+  if (tmpStr == rStr3)  { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_replaceFirstOccurenceOfSubstring testcase
+testcase f_test_replaceeverytoccuranceofpattern() runs on Conversion_CT
+{
+  log(" ----------- f_replaceEveryOccurenceOfPattern ----------- ");
+  log("Original string: ", replacestr);
+  tmpStr := 
+    f_replaceEveryOccurenceOfPattern(replacestr, "*([Aa]#(3,3))*", "<3A>");
+  log("Replace every occurence of *([Aa]#(3,3))* to <3A>: ", tmpStr); 
+
+  if (tmpStr == rStr4)  { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_addOctetstring testcase
+testcase f_test_addOctetstring() runs on Conversion_CT
+{
+  log("----------- f_addOctetstring() ---------");
+  result := f_addOctetstring(base, delta);
+  log(" result = ", result);
+  tmpInt := oct2int(result)
+  log(" int result = ", tmpInt);   
+
+  if (tmpInt == octAdd) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_subOctetstring testcase
+testcase f_test_subOctetstring() runs on Conversion_CT
+{
+  log("----------- f_subOctetstring() --------");
+  result := f_subOctetstring(base, delta);
+  log(" result = ", result);
+  tmpInt := oct2int(result);
+  log(" int result = ", tmpInt);   
+
+  if (tmpInt == octSub) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_compOctetstring testcase
+testcase f_test_compOctetstring() runs on Conversion_CT
+{
+  log("----------- f_compOctetstring() --------");
+  tmpInt := f_compOctetstring(base, delta);
+  log(" result_int = ", tmpInt);   
+
+  if (tmpInt == octComp) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_IPv6CreateLiteral testcase 
+testcase f_test_IPv6CreateLiteral() runs on Conversion_CT
+{
+  log("----------- f_IPv6CreateLiteral() --------");
+  var charstring v_IPv6Address := "3ffe:1900:4545:3:200:f8ff:fe21:67cf";
+  var charstring v_IPv6Address_Literal := f_IPv6CreateLiteral(v_IPv6Address);
+  
+  if (v_IPv6Address_Literal == ("[" & v_IPv6Address  & "]")) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+testcase f_test_isWhitespace() runs on Conversion_CT
+{
+  log("----------- f_isWhiteSpace() ----------");
+  var charstring v_whitespace1 := " ";
+  var charstring v_whitespace2 := "\n \t \r";
+  var charstring v_emptystring := "";
+  var charstring v_notwhitespace := "notwhitespace";
+  
+  if (f_isWhiteSpace(v_whitespace1)) { setverdict(pass); }
+  else { setverdict(fail); }
+  
+  if (f_isWhiteSpace(v_whitespace2)) { setverdict(pass); }
+  else { setverdict(fail); }
+  
+  if (f_isWhiteSpace(v_emptystring)) { setverdict(fail); }
+  else { setverdict(pass); }
+  
+  if (f_isWhiteSpace(v_notwhitespace)) { setverdict(fail); }
+  else { setverdict(pass); }
+  
+}
+
+
+
+// execute all conversion tests
+control
+{
+  log(" ################### Conversion ################### ");
+
+  execute(f_test_uppercase());
+  execute(f_test_lowercase());
+  execute(f_test_uniconv());
+  execute(f_test_replacefirstoccuranceofstring());
+  execute(f_test_replaceeveryoccurenceofsubstring());
+  execute(f_test_HM83229());
+  execute(f_test_replacefirstoccuranceofpattern());
+  execute(f_test_replaceeverytoccuranceofpattern());
+
+  execute(f_test_addOctetstring());
+  execute(f_test_subOctetstring());
+  execute(f_test_compOctetstring());
+  execute(f_test_IPv6CreateLiteral());
+  execute(f_test_isWhitespace());
+}
+
+}//end of module
+with {
+extension "version R22B"
+}
+
diff --git a/demo/TCCDateTime_Example.ttcn b/demo/TCCDateTime_Example.ttcn
new file mode 100644
index 0000000..14f7110
--- /dev/null
+++ b/demo/TCCDateTime_Example.ttcn
@@ -0,0 +1,283 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCDateTime_Example.ttcn
+//  Description:        TCC Useful testcases: DateTime testcases.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2011-05-30
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////
+
+module TCCDateTime_Example
+{
+
+import from TCCDateTime_Functions all;
+
+type component DateTime_CT
+{
+  var integer tictac;
+  var float time;
+}
+
+//////////////////////////////////////////////////////////////
+// DateTime testcases
+//////////////////////////////////////////////////////////////
+
+// test f_time testcase
+testcase f_test_time() runs on DateTime_CT
+{
+  log(" ----------- f_time ----------- ");
+  log("Time (f_time): ", f_time());    
+
+  // no check
+  setverdict(pass);
+}
+
+// test f_ctime testcase
+testcase f_test_ctime() runs on DateTime_CT
+{
+  log(" ----------- f_ctime ----------- ");
+  log("CTime (f_ctime) - an hour before: ", 
+    f_ctime(f_time() - 3600)); 
+
+  log("CTime (f_ctime) - large integer test: ", f_ctime(2200220022));
+    
+  // no check
+  setverdict(pass);
+}
+
+// test f_time2str testcase
+testcase f_test_getTimeFormatted() runs on DateTime_CT
+{
+  log(" ----------- f_getTimeFormatted ----------- ");
+  log("TimeFormatted (f_getTimeFormatted): ", 
+    f_getTimeFormatted(f_time(),"Now is %m %I:%M%p."));
+  log("TimeFormatted (f_getTimeFormatted) - large integer test: ", 
+    f_getTimeFormatted(2200220022," is %Y.%m %I:%M%p."));      
+
+  // no check
+  setverdict(pass);
+}
+
+// test f_time2sec testcase
+testcase f_test_time2sec() runs on DateTime_CT
+{
+  log(" ----------- f_time2sec ----------- ");
+  log("Time2Sec (f_time2sec): ", 
+    f_time2sec(2010,5,24,17,0,20));    
+
+  var integer t1 := f_time2sec(2050,5,5,0,0,0);
+  var integer t2 := f_time2sec(2050,5,5,0,0,30);
+  log("Time2Sec (f_time2sec) - large integer test: ", t1, ", ", t2);
+  
+  // no check
+  setverdict(pass);
+}
+
+// test f_getDate testcase
+testcase f_test_getCurrentDateWithOffset() runs on DateTime_CT
+{
+  log(" ----------- f_getCurrentDateWithOffset ----------- ");
+  log("Date (f_getDateFromSeconds): ", 
+    f_getCurrentDateWithOffset(0));    
+
+  log("Date (f_getDateFromSeconds) - large integer test: ", 
+    f_getCurrentDateWithOffset(2200220022));    
+
+  // no check
+  setverdict(pass);
+}
+
+// test f_getCurrentGMTDate testcase
+testcase f_test_getCurrentGMTDate() runs on DateTime_CT
+{
+  log(" ----------- f_getCurrentGMTDate ----------- ");
+  log("GMT Date (f_getCurrentGMTDate): ", 
+    f_getCurrentGMTDate());    
+
+  // no check
+  setverdict(pass);
+}
+
+// test f_tic testcase
+testcase f_test_tic() runs on DateTime_CT
+{
+  log(" ----------- f_tic ----------- ");
+
+  tictac := f_tic();
+
+  var integer a := 0;
+  for (var integer i := 0; i < 1000000; i := i + 1)
+  {
+    a := a + 1;
+  }
+  
+  tictac := f_tic();
+  log("Tics since program start (f_tic): ", tictac);
+
+  // check only that at least one tic has been made
+  if (tictac > 0) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_toc testcase
+testcase f_test_toc() runs on DateTime_CT
+{
+  log(" ----------- f_toc ----------- ");
+
+  timer T_timer := 2.0;
+  var integer vl_start;
+
+  vl_start := f_tic();
+  T_timer.start;
+  T_timer.timeout;
+
+  var integer a := 0;
+  for (var integer i := 0; i < 1000000; i := i + 1)
+  {
+    a := a + 1;
+  }
+
+  time := f_toc(vl_start);
+  log("Seconds since vl_start (f_toc): ", time);    
+
+  // approx 2 seconds has elapsed sinece last tic
+  if (time > 0.0) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// f_timeDiff
+testcase f_test_timeDiff() runs on DateTime_CT
+{
+  log(" ----------- f_timeDiff ----------- ");
+
+  var integer vl_start, vl_end;
+  timer T_timer := 1.0;
+
+  vl_start := f_time();
+  T_timer.start;
+  T_timer.timeout;
+  vl_end := f_time();
+
+  var integer diff := f_timeDiff(vl_end, vl_start); 
+  log("Time diff (f_timeDiff): ", diff); 
+  
+  var integer largeDiff := f_timeDiff(vl_end+5500550055, vl_start+2200220022);
+  log("Time diff (f_timeDiff) - large integer test: ", largeDiff); 
+
+  if ((diff > 0) and (largeDiff > 3300330033)) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+testcase f_test_HO42714() runs on DateTime_CT
+{
+  log(" ----------- f_test_HO42714 ----------- ");
+
+  var integer vl_a;
+  var charstring vl_ch;
+  log("Local wall time, dayligth saving");
+  log("f_time2sec( pl_year 2011, pl_mon 6, pl_day 29, pl_hour 10, pl_min 56, pl_sec 0)")
+  vl_a:=f_time2sec(2011, 6,  29, 10, 56, 0)
+  log(vl_a);
+  if(vl_a == 1309337760){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+  vl_ch:= f_ctime(vl_a)
+  log(vl_ch);
+  if(vl_ch == "Wed Jun 29 10:56:00 2011\n"){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+  log("UTC time")
+  log("f_time2sec_UTC( pl_year 2011, pl_mon 6, pl_day 29, pl_hour 10, pl_min 56, pl_sec 0)")
+  vl_a:=f_time2sec_UTC(2011, 6,  29, 10, 56, 0)
+  log(vl_a);
+  if(vl_a == 1309344960){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+  vl_ch:= f_ctime_UTC(vl_a)
+  log(vl_ch);
+  if(vl_ch == "Wed Jun 29 10:56:00 2011\n"){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+  vl_ch:= f_ctime(vl_a)
+  log(vl_ch);
+  if(vl_ch == "Wed Jun 29 12:56:00 2011\n"){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+  log("Local wall time, no dayligth saving");
+  log("f_time2sec( pl_year 2011, pl_mon 1, pl_day 29, pl_hour 10, pl_min 56, pl_sec 0)")
+  vl_a:=f_time2sec(2011, 1,  29, 10, 56, 0)
+  log(vl_a);
+  if(vl_a == 1296294960){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+  vl_ch:= f_ctime(vl_a)
+  log(vl_ch);
+  if(vl_ch == "Sat Jan 29 10:56:00 2011\n"){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+  log("UTC time")
+  log("f_time2sec_UTC( pl_year 2011, pl_mon 1, pl_day 29, pl_hour 10, pl_min 56, pl_sec 0)")
+  vl_a:=f_time2sec_UTC(2011, 1,  29, 10, 56, 0)
+  log(vl_a);
+  if(vl_a == 1296298560){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+  vl_ch:= f_ctime_UTC(vl_a)
+  log(vl_ch);
+  if(vl_ch == "Sat Jan 29 10:56:00 2011\n"){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+  vl_ch:= f_ctime(vl_a)
+  log(vl_ch);
+  if(vl_ch == "Sat Jan 29 11:56:00 2011\n"){
+    setverdict(pass)
+  } else {
+    setverdict(fail)
+  }
+}
+
+
+// execute all DateTime tests
+control
+{
+  log(" ################### DateTime ################### ");
+
+  execute(f_test_time());
+  execute(f_test_ctime());
+  execute(f_test_getTimeFormatted());
+  execute(f_test_time2sec());
+  execute(f_test_getCurrentDateWithOffset());
+  execute(f_test_getCurrentGMTDate());
+  execute(f_test_tic());
+  execute(f_test_toc());
+  execute(f_test_timeDiff());
+  execute(f_test_HO42714())
+}
+}
diff --git a/demo/TCCEncoding_Example.ttcn b/demo/TCCEncoding_Example.ttcn
new file mode 100644
index 0000000..838b416
--- /dev/null
+++ b/demo/TCCEncoding_Example.ttcn
@@ -0,0 +1,155 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCEncoding_Example.ttcn
+//  Description:        TCC Useful Functions: Message Encoding Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-02-05
+//  Contact:            http://ttcn.ericsson.se
+//////////////////////////////////////////////////////////////////////////////
+
+module TCCEncoding_Example {
+
+import from TCCEncoding_Functions all;
+
+type component test_CT {
+  var charstring base64;
+  var octetstring msg, dec;
+}
+
+testcase TC() runs on test_CT {
+  msg := char2oct("Test message.");
+  log("Message is: ", msg);
+  base64 := enc_MIME_Base64(msg);
+  log("MIME Base64 encoded message is: ", base64);
+  dec := dec_MIME_Base64(base64);
+  log("Decoded message is: ", dec);
+  if(dec != msg) {
+    setverdict(fail);
+  } else {
+    setverdict(pass);
+  }
+}
+
+testcase TC2() runs on test_CT {
+
+  var ISUP_Called_Party_Number v_ISUP_Called_Party_Number := 
+  {  
+    natureOfAddressIndicator := networkRoutingNumberNationalNrFormat,
+    numberingPlanIndicator := ISDN_E_164,
+    iNN := numberComplete,
+    addressSignalDigits := '123456789'H 
+  }
+
+  var octetstring v_oct := f_encode_ISUP_Called_Party_Number(v_ISUP_Called_Party_Number)
+  log(v_oct);
+  if (v_oct == '86102143658709'O) {setverdict(pass)} 
+  else {setverdict(fail)}
+
+  v_ISUP_Called_Party_Number.numberingPlanIndicator := national; 
+  v_oct := f_encode_ISUP_Called_Party_Number(v_ISUP_Called_Party_Number);
+  log(v_oct);
+  if (v_oct == ''O) {setverdict(pass)} 
+  else {setverdict(fail)}
+
+  v_ISUP_Called_Party_Number.natureOfAddressIndicator := internationalNumber;
+  v_ISUP_Called_Party_Number.numberingPlanIndicator := telex;
+  v_ISUP_Called_Party_Number.iNN := numberIncomplete;
+  v_ISUP_Called_Party_Number.addressSignalDigits :='1234567895'H
+
+  v_oct := f_encode_ISUP_Called_Party_Number(v_ISUP_Called_Party_Number)
+  log(v_oct);
+  if (v_oct == '04C02143658759'O) {setverdict(pass)} 
+  else {setverdict(fail)} 
+
+}
+
+testcase TC3() runs on test_CT {
+
+  var ISUP_Calling_Party_Number v_ISUP_Calling_Party_Number := 
+  {  
+    natureOfAddressIndicator := internationalNumber,
+    screening_indicator := network_provided,
+    address_presentation_restricted_indicator := presentation_restricted,
+    numberingPlanIndicator := ISDN_E_164,
+    iNN := numberComplete,
+    addressSignalDigits := '123456789'H 
+  }
+
+  var octetstring v_oct := f_encode_ISUP_Calling_Party_Number(v_ISUP_Calling_Party_Number)
+  log(v_oct);
+  if (v_oct == '84172143658709'O) {setverdict(pass)} 
+  else {setverdict(fail)}
+
+  v_ISUP_Calling_Party_Number.addressSignalDigits :='1234567895'H
+  v_oct := f_encode_ISUP_Calling_Party_Number(v_ISUP_Calling_Party_Number) 
+  log(v_oct);
+  if (v_oct == '04172143658759'O) {setverdict(pass)} 
+  else {setverdict(fail)} 
+}
+
+testcase TC4() runs on test_CT {
+
+  var MobileL3_CalledPartyBCDNumber v_MobileL3_CalledPartyBCDNumber:=
+  {
+    numberingPlanIdentification := data,
+    typeOfNumber := dedicatedAccess,
+    numberDigits := '123456789'H
+  }
+
+  var octetstring v_oct :=f_encode_MobileL3_CalledPartyBCDNumber(v_MobileL3_CalledPartyBCDNumber);
+  log(v_oct);
+  if (v_oct == 'C321436587F9'O) {setverdict(pass)} 
+  else {setverdict(fail)}
+
+
+  v_MobileL3_CalledPartyBCDNumber.numberDigits := '1234567895'H
+  v_oct :=f_encode_MobileL3_CalledPartyBCDNumber(v_MobileL3_CalledPartyBCDNumber);
+  log(v_oct);
+  if (v_oct == 'C32143658759'O) {setverdict(pass)} 
+  else {setverdict(fail)}
+
+}
+
+testcase tc_005_artf265694() runs on test_CT {
+
+  var hexstring vl_number_odd  := '123456789AB'H;
+  var hexstring vl_number_even := '123456789ABC'H;
+
+  var octetstring vl_oct := f_enc_TBCD_hex(vl_number_odd);
+  if (vl_oct == '21436587A9FB'O) {setverdict(pass);} 
+  else {
+    log("reference: ", '21436587A9FB'O);
+    log("encoded: ", vl_oct);
+    setverdict(fail);
+  }
+
+  vl_oct := f_enc_TBCD_hex(vl_number_even);
+  if (vl_oct == '21436587A9CB'O) {setverdict(pass);} 
+  else {
+    log("reference: ", '21436587A9CB'O);
+    log("encoded: ", vl_oct);
+    setverdict(fail);
+  }
+
+}
+
+
+control {
+  execute(TC());
+  execute(TC2());
+  execute(TC3());  
+  execute(TC4());   
+  execute(tc_005_artf265694());   
+}
+
+} with {extension "version R22B"}
+
diff --git a/demo/TCCEnv_Example.ttcn b/demo/TCCEnv_Example.ttcn
new file mode 100644
index 0000000..9df673a
--- /dev/null
+++ b/demo/TCCEnv_Example.ttcn
@@ -0,0 +1,39 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCEnv_Example.ttcn
+//  Description:        TCC Useful Functions: Environment Handling Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2008-12-10
+//  Contact:            http://ttcn.ericsson.se
+//////////////////////////////////////////////////////////////////////////////
+
+module TCCEnv_Example {
+
+import from TCCEnv_Functions all;
+
+type component test_CT { };
+
+testcase TC() runs on test_CT
+{
+  setverdict(pass);
+  log("PATH=", f_GetEnv("PATH"));
+  if(not(f_PutEnv("ENV", "foobar"))) {
+    setverdict(fail);
+  }
+  log("ENV=", f_GetEnv("ENV"));
+}
+
+control {
+  execute(TC());
+}
+
+}
diff --git a/demo/TCCFileIO_Example.ttcn b/demo/TCCFileIO_Example.ttcn
new file mode 100644
index 0000000..0346d13
--- /dev/null
+++ b/demo/TCCFileIO_Example.ttcn
@@ -0,0 +1,331 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCFileIO_Example.ttcn
+//  Description:        TCC Useful Functions: File IO Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2008-12-10
+//  Contact:            http://ttcn.ericsson.se
+//////////////////////////////////////////////////////////////////////////////
+
+module TCCFileIO_Example
+{
+modulepar charstring tsp_ird_dir := "/vobs/ttcn/TCC_Releases/Libraries/TCCUsefulFunctions_CNL113472/demo"
+modulepar charstring tsp_ird_file := "IRD_record_1"
+
+import from TCCFileIO_Functions all;
+
+type component empty_CT
+{ 
+  var integer v_ret_val;
+};
+
+testcase TC_test () runs on empty_CT
+{
+  var integer vl_fd;
+  var charstring vl_text_out := "First lineabcdefSecond lineabcdefThird lineabcdefFourth lineabcdef";
+  var charstring vl_text_tmp := "abcdef";
+  var charstring vl_text_in;
+  vl_fd := f_FIO_open_trunc_rdwr_excl ("test1.txt");
+  if (vl_fd < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  v_ret_val := f_FIO_write_text (vl_fd, vl_text_out);
+  v_ret_val := f_FIO_flush (vl_fd);
+  v_ret_val := f_FIO_seek_home (vl_fd);
+  for (var integer vl_i := 0; vl_i < 4; vl_i := vl_i + 1)
+    {
+      var integer n := f_FIO_read_text_until (vl_fd, vl_text_in, vl_text_tmp);
+      if (n < 0)
+        {
+	  log (f_FIO_get_error_string ());
+	  setverdict (fail);
+	}
+      log (vl_text_in);
+    }  
+  v_ret_val := f_FIO_seek_end (vl_fd);
+  v_ret_val := f_FIO_write_text (vl_fd, vl_text_out);
+  v_ret_val := f_FIO_close (vl_fd);
+  /* Try to close it again.  */
+  if (f_FIO_close (vl_fd) < 0)
+    {
+      setverdict (pass);
+    }
+}
+
+testcase TC_test_open () runs on empty_CT
+{
+  var integer vl_fd;
+  vl_fd := f_FIO_open_trunc_wronly_excl ("test1.txt");
+  if (vl_fd < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  v_ret_val := f_FIO_write_text (vl_fd, "First line");
+  v_ret_val := f_FIO_close (vl_fd);
+  /* After a successful call.  */
+  log (f_FIO_get_error_string ());
+  setverdict (pass);
+}
+
+testcase TC_test_close () runs on empty_CT
+{
+  var integer vl_fd_first, vl_fd_second;
+  vl_fd_first := f_FIO_open_rdonly ("test1.txt");
+  vl_fd_second := f_FIO_open_rdonly ("test1.txt");
+  if (vl_fd_first < 0 or vl_fd_second < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  vl_fd_first := f_FIO_close (vl_fd_first);
+  vl_fd_second := f_FIO_close (vl_fd_second);
+  if (vl_fd_first < 0 or vl_fd_second < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  /* Try to close it again.  */
+  if (f_FIO_close (vl_fd_first) < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (pass);
+    }
+  setverdict (pass);
+}
+
+testcase TC_test_seek () runs on empty_CT
+{
+  var integer vl_fd;
+  var charstring vl_text_in;
+  vl_fd := f_FIO_open_trunc_rdwr ("test1.txt");
+  v_ret_val := f_FIO_write_text (vl_fd, "ABCDFFGHIJKL");
+  v_ret_val := f_FIO_seek_backward (vl_fd, 8);
+  v_ret_val := f_FIO_write_text (vl_fd, "E");
+  v_ret_val := f_FIO_seek_end (vl_fd);
+  v_ret_val := f_FIO_write_text (vl_fd, "MNOPQRSTUVWXYZ");
+  v_ret_val := f_FIO_seek_home (vl_fd);
+  v_ret_val := f_FIO_read_text_until (vl_fd, vl_text_in, "XYZ");
+  log (vl_text_in);
+  v_ret_val := f_FIO_close (vl_fd);
+  /* Try to seek after close.  */
+  if (f_FIO_seek_home (vl_fd) < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (pass);
+    }
+  setverdict (pass);
+}
+
+testcase TC_test_write () runs on empty_CT
+{
+  var integer vl_fd;
+  var octetstring vl_data := '41414242'O;
+  vl_fd := f_FIO_open_append_wronly ("test1.txt");
+  if (f_FIO_write_data (vl_fd, vl_data) < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  v_ret_val := f_FIO_close (vl_fd);
+  vl_fd := f_FIO_open_rdonly ("test1.txt");
+  /* Try to write to the file opened in read only mode.  */
+  if (f_FIO_write_data (vl_fd, vl_data) >= 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  v_ret_val := f_FIO_close (vl_fd);
+  setverdict (pass);
+}
+
+testcase TC_test_write_flush () runs on empty_CT
+{
+  var integer vl_fd;
+  var octetstring vl_data := '41414242'O;
+  vl_fd := f_FIO_open_trunc_wronly_excl ("test1.txt");
+  if (f_FIO_write_data_flush (vl_fd, vl_data) < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  v_ret_val := f_FIO_close (vl_fd);
+  vl_fd := f_FIO_open_append_wronly_excl ("test1.txt");
+  if (f_FIO_write_data_flush (vl_fd, vl_data) < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  v_ret_val := f_FIO_flush (vl_fd);
+  v_ret_val := f_FIO_close (vl_fd);
+  setverdict (pass);
+}
+
+testcase TC_test_read () runs on empty_CT
+{
+  var integer vl_fd := f_FIO_open_rdonly ("test1.txt");
+  var charstring vl_text_in;
+  if (f_FIO_read_text (vl_fd, vl_text_in, 4) < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  v_ret_val := f_FIO_close (vl_fd);
+  log (vl_text_in);
+  setverdict (pass);
+}
+
+testcase TC_test_read_until () runs on empty_CT
+{
+  var integer vl_fd;
+  vl_fd := f_FIO_open_trunc_rdwr ("test2.txt");
+  v_ret_val := f_FIO_write_data (vl_fd, '41414242'O);
+  var octetstring vl_data_in;
+  v_ret_val := f_FIO_seek_home (vl_fd);
+  v_ret_val := f_FIO_read_data_until (vl_fd, vl_data_in, '42'O);
+  log (vl_data_in);
+  v_ret_val := f_FIO_close (vl_fd);
+  vl_fd := f_FIO_open_trunc_rdwr ("test2.txt");
+  v_ret_val := f_FIO_write_text (vl_fd, "black white green blue red yellow pink ");
+  v_ret_val := f_FIO_seek_home (vl_fd);
+  for (var integer vl_i := 0; vl_i < 7; vl_i := vl_i + 1)
+    {
+      var charstring vl_text_in;
+      if (f_FIO_read_text_until (vl_fd, vl_text_in, " ") < 0)
+        {
+          log (f_FIO_get_error_string ());
+          setverdict (fail);
+	}
+      log (vl_text_in);
+    }
+  v_ret_val := f_FIO_close (vl_fd);    
+  setverdict (pass);
+}
+
+testcase TC_test_excl () runs on empty_CT
+{
+  var integer vl_fd1 := f_FIO_open_trunc_rdwr_excl ("../test3.txt");
+  var integer vl_fd2 := f_FIO_open_append_rdwr ("../test3.txt");
+  if (vl_fd1 < 0 or vl_fd2 < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  if (f_FIO_write_text (vl_fd1, "First line") < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  if (f_FIO_write_text (vl_fd2, "First line") < 0)
+    {
+      log (f_FIO_get_error_string ());
+      setverdict (fail);
+    }
+  /* Start this program on a different terminal.  It should fail.  */
+  timer t := 20.0;
+  t.start;
+  alt
+    {
+      [] t.timeout { }
+    }
+
+  v_ret_val := f_FIO_close (vl_fd1);
+  v_ret_val := f_FIO_close (vl_fd2);
+  setverdict (pass);
+}
+
+testcase TC_test_read_TLV() runs on empty_CT
+{
+  var octetstring vl_oct;
+  var boolean opened := false;
+  var integer vl_fd1;
+
+  //Change the directory
+  if (not (f_FIO_chdir(tsp_ird_dir)))
+  {
+    log("Directory change failed");
+    setverdict(inconc); stop;
+  }
+
+  //Open the file
+  vl_fd1 := f_FIO_open_rdonly(tsp_ird_file);
+  if(vl_fd1== -1)
+  {
+    log("Opening file failed.");
+  }
+  else
+  { //Go to the end of file
+    opened := true;
+    v_ret_val := f_FIO_seek_end(vl_fd1);
+  }
+
+            //Start: replace of writing into the file by the SUT
+            var integer vl_fd2;
+            vl_fd2 := f_FIO_open_append_wronly(tsp_ird_file);
+            if(vl_fd2== -1)
+            {
+              setverdict(inconc);
+              stop;
+            }
+
+            v_ret_val := f_FIO_write_data(vl_fd2,'3082014C801032303033303930393034323034352E35A280301480074552494353533181094D415F435253535F31301480074552494353533281094D415F435253535F320000A34280084E4554574F524B4981070149172402222F820101A322800100810700491721030050820901490509515738400F830901262021030000050FA406800106810111A480AF80A10D8002262F810102820101830101820100A30D81010282010183050110300301A48031323017A006800102810103A10D810102820101830501103005183017A006800103810105A10D81010282010183050110300528314B3017A006800102810103A10D810102820101830501103005183017A006800103810105A10D810102820101830501103005283017A006800104810107A10D810102820101830501103005300000860100870A1C08A10602010102017C88071C05A20302010100000000'O);
+            v_ret_val := f_FIO_write_text(vl_fd2,"Here would come the 2nd IRD record");
+            v_ret_val := f_FIO_close(vl_fd2);
+            //End: replace of writing by the SUT
+
+  if (not opened)
+  { //Open the file
+    vl_fd1 := f_FIO_open_rdonly(tsp_ird_file);
+    if(vl_fd1== -1)
+    {
+      log("File %s cannot be opened.",tsp_ird_file);
+      setverdict(inconc); stop;
+    }
+  }
+
+  //Read a complete TLV structure, read position is at the original end 
+  //of the file, so new charging data records will be read
+  if(f_FIO_read_data_TLV(vl_fd1,vl_oct) >-1)
+  {
+    log(vl_oct);
+    
+//    var IRD_message vl_ird_msg := dec_PDU_IRD(vl_oct); //Decode IRD message
+  }
+
+  if(f_FIO_close(vl_fd1) == -1)
+  {
+    log("File %s cannot be closed.",tsp_ird_file);
+    setverdict(inconc); stop;
+  }
+  else
+  {
+    setverdict(pass);
+  } 
+}
+
+control
+{
+  execute (TC_test ());
+  execute (TC_test_open ());
+  execute (TC_test_close ());
+  execute (TC_test_seek ());
+  execute (TC_test_write ());
+  execute (TC_test_write_flush ());
+  execute (TC_test_read ());
+  execute (TC_test_read_until ());
+  execute (TC_test_excl ()); /* This fails on Cygwin.  */
+  execute (TC_test_read_TLV ());
+}
+
+}
diff --git a/demo/TCCFileSystem_Example.ttcn b/demo/TCCFileSystem_Example.ttcn
new file mode 100644
index 0000000..de4c5c2
--- /dev/null
+++ b/demo/TCCFileSystem_Example.ttcn
@@ -0,0 +1,82 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCFileSystem_Example.ttcn
+//  Description:        TCC Useful testcases: FileSystem testcases.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2011-07-14
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////
+
+module TCCFileSystem_Example
+{
+
+import from TCCFileSystem_Functions all;
+
+type component FileSystem_CT{}
+
+//////////////////////////////////////////////////////////////
+// FileSystem testcases
+//////////////////////////////////////////////////////////////
+
+// test f_FS_bsize testcase
+testcase f_test_FS_bsize() runs on FileSystem_CT
+{
+  log(" ----------- f_FS_bsize ----------- ");
+  log("Block size (f_FS_bsize): ", f_FS_bsize("./"));    
+
+  // no check
+  setverdict(pass);
+}
+
+// test f_FS_block testcase
+testcase f_test_FS_block() runs on FileSystem_CT
+{
+  log(" ----------- f_FS_block ----------- ");
+  log("Number of blocks (f_FS_block): ", f_FS_block("./"));    
+
+  // no check
+  setverdict(pass);
+}
+
+// test f_FS_bfree testcase
+testcase f_test_FS_bfree() runs on FileSystem_CT
+{
+  log(" ----------- f_FS_bfree ----------- ");
+  log("Number of free blocks (f_FS_bfree): ", f_FS_bfree("./"));    
+
+  // no check
+  setverdict(pass);
+}
+
+// test f_FS_dspacerate testcase
+testcase f_test_FS_dspacerate() runs on FileSystem_CT
+{
+  log(" ----------- f_FS_dspacerate ----------- ");
+  log("The free space rate (f_FS_dspacerate): ", f_FS_dspacerate("./"));    
+
+  // no check
+  setverdict(pass);
+}
+
+
+
+// execute all FileSystem tests
+control
+{
+  log(" ################### FileSystem ################### ");
+
+  execute(f_test_FS_bsize());
+  execute(f_test_FS_block());
+  execute(f_test_FS_bfree());
+  execute(f_test_FS_dspacerate());
+}
+}
diff --git a/demo/TCCIPsec_Example.ttcn b/demo/TCCIPsec_Example.ttcn
new file mode 100644
index 0000000..469870d
--- /dev/null
+++ b/demo/TCCIPsec_Example.ttcn
@@ -0,0 +1,409 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCAssertion_Example.ttcn
+//  Description:        TCC Useful Functions: Assertion Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-01-09
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+module TCCIPsec_Example {
+
+import from TCCIPsec_Functions all;
+import from TCCIPsec_Definitions all;
+
+type component test_CT {};
+
+//////////////////////////////////////////////////////////////
+// Simple tests
+//////////////////////////////////////////////////////////////
+
+testcase SA_flush () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SADB_flush ();
+  log ( "f_IPsec_SADB_flush returns: ", res );
+
+  select ( res ) {
+    case ( ok ) { setverdict(pass); }
+    case ( insufficientPrivilege ) {
+      log ( "Ensure that the test is run with sufficient (root) privileges!" );
+      setverdict(fail);
+    }
+    case ( notImplemented ) {
+      log ( "Please, check the compilation flags!" );
+      log ( "Either USE_IPSEC or USE_KAME_IPSEC has to be specified." );
+      setverdict(fail);
+    }
+    case else { setverdict(fail); }
+  }
+}
+
+testcase SA_add () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SADB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_add ( "192.168.1.1",  "192.168.1.2", esp, 2147483653,
+    { { policyId := 101 }, { hardLifetime := 180 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "123456789012345678901234" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1234567890123456" } } } );
+  log ( "f_IPsec_SADB_add returns: ", res );
+
+  select ( res ) {
+    case ( ok ) { setverdict(pass); }
+    case else { setverdict(fail); }
+  }
+  res := f_IPsec_SADB_flush ();
+}
+
+/*testcase SA_update () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SADB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_add ( "192.168.1.1",  "192.168.1.2", esp, 11001,
+    { { policyId := 101 }, { hardLifetime := 180 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "123456789012345678901234" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1234567890123456" } } } );
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_update ( "192.168.1.1",  "192.168.1.2", esp, 11001,
+    { { hardLifetime := 18 }, { softLifetime := 6 } } );
+  log ( "f_IPsec_SADB_update returns: ", res );
+
+  select ( res ) {
+    case ( ok ) { setverdict(pass); }
+    case else { setverdict(fail); }
+  }
+  res := f_IPsec_SADB_flush ();
+}*/
+
+testcase SA_delete () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SADB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_add ( "192.168.1.1", "192.168.1.2",
+    esp, 2147483653, { { hardLifetime := 180 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "123456789012345678901234" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1234567890123456" } } } );
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SADB_delete ( "192.168.1.1", "192.168.1.2", esp, 2147483653 );
+  log ( "f_IPsec_SADB_delete returns: ", res );
+
+  select ( res ) {
+    case ( ok ) { setverdict(pass); }
+    case else { setverdict(fail); }
+  }
+}
+
+testcase SP_flush () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SPDB_flush ();
+  log ( "f_IPsec_SPDB_flush returns: ", res );
+
+  select ( res ) {
+    case ( ok ) { setverdict(pass); }
+    case ( notImplemented ) {
+      log ( "Please, check the compilation flags!" );
+      log ( "SPD handling is supported only if USE_KAME_IPSEC is specified during compilation." );
+      setverdict(fail);
+    }
+    case else { setverdict(fail); }
+  }
+}
+
+testcase SP_add () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SPDB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_add ( "192.168.1.1", -, 2001, "192.168.1.2", -, 3001,
+    tcpProto, outDir,
+    { ipSec := { { protocol := ah, mode := { transport := {} }, level := { unique := { id := 101 } } } } } );
+  log ( "f_IPsec_SPDB_add returns: ", res );
+
+  select ( res ) {
+    case ( ok ) { setverdict(pass); }
+    case else { setverdict(fail); }
+  }
+  res := f_IPsec_SPDB_flush ();
+}
+
+testcase SP_delete () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SPDB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_add ( "192.168.1.1", -, 2001, "192.168.1.2", -, 3001,
+    tcpProto, outDir,
+    { ipSec := { { protocol := ah, mode := { transport := {} }, level := { unique := { id := 101 } } } } } );
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_delete ( "192.168.1.1", -, 2001, "192.168.1.2", -, 3001, tcpProto, outDir );
+  log ( "f_IPsec_SPDB_delete returns: ", res );
+
+  select ( res ) {
+    case ( ok ) { setverdict(pass); }
+    case else { setverdict(fail); }
+  }
+}
+
+//////////////////////////////////////////////////////////////
+// Compound tests
+// To test functionality a bit better without using test ports
+//////////////////////////////////////////////////////////////
+
+testcase SA_add_twice () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SADB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_add ( "192.168.1.1",  "192.168.1.2", esp, 11001,
+    { { policyId := 101 }, { hardLifetime := 180 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "123456789012345678901234" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1234567890123456" } } } );
+  log ( "First f_IPsec_SADB_add returns: ", res );
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SADB_add ( "192.168.1.1",  "192.168.1.2", esp, 11001,
+    { { policyId := 101 }, { hardLifetime := 180 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "123456789012345678901234" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1234567890123456" } } } );
+  if ( res == alreadyExisted ) {
+    setverdict(pass);
+  } else {
+    log ( "Second f_IPsec_SADB_add returned unexpected result: ", res );
+    setverdict(fail);
+  }
+  res := f_IPsec_SADB_flush ();
+}
+
+testcase SA_flush_2 () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SADB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_add ( "192.168.1.1",  "192.168.1.2", esp, 11001,
+    { { policyId := 101 }, { hardLifetime := 180 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "123456789012345678901234" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1234567890123456" } } } );
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_add ( "192.168.1.1",  "192.168.1.2", esp, 11001,
+    { { policyId := 101 }, { hardLifetime := 180 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "123456789012345678901234" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1234567890123456" } } } );
+  if ( res != alreadyExisted ) { setverdict(fail); }
+  res := f_IPsec_SADB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_add ( "192.168.1.1",  "192.168.1.2", esp, 11001,
+    { { policyId := 101 }, { hardLifetime := 180 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "123456789012345678901234" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1234567890123456" } } } );
+  if ( res == ok ) {
+    setverdict(pass);
+  } else {
+    log ( "f_IPsec_SADB_add after f_IPsec_SADB_flush returned unexpected result: ", res );
+    setverdict(fail);
+  }
+  res := f_IPsec_SADB_flush ();
+}
+
+testcase SA_delete_2 () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SADB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_delete ( "192.168.1.1", "192.168.1.2", esp, 11001 );
+  if ( res != notFound ) { setverdict(fail); }
+  res := f_IPsec_SADB_add ( "192.168.1.1",  "192.168.1.2", esp, 11001,
+    { { policyId := 101 }, { hardLifetime := 180 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "123456789012345678901234" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1234567890123456" } } } );
+  if ( res != ok ) { setverdict(fail); }
+  res := f_IPsec_SADB_delete ( "192.168.1.1", "192.168.1.2", esp, 11001 );
+  if ( res == ok ) {
+    setverdict(pass);
+  } else {
+    log ( "f_IPsec_SADB_delete after f_IPsec_SADB_add returned: ", res );
+    setverdict(fail);
+  }
+}
+
+testcase SP_compound_test () runs on test_CT
+{
+  var TCCIPsec_Result res;
+
+  res := f_IPsec_SPDB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_add ( "192.168.1.1", -, 2001, "192.168.1.2", -, 3001,
+    tcpProto, outDir,
+    { ipSec := { { protocol := ah, mode := { transport := {} }, level := { unique := { id := 101 } } } } } );
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_add ( "192.168.1.1", -, 2001, "192.168.1.2", -, 3001,
+    tcpProto, outDir,
+    { ipSec := { { protocol := ah, mode := { transport := {} }, level := { unique := { id := 101 } } } } } );
+  if ( res != alreadyExisted ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_add ( "192.168.1.1", -, 2001, "192.168.1.2", -, 3001,
+    tcpProto, outDir,
+    { ipSec := { { protocol := ah, mode := { transport := {} }, level := { unique := { id := 101 } } } } } );
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_delete ( "192.168.1.1", -, 2001, "192.168.1.2", -, 3001, tcpProto, outDir );
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_delete ( "192.168.1.1", -, 2001, "192.168.1.2", -, 3001, tcpProto, outDir );
+  if ( res != notFound ) { setverdict(fail); }
+
+  res := f_IPsec_SPDB_add ( "192.168.1.1", -, 2001, "192.168.1.2", -, 3001,
+    tcpProto, outDir,
+    { ipSec := { { protocol := ah, mode := { transport := {} }, level := { unique := { id := 101 } } } } } );
+  select ( res ) {
+    case ( ok ) { setverdict(pass); }
+    case else { setverdict(fail); }
+  }
+
+  res := f_IPsec_SADB_flush ();
+  res := f_IPsec_SPDB_flush ();
+}
+
+testcase f_add() runs on test_CT
+{
+  var TCCIPsec_Result res;
+  res := f_IPsec_SADB_flush ();
+  if ( res != ok ) { setverdict(fail); }
+
+  res := f_IPsec_SADB_add ( "6.0.0.1",  "6.0.0.2", esp, 1980010810,
+    { { policyId := 111 }, { hardLifetime := 198 }, { softLifetime := 60 } },
+    { encrAndAuth := {
+        ealgo := EALG_3DESCBC, ekey := { text := "221111111111111111111111" },
+        aalgo := AALG_MD5HMAC, akey := { text := "1411111111111111" } } },
+        -,
+        useNatt := true,
+        ipSecMode := tunnel);
+  log ( "f_add returns: ", res );
+
+  select ( res ) {
+    case ( ok ) {setverdict(pass);}
+    case else {setverdict(fail);}
+  }
+}
+
+testcase f_delete() runs on test_CT
+{
+   var TCCIPsec_Result res;
+   res := f_IPsec_SADB_delete( "6.0.0.1", "6.0.0.2", esp, 1980010810);
+
+   log ( "f_IPsec_SPDB_delete returns: ", res );
+
+   select(res){
+       case(ok) {setverdict(pass);}
+       case else {setverdict(fail);}
+   }
+ }
+
+testcase f_spadd() runs on test_CT
+{
+  var TCCIPsec_Result res;
+  res := f_IPsec_SPDB_add ( "172.23.31.0", 24, 1234,
+                            "172.23.32.0", 32, 4321,
+                            -, outDir,
+                            {ipSec := {{
+                                          protocol := esp,
+                                          mode := { tunnel := {
+                                                                srcAddr := "6.0.0.1",
+                                                                srcPort := 4500,
+                                                                dstAddr := "6.0.0.1" ,
+                                                                dstPort := 4500
+                                                              }
+                                                   },
+                                          level := { require := {} }
+                                      }}
+                            });
+
+  log ( "f_IPsec_SPDB_add returns: ", res );
+  select ( res ) {
+    case ( ok ) { setverdict(pass);}
+    case else {setverdict(fail);}
+  }
+}
+
+testcase f_spdelete() runs on test_CT
+{
+    var TCCIPsec_Result res;
+    res := f_IPsec_SPDB_delete( "172.23.31.0", 24, 4500, "172.23.32.0", 32, 4500, -, outDir);
+    log ( "f_IPsec_SPDB_delete returns: ", res );
+
+     select ( res ) {
+       case ( ok ) { setverdict(pass); }
+       case else {setverdict(fail); }
+     }
+}
+
+control
+{
+  // Simple tests
+  execute ( SA_flush (), 1.0 );
+  execute ( SA_add (), 1.0 );
+  //execute ( SA_update (), 1.0 );
+  execute ( SA_delete (), 1.0 );
+
+  execute ( SP_flush (), 1.0 );
+  execute ( SP_add (), 1.0 );
+  execute ( SP_delete (), 1.0 );
+
+  // Compound tests
+  execute ( SA_add_twice (), 1.0 );
+  execute ( SA_flush_2 (), 1.0 );
+  execute ( SA_delete_2 (), 1.0 );
+  execute ( SP_compound_test (), 1.0 );
+
+  // Test NAT-T
+  execute(SA_flush ());
+  execute(f_add());
+  execute(f_delete());
+  execute(SP_flush ());
+  execute(f_spadd());
+  execute(f_spdelete());
+
+}
+}
diff --git a/demo/TCCInterface_Example.ttcn b/demo/TCCInterface_Example.ttcn
new file mode 100644
index 0000000..6626d03
--- /dev/null
+++ b/demo/TCCInterface_Example.ttcn
@@ -0,0 +1,146 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCInterface_Example.ttcn
+//  Description:        TCC Useful Functions: Interface Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2008-12-10
+//  Contact:            http://ttcn.ericsson.se
+//////////////////////////////////////////////////////////////////////////////
+
+module TCCInterface_Example 
+{
+
+import from TCCInterface_Functions all;
+type component test_CT { };
+
+//////////////////////////////////////////////////////////////
+// Interface functions
+//////////////////////////////////////////////////////////////
+
+testcase tc_test_getIpAddresses() runs on test_CT{
+	var IPAddresses ips := f_getIpAddresses("google.com");
+	if (not isvalue(ips)) {setverdict(fail)}
+	log("google.com:",ips);
+	ips := f_getIpAddresses("localhost");
+	if (not isvalue(ips)) {setverdict(fail)}
+	log("localhost", ips);
+	ips := f_getIpAddresses("alma");
+	if (not isvalue(ips)) {setverdict(fail)}
+	log("empty string: ", ips);
+	setverdict(pass);
+}
+
+testcase f_test_getIP() runs on test_CT
+{
+  var charstring ip, subnet, broadcast;    
+  f_getIP("eth2",ip,subnet,broadcast);
+  log("IP: " & ip);
+  log("Subnetmask: " & subnet);
+  log("Broadcast: " & broadcast);    
+  setverdict(pass);
+}
+
+testcase f_test_getIP_IPv6() runs on test_CT
+{
+  var charstring ip, subnet, broadcast;    
+  f_getIP("eth2",ip,subnet,broadcast,IPv6);
+  log("IP: " & ip);
+  log("Subnetmask: " & subnet);
+  log("Broadcast: " & broadcast);    
+  setverdict(pass);
+}
+
+// test f_getHostName function
+testcase f_test_gethostname() runs on test_CT
+{
+  log(" ----------- f_getHostName ----------- ");
+  log("Hostname: ", f_getHostName());
+  setverdict(pass);
+}
+
+// test f_getIpAddr function
+testcase f_test_getipaddr() runs on test_CT
+{
+  log(" ----------- f_getIpAddr IPv4 ----------- ");
+  log("IP address: ", f_getIpAddr(f_getHostName()));
+  setverdict(pass);  
+}
+ 
+// test f_getIpAddr IPv6 function
+testcase f_test_getipaddr_IPv6() runs on test_CT
+{  
+  log(" ----------- f_getIpAddr IPv6 ----------- ");
+  log("IP address: ", f_getIpAddr("localhost",IPv6));    
+  setverdict(pass);
+}
+
+// test f_setInterfaceUp  function
+testcase f_test_setInterfaceUp() runs on test_CT
+{  
+  log(" ----------- f_setInterfaceUp ----------- ");
+  f_setInterfaceUp("eth3");  
+   
+  setverdict(pass);
+}
+
+// test f_setInterfaceDown  function
+testcase f_test_setInterfaceDown() runs on test_CT
+{  
+  log(" ----------- f_setInterfaceDown ----------- ");
+  f_setInterfaceDown("eth3");  
+   
+  setverdict(pass);
+}
+
+// test f_setIP  function
+testcase f_test_setIP() runs on test_CT
+{  
+  log(" ----------- f_setIP ----------- ");
+  f_setIP("eth3","192.168.20.21","255.255.255.255","192.168.20.255",1);  
+   
+  setverdict(pass);
+}
+
+testcase f_test_setIP_ip() runs on test_CT{
+  log(" ----------- f_setIP_ip ----------- ");
+  var boolean res := f_setIP_ip("eth0","192.169.1.1", 20);
+  if (res){ setverdict(pass); } else 
+    {setverdict(fail);}
+}
+
+testcase f_test_delIP_ip() runs on test_CT{
+  log(" ----------- f_setIP_ip ----------- ");
+  var boolean res := f_setIP_ip("eth0","192.169.1.1", 20);
+  if (res){ setverdict(pass); } else 
+    {setverdict(fail);}
+}
+
+control {
+  execute(tc_test_getIpAddresses());
+  execute(f_test_getIP());
+  execute(f_test_gethostname());
+  execute(f_test_getipaddr());
+
+  execute(f_test_getIP_IPv6());  
+  execute(f_test_getipaddr_IPv6());
+  
+  execute(f_test_setInterfaceUp()); //it works with root account, handle with care!
+  execute(f_test_setInterfaceDown()); //it works with root account, handle with care!
+  
+  execute(f_test_setIP()); //it works with root account, handle with care!
+
+  execute(f_test_setIP_ip());
+  execute(f_test_delIP_ip());
+
+}
+
+}
diff --git a/demo/TCCMaths_Example.ttcn b/demo/TCCMaths_Example.ttcn
new file mode 100644
index 0000000..4221e74
--- /dev/null
+++ b/demo/TCCMaths_Example.ttcn
@@ -0,0 +1,668 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCMaths_Example.ttcn
+//  Description:        TCC Useful testcases: Maths testcases.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-12-09
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////
+
+module TCCMaths_Example 
+{
+
+import from TCCMaths_Functions all;
+import from TCCMaths_GenericTypes all;
+
+modulepar float LIMIT := 0.01;
+
+type component Maths_CT { 
+  // math
+  var float tmpFloat;
+  var integer tmpInt;
+  var float sum;
+
+  // integer
+  var IntegerList ilist1 := { 1, 2, 3, 4, 5};
+  var IntegerList ilist2 := { 6, 7, 8, 9, 10};
+  var IntegerList ires;
+
+  var IntegerList maxIL1 := {5, 4};
+  var IntegerList minIL1 := {1, 0};
+  var float avgIL1 := 3.0;
+  var IntegerList updIL1 := { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+  var float stdIL1 := 1.581139;
+  var float stdILL1 := 1.581139;  
+
+  // float
+  var FloatList flist1 := { 1.0, 2.0, 3.0, 4.0, 5.0};
+  var FloatList flist2 := { 6.0, 7.0, 8.0, 9.0, 10.0};
+  var FloatList fres;
+
+  var FloatList maxFL1 := {5.0, 4.0};
+  var FloatList minFL1 := {1.0, 0.0};
+  var float avgFL1 := 3.0;
+  var FloatList updFL1 := { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};
+  var float stdFL1 := 1.58;
+  var float stdFLL1 := 1.58;
+
+  // sin/cos
+  var float freq := 10.0;
+  var float alti := 5.0;
+  var float startval := 0.0;
+  var float step := 0.37;
+  var integer len := 5;
+
+  var FloatList sin1 := {0.0, -4.755283, 2.938926, 2.938926, -4.755283};
+  var FloatList cos1 := {5.0, -1.545085, -4.045085, 4.045085, 1.545085};
+};
+
+//////////////////////////////////////////////////////////////
+// Maths testcases
+//////////////////////////////////////////////////////////////
+
+//type record of integer BLABLA;
+
+// test f_maxIL testcase
+testcase f_test_maxIL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1, 2, ....} shall be used
+
+  //var BLABLA vv := {1, 2, 3, 4, 5};
+  //ires := f_maxIL(vv);
+
+  log(" ----------- f_maxIL ----------- ");
+  log("Original integer list: ", ilist1);
+  ires := f_maxIL(ilist1);
+  log("MaxIL (maxVal, maxIdx): ", ires);
+
+  if (ires == maxIL1) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_minIL testcase
+testcase f_test_minIL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1, 2, ....} shall be used
+
+  //var BLABLA vv := {1, 2, 3, 4, 5};
+  //ires := f_minIL(vv);
+
+  log(" ----------- f_minIL ----------- ");
+  log("Original integer list: ", ilist1);
+  ires := f_minIL(ilist1);
+  log("MinIL (minVal, minIdx): ", ires);
+
+  if (ires == minIL1) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_averageIL testcase
+testcase f_test_averageIL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1, 2, ....} shall be used
+
+  //var BLABLA vv := {1, 2, 3, 4, 5};
+  //ires := f_averageIL(vv);
+
+  log(" ----------- f_averageIL ----------- ");
+  log("Original integer list: ", ilist1);
+  tmpFloat := f_averageIL(ilist1);
+  log("AverageIL (averageVal, averageIdx): ", tmpFloat);
+
+  if (tmpFloat == avgIL1) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_averageIL testcase
+testcase f_test_updateIL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1, 2, ....} shall be used
+
+  //var BLABLA vv1 := {1, 2, 3, 4, 5};
+  //var BLABLA vv2 := {1, 2, 3, 4, 5};
+  //f_updateIL(vv1, vv2)
+
+  log(" ----------- f_updateIL ----------- ");
+  log("Original integer lists: ", ilist1, " and ", ilist2);
+  ires := ilist1;
+  f_updateIL(ires, ilist2)
+  log("Updated list: ", ires);
+
+  if (ires == updIL1) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_averageIL testcase
+testcase f_test_stdIL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1, 2, ....} shall be used
+
+  //var BLABLA vv := {1, 2, 3, 4, 5};
+  //ires := f_stdIL(vv);
+
+  log(" ----------- f_stdIL ----------- ");
+  log("Original integer list: ", ilist1);
+  tmpFloat := f_stdIL(ilist1);
+  log("Normalized, standard derivation (IL): ", tmpFloat);
+
+  if ((tmpFloat - stdIL1) * (tmpFloat - stdIL1) < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { 
+    setverdict(fail); 
+  }
+}
+
+// test f_averageILL testcase
+testcase f_test_stdILL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1, 2, ....} shall be used
+
+  //var BLABLA vv := {1, 2, 3, 4, 5};
+  //ires := f_stdIL(vv);
+
+  log(" ----------- f_stdILL ----------- ");
+  log("Original integer list: ", ilist1);
+  tmpFloat := f_stdILL(ilist1, f_averageIL(ilist1));
+  log("Normalized, standard derivation (ILL): ", tmpFloat);
+
+  if ((tmpFloat - stdILL1) * (tmpFloat - stdILL1) < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { 
+    setverdict(fail); 
+  }
+}
+
+// test f_maxIL testcase
+testcase f_test_maxFL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1.0, 2.0, ....} shall be used
+
+  //var BLABLA vv := {1.0, 2.0, 3.0, 4.0, 5.0};
+  //ires := f_maxFL(vv);
+
+  log(" ----------- f_maxFL ----------- ");
+  log("Original float list: ", flist1);
+  fres := f_maxFL(flist1);
+  log("MaxFL (maxVal, maxIdx): ", fres);
+
+  if (fres == maxFL1) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_minIL testcase
+testcase f_test_minFL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1.0, 2.0, ....} shall be used
+
+  //var BLABLA vv := {1.0, 2.0, 3.0, 4.0, 5.0};
+  //ires := f_minFL(vv);
+
+  log(" ----------- f_minFL ----------- ");
+  log("Original float list: ", flist1);
+  fres := f_minFL(flist1);
+  log("MinIL (minVal, minIdx): ", fres);
+
+  if (fres == minFL1) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_averageIL testcase
+testcase f_test_averageFL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1.0, 2.0, ....} shall be used
+
+  //var BLABLA vv := {1.0, 2.0, 3.0, 4.0, 5.0};
+  //ires := f_averageFL(vv);
+
+  log(" ----------- f_averageFL ----------- ");
+  log("Original float list: ", flist1);
+  tmpFloat := f_averageFL(flist1);  
+  log("AverageIL (averageVal, averageIdx): ", tmpFloat);
+
+  if (tmpFloat == avgFL1) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_averageIL testcase
+testcase f_test_updateFL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1.0, 2.0, ....} shall be used
+
+  //var BLABLA vv1.0 := {1.0, 2.0, 3.0, 4.0, 5.0};
+  //var BLABLA vv2.0 := {1.0, 2.0, 3.0, 4.0, 5.0};
+  //f_updateFL(vv1.0, vv2.0)
+
+  log(" ----------- f_updateFL ----------- ");
+  log("Original float lists: ", flist1, " and ", flist2);
+  fres := flist1;
+  f_updateFL(fres, flist2)
+  log("Updated list: ", fres);
+
+  if (fres == updFL1) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_averageIL testcase
+testcase f_test_stdFL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1.0, 2.0, ....} shall be used
+
+  //var BLABLA vv := {1.0, 2.0, 3.0, 4.0, 5.0};
+  //ires := f_stdFL(vv);
+
+  log(" ----------- f_stdFL ----------- ");
+  log("Original float list: ", flist1);
+  tmpFloat := f_stdFL(flist1);
+  log("Normalized, standard derivation (IL): ", tmpFloat);
+
+  if ((tmpFloat - stdFL1) * (tmpFloat - stdFL1) < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { 
+    setverdict(fail); 
+  }
+}
+
+// test f_averageFLL testcase
+testcase f_test_stdFLL() runs on Maths_CT
+{
+  // Note this is (of course erroneous situation) - TYPE MISMATCH
+  // IntegerList type in TCCMaths_GenericTypes or dircet valuelist
+  // e.g. {1.0, 2.0, ....} shall be used
+
+  //var BLABLA vv := {1.0, 2.0, 3.0, 4.0, 5.0};
+  //ires := f_stdFL(vv);
+
+  log(" ----------- f_stdFLL ----------- ");
+  log("Original float list: ", flist1);
+  tmpFloat := f_stdFLL(flist1, f_averageFL(flist1));
+  log("Normalized, standard derivation (FLL): ", tmpFloat);
+
+  if ((tmpFloat - stdFLL1) * (tmpFloat - stdFLL1) < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { 
+    setverdict(fail); 
+  }
+}
+
+// test f_sin testcase
+testcase f_test_sinVL() runs on Maths_CT
+{
+  log(" ----------- f_sinVL ----------- ");
+  log("SINUS (Frequency: ", freq, 
+    ", altitude: ", alti, 
+    ", startval: ", startval, 
+    ", step: ", step, 
+    ", return length: ", len, "):");
+
+  fres := f_sinVL(freq, alti, startval, len, step);
+  log("Sinus values returned: ", fres);
+
+  // check
+  sum := 0.0;
+  for (var integer i := 0; i < len; i := i + 1)
+  {
+    tmpFloat := fres[i] - sin1[i];
+    sum := sum + tmpFloat * tmpFloat;
+  }
+  if (sum < LIMIT) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+// test f_cos testcase
+testcase f_test_cosVL() runs on Maths_CT
+{
+  log(" ----------- f_cosVL ----------- ");
+  log("COSINUS (Frequency: ", freq, 
+    ", altitude: ", alti, 
+    ", startval: ", startval, 
+    ", step: ", step, 
+    ", return length: ", len, "):");
+
+  fres := f_cosVL(freq, alti, startval, len, step);
+  log("Cosinus values returned: ", fres);
+
+  // check
+  sum := 0.0;
+  for (var integer i := 0; i < len; i := i + 1)
+  {
+    tmpFloat := fres[i] - cos1[i];
+    sum := sum + tmpFloat * tmpFloat;
+  }
+  if (sum < LIMIT) { setverdict(pass); }
+  else { setverdict(fail); }  
+}
+
+// test function pi
+testcase f_test_pi() runs on Maths_CT
+{
+  log(" ----------- f_pi ----------- ");
+
+  log ("PI value: ", pi);
+
+  setverdict(pass);
+}
+
+testcase f_test_sin() runs on Maths_CT
+{
+  log(" ----------- f_sin ----------- ");
+  
+  tmpFloat := f_sin(3.1415926535 / 2.0);
+  log("Sine of PI/2: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 1.0;
+  if (tmpFloat * tmpFloat < LIMIT)  { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+testcase f_test_cos() runs on Maths_CT
+{
+  log(" ----------- f_cos ----------- ");
+  
+  tmpFloat := f_cos(3.1415926535 / 2.0);
+  log("Cosine of PI/2: ", tmpFloat);
+
+  if (tmpFloat * tmpFloat < LIMIT)  { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
+testcase f_test_asin() runs on Maths_CT
+{
+  log(" ----------- f_asin ----------- ");
+  
+  tmpFloat := f_asin(1.0);
+  log("Arc sine of 1.0: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 3.1415926535 / 2.0;
+  if (tmpFloat * tmpFloat < LIMIT )  { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_acos() runs on Maths_CT
+{
+  log(" ----------- f_acos ----------- ");
+  
+  tmpFloat := f_acos(0.0);
+  log("Arc cosine of 0.0: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 3.1415926535 / 2.0;
+  if (tmpFloat * tmpFloat < LIMIT)  { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_powFF() runs on Maths_CT
+{
+  log(" ----------- f_powFF ----------- ");
+  
+  tmpFloat := f_powFF(2.0, 3.0);
+  log("Raise 2.0 to power 3.0: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 8.0;
+  if ( tmpFloat * tmpFloat < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_powII() runs on Maths_CT
+{
+  log(" ----------- f_powII ----------- ");
+  
+  tmpInt := f_powII(2, 3);
+  log("Raise 2 to power 3: ", tmpInt);
+
+  if ( tmpInt == 8) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_powIF() runs on Maths_CT
+{
+  log(" ----------- f_powIF ----------- ");
+  
+  tmpFloat := f_powIF(2, 3.0);
+  log("Raise 2 to power 3.0: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 8.0;
+  if ( tmpFloat * tmpFloat < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_powFI() runs on Maths_CT
+{
+  log(" ----------- f_powFI ----------- ");
+  
+  tmpFloat := f_powFI(2.0, 3);
+  log("Raise 2.0 to power 3: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 8.0;
+  if ( tmpFloat * tmpFloat < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }  
+}
+
+testcase f_test_powFF_cubicRootOfTwo() runs on Maths_CT
+{
+  log(" ----------- f_powFF (Cubic root) ----------- ");
+  
+  tmpFloat := f_powFF(2.0, 1.0/3.0);
+  log("Raise 2.0 to power 0.3333: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 1.2599215;
+  if ( tmpFloat * tmpFloat < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }  
+}
+
+testcase f_test_sqrF() runs on Maths_CT
+{
+  log(" ----------- f_sqrF ----------- ");
+  
+  tmpFloat := f_sqrF(2.0);
+  log("Square of 2.0: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 4.0;
+  if ( tmpFloat * tmpFloat < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }  
+}
+
+testcase f_test_sqrI() runs on Maths_CT
+{
+  log(" ----------- f_sqrI ----------- ");
+  
+  tmpInt := f_sqrI(2);
+  log("Square of 2: ", tmpInt);
+
+  if ( tmpInt == 4) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_sqrtF() runs on Maths_CT
+{
+  log(" ----------- f_sqrtF ----------- ");
+  
+  tmpFloat := f_sqrtF(2.0);
+  log("Square root of 2.0: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 1.4142145;
+  if ( tmpFloat * tmpFloat < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_sqrtI() runs on Maths_CT
+{
+  log(" ----------- f_sqrtI ----------- ");
+  
+  tmpFloat := f_sqrtI(2);
+  log("Square root of 2: ", tmpFloat);
+
+  tmpFloat := tmpFloat - 1.4142145;
+  if ( tmpFloat * tmpFloat < LIMIT) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_ceil() runs on Maths_CT
+{
+  log(" ----------- f_ceil ----------- ");
+  
+  tmpInt := f_ceil(3.1);
+  log("ceil of 3.1: ", tmpInt);
+
+  if (tmpInt == 4) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_floor() runs on Maths_CT
+{
+  log(" ----------- f_floor ----------- ");
+  
+  tmpInt := f_floor(3.1);
+  log("ceil of 3.1: ", tmpInt);
+
+  if ( tmpInt == 3) { 
+    setverdict(pass); 
+  }
+  else { setverdict(fail); }
+}
+
+testcase f_test_poisson() runs on Maths_CT
+{
+  log(" ----------- f_poisson ----------- ");
+
+  var float i;
+  var t_Poisson_Table vl_poissonTable;
+  var boolean vl_success;
+
+  for(i:=1.0; i < 10.0; i := i + 1.0)
+  {
+
+    vl_success:=f_generate_poissonTable(i,vl_poissonTable);
+    log("Poisson table Nr:",i," ,",vl_success);
+    log(vl_poissonTable);
+    
+  }
+  setverdict(pass); 
+}
+
+testcase f_test_next_poisson() runs on Maths_CT
+{
+  log(" ----------- f_next_poisson ----------- ");
+
+  var float i;
+  var integer vl_nextValue;
+  var t_Poisson_Table vl_poissonTable := {false,0.0,{}};
+  var boolean vl_success;
+
+  for(i:= 1.0; i < 10.0; i := i + 1.0)
+  {
+    vl_nextValue := f_getNext_poissonValue(i, vl_poissonTable, vl_success);
+
+    log("Next Poisson value:",vl_nextValue," ,",vl_success);
+    log(vl_poissonTable);    
+  }
+  setverdict(pass); 
+}
+
+
+// execute security tests
+control
+{
+  log(" ################### MATH ################### ");
+
+  // integer
+  execute(f_test_maxIL());
+  execute(f_test_minIL());
+  execute(f_test_averageIL());
+  execute(f_test_updateIL());
+  execute(f_test_stdIL());
+  execute(f_test_stdILL());
+
+  // float
+  execute(f_test_maxFL());
+  execute(f_test_minFL());
+  execute(f_test_averageFL());
+  execute(f_test_updateFL());
+  execute(f_test_stdFL());
+  execute(f_test_stdFLL());
+
+  // sinVL, cosVL
+  execute(f_test_sin());
+  execute(f_test_cos());
+
+  // others
+  execute(f_test_pi());
+  execute(f_test_sin());
+  execute(f_test_cos());
+  execute(f_test_asin());
+  execute(f_test_acos());
+  execute(f_test_powFF());
+  execute(f_test_powII());
+  execute(f_test_powIF()); 
+  execute(f_test_powFI());
+  execute(f_test_powFF_cubicRootOfTwo());
+  execute(f_test_sqrF());
+  execute(f_test_sqrI());
+  execute(f_test_sqrtF());
+  execute(f_test_sqrtI());
+  execute(f_test_ceil());
+  execute(f_test_floor());
+  
+  //poisson
+  execute(f_test_poisson());
+  execute(f_test_next_poisson());      
+}
+
+}
diff --git a/demo/TCCMessageHandling_Example.ttcn b/demo/TCCMessageHandling_Example.ttcn
new file mode 100644
index 0000000..6aa78dc
--- /dev/null
+++ b/demo/TCCMessageHandling_Example.ttcn
@@ -0,0 +1,101 @@
+///////////////////////////////////////////////////////////////////////////////
+//                                                                           //
+// Copyright Test Competence Center (TCC) ETH 2013                           //
+//                                                                           //
+// The copyright to the computer  program(s) herein  is the property of TCC. //
+// The program(s) may be used and/or copied only with the written permission //
+// of TCC or in accordance with  the terms and conditions  stipulated in the //
+// agreement/contract under which the program(s) have been supplied          //
+//                                                                           //
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCMessageHandling_Example.ttcn
+//  Description:        TCC Useful Functions: Message Handling Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-03-28
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////
+module TCCMessageHandling_Example 
+{
+import from TCCMessageHandling_Functions all;
+
+type component Test_CT{}
+
+
+testcase tc_1() runs on Test_CT
+  { 
+    // COMPLETE TLV , SHORT FORM
+    var octetstring vl_oct := '301802010004067075626C6963A00B0201050201010201013000'O     
+    var integer vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int)
+    if(lengthof(vl_oct) == vl_int) {setverdict(pass)} else {setverdict(fail)}
+    
+    // COMPLETE TLV , SHORT FORM , NEXT PDU STARTS (4 bytes)
+    vl_oct := '301802010004067075626C6963A00B020105020101020101300030180201'O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int) 
+    if((lengthof(vl_oct)-4) == vl_int) {setverdict(pass)} else {setverdict(fail)}    
+      
+    
+    // INCOMPLETE TLV , SHORT FORM 
+    vl_oct := '301802010004067075626C6963A00B'O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int)
+    if( 26 == vl_int) {setverdict(pass)} else {setverdict(fail)}    
+        
+    // COMPLETE TLV , LONG FORM
+    vl_oct := '3082001802010004067075626C6963A00B0201050201010201013000'O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int)
+    if( lengthof(vl_oct) == vl_int) {setverdict(pass)} else {setverdict(fail)}      
+    
+    // COMPLETE TLV , LONG FORM , NEXT PDU STARTS (4 bytes) 
+    vl_oct := '3082001802010004067075626C6963A00B020105020101020101300030180201'O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int) 
+    if((lengthof(vl_oct)-4) == vl_int) {setverdict(pass)} else {setverdict(fail)}       
+    
+    // INCOMPLETE TLV , LONG FORM 
+    vl_oct := '3082001802010004067075626C6963A00B'O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int)
+    if( 28 == vl_int) {setverdict(pass)} else {setverdict(fail)}        
+           
+    // NULL STRING
+    vl_oct := ''O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int)
+    if( -1 == vl_int) {setverdict(pass)} else {setverdict(fail)} 
+    
+   // 1 byte STRING
+    vl_oct := '30'O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int)
+    if( -1 == vl_int) {setverdict(pass)} else {setverdict(fail)}  
+    
+   // 2 byte STRING (includes length info)
+    vl_oct := '3018'O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int)
+    if( 26 == vl_int) {setverdict(pass)} else {setverdict(fail)}  
+                                      
+    // COMPLETE TLV, INDEFINITE LENGTH
+    vl_oct := 'A1808101AA0000'O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int) 
+    if(lengthof(vl_oct) == vl_int) {setverdict(pass)} else {setverdict(fail)}              
+    
+    // INCOMPLETE TLV,INDEFINITE LENGTH 
+    vl_oct := 'A1808101AA'O     
+    vl_int := f_TCCMessageHandling_getMessageLength4BER(vl_oct)  
+    log(vl_int) 
+    if( -1 == vl_int) {setverdict(pass)} else {setverdict(fail)}                         
+  }
+control
+{
+  execute(tc_1()) 
+}
+
+
+}
diff --git a/demo/TCCPermutatedParameters_Example.ttcn b/demo/TCCPermutatedParameters_Example.ttcn
new file mode 100644
index 0000000..67190b7
--- /dev/null
+++ b/demo/TCCPermutatedParameters_Example.ttcn
@@ -0,0 +1,68 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+
+module TCCPermutatedParameters_Example {
+
+import from TCCPermutatedParameters_Definitions all;
+import from TCCPermutatedParameters_Functions all;
+
+type component MAIN_CT {};
+
+testcase tc_001_getPermutatedParams() runs on MAIN_CT {
+  var PP_ParamSet vl_assignmentList := {
+    {
+      types := { "type1" },
+      values := { { prefix := "", rangeMin := 0, rangeMax := 1 } }
+    },
+    {
+      types := { "type2" },
+      values := { { prefix := "", rangeMin := 0, rangeMax := 2 } }
+    },
+    {
+      types := { "type3" },
+      values := { { prefix := "", rangeMin := 0, rangeMax := 3 } }
+    }
+  }
+
+  setverdict(pass);
+  var PP_ParamSet vl_referenceParamSet := {};
+  var integer vl_permutationIdx := 0;
+  for(var integer i := 0; i < (vl_assignmentList[0].values[0].rangeMax - vl_assignmentList[0].values[0].rangeMin + 1); i := i + 1) {
+    for(var integer j := 0; j < (vl_assignmentList[1].values[0].rangeMax - vl_assignmentList[1].values[0].rangeMin + 1); j := j + 1) {
+      for(var integer k := 0; k < (vl_assignmentList[2].values[0].rangeMax - vl_assignmentList[2].values[0].rangeMin + 1); k := k + 1) {
+
+        /*log("permutation #", vl_permutationIdx, ": ",
+          f_PP_getPermutatedParams(
+            vl_permutationIdx,
+            { vl_assignmentList[0].types[0], vl_assignmentList[1].types[0], vl_assignmentList[2].types[0] },
+            vl_assignmentList)
+        );*/
+        vl_referenceParamSet := {
+          { types := { vl_assignmentList[0].types[0] }, values := { { prefix := int2str(i), rangeMin := -1, rangeMax := -1 } } },
+          { types := { vl_assignmentList[1].types[0] }, values := { { prefix := int2str(j), rangeMin := -1, rangeMax := -1 } } },
+          { types := { vl_assignmentList[2].types[0] }, values := { { prefix := int2str(k), rangeMin := -1, rangeMax := -1 } } } 
+        }
+        if(f_PP_getPermutatedParams(
+            vl_permutationIdx,
+            { vl_assignmentList[0].types[0], vl_assignmentList[1].types[0], vl_assignmentList[2].types[0] },
+            vl_assignmentList) != vl_referenceParamSet) {
+          setverdict(fail);
+        }
+        vl_permutationIdx := vl_permutationIdx + 1;
+      }
+    }    
+  }
+}
+
+
+control {
+  execute(tc_001_getPermutatedParams());
+}
+
+}
diff --git a/demo/TCCTemplate_Example.ttcn b/demo/TCCTemplate_Example.ttcn
new file mode 100644
index 0000000..0c4570c
--- /dev/null
+++ b/demo/TCCTemplate_Example.ttcn
@@ -0,0 +1,60 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCTemplate_Example.ttcn
+//  Description:        TCC Useful Functions: Template Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-12-20
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////
+
+module TCCTemplate_Example{
+  
+  import from TCCTemplate_Functions all;
+  
+  function nlist(in charstringList pl_params) return charstring{
+    //    log("params: ",pl_params,"\n");
+    if (sizeof(pl_params)==3 and pl_params[2]=="R"){
+      return int2str(6453);
+    } else { return int2str(9);}
+  }
+  
+  control{
+    
+    var charstring str := "<SOAP-ENV:Envelope
+xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"
+xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\"
+xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
+xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">
+<SOAP-ENV:Header>
+<cai3g:SessionId xmlns:cai3g=\"http://schemas.ericsson.com/cai3g1.0/2004/01/22/\">$(caiSs)</cai3g:SessionId>
+<cai3g:TransactionId xmlns:cai3g=\"http://schemas.ericsson.com/cai3g1.0/2004/01/22/\">1234$(caiSS)$(caiSs)</cai3g:TransactionId>
+<cai3g:SequenceId xmlns:cai3g=\"http://schemas.ericsson.com/cai3g1.0/2004/01/22/\">$(caiSq)</cai3g:SequenceId>
+</SOAP-ENV:Header>
+<SOAP-ENV:Body>
+	alma$(<2..13>[R])korte
+  <Delete xmlns=\"http://schemas.ericsson.com/cai3g1.0/2004/01/22/$(caiSq)\">
+    <MOType>PoCGroupsXDMSUser@http://schemas.ericsson.com/ims/pocgroupsxdms/provisioning/2005/06/01/</MOType>
+  <MOId>
+    <PUBLICID>sip:$(usr00)@$(dom00)</PUBLICID>
+  </MOId>
+  </Delete>
+</SOAP-ENV:Body>
+</SOAP-ENV:Envelope>
+";
+
+    //    for (var integer i:=0; i<1;i:=i+1){ 
+    //  f_subsfiletemplate({{"$(caiSs)","CAISS",omit},{"$(caiSq)","CAISQ", omit},{"$(<\\w..\\w>[\\w])","", refers(nlist)}},"cai3g_delete_PoCGroupsXDMSUser.body"); 
+    log(f_Template_substitutetemplate({{"$(caiSs)","CAISS",omit},{"$(caiSq)","CAISQ", omit},{"$(<\\w..\\w>[\\w])","", refers(nlist)}}, str));
+												   // } 
+    log(f_Template_subsfiletemplate({{"$(caiSs)","CAISS",omit},{"$(caiSq)","CAISQ", omit},{"$(<\\w..\\w>[\\w])","", refers(nlist)}},"cai3g_delete_PoCGroupsXDMSUser.body"));
+  }
+}
diff --git a/demo/TCCTitanMetadata_Example.ttcn b/demo/TCCTitanMetadata_Example.ttcn
new file mode 100644
index 0000000..c7265d3
--- /dev/null
+++ b/demo/TCCTitanMetadata_Example.ttcn
@@ -0,0 +1,47 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCTitanMetadata_Example.ttcn
+//  Description:        TCC Useful Functions: Titan Metadata Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-11-14
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////////////////////////////////////
+
+module TCCTitanMetadata_Example 
+{
+import from TCCTitanMetadata_Functions all;
+
+type component Metadata_CT
+{
+}
+
+//////////////////////////////////////////////////////////////
+// TitanMetadata functions
+//////////////////////////////////////////////////////////////
+
+// test f_time function
+testcase f_test_compilationTime() runs on Metadata_CT
+{
+  log(" ----------- f_compilationTime ----------- ");
+  log("Compilation time: ", f_compilationTime());    
+
+  setverdict(pass);
+}
+
+// test all TitanMetadata functions
+control {
+  log(" ################### TITAN MetaData ################### ");
+  
+  execute(f_test_compilationTime());
+}
+
+}
diff --git a/demo/TCCXPathSupport_Example.ttcn b/demo/TCCXPathSupport_Example.ttcn
new file mode 100644
index 0000000..d3bd561
--- /dev/null
+++ b/demo/TCCXPathSupport_Example.ttcn
@@ -0,0 +1,45 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCXPathSupport_Example.ttcn
+//  Description:        TCC Useful Functions: XPath Support Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2008-09-04
+//  Contact:            http://ttcn.ericsson.se
+///////////////////////////////////////////////
+module TCCXPathSupport_Example 
+{
+
+import from TCCXPathSupport_Functions all;
+
+
+control
+{
+
+  var universal charstring doc := "<a><b val='123'><b /><c /><!-- -122.0 --><d /></b><!-- 500.0 --><x
+    target='xyz'>sub text</x></a>";
+  log ("The XML document:");
+  log (doc);
+
+
+  var universal charstring q := "sum(//*/comment())";
+  log ("The XPath query:");
+  log (q);
+
+
+  var universal charstring res := XPathQuery (doc, q);
+  log ("The result of the query:");
+  log (res);
+  
+}
+
+
+}
diff --git a/doc/TCCUsefulFunctions_CNL113472_1551.doc b/doc/TCCUsefulFunctions_CNL113472_1551.doc
new file mode 100644
index 0000000000000000000000000000000000000000..fc5b6cec28e0aea98e77b5bc8643be2da7c409f4
GIT binary patch
literal 388608
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

literal 0
HcmV?d00001

diff --git a/doc/TCCUsefulFunctions_CNL113472_PRI.doc b/doc/TCCUsefulFunctions_CNL113472_PRI.doc
new file mode 100644
index 0000000000000000000000000000000000000000..caa94014f9635e48d5d8771da1e0c23760190556
GIT binary patch
literal 139776
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%0D@(!hHlsXft2e{SWYb0#{l%x+3-q
zQ1geu<V_p=E(A`8*FBuzKF7EbcwP5dw>MW-IE>J8v8%i_gws9}uFE%zh`%NlpVjua
z;XjD~KUk5qsLkl5kiVIK0^z<PRB_n(5VgMg?-N*$tSdgFhn8R5yb~vEx_Pza%eJ=Y
zJ&7)he_wt=`<(*qxBt=If8xI65a(U4%ikXVJ7Yi(sc&E=mLFx^twP?={C<;vxT$K6
qAs@zBDrrBXFgA$k%yzgX6ly;AknBAI>96J+21>c@t@+<A2L2D)=|_tI

literal 0
HcmV?d00001

diff --git a/doc/apidoc/Data/ClassHierarchy.nd b/doc/apidoc/Data/ClassHierarchy.nd
new file mode 100755
index 0000000000000000000000000000000000000000..f9db0f77f6a1329029cfb75e8beca966a811175c
GIT binary patch
literal 7
McmZQ$)L;Mt00930FaQ7m

literal 0
HcmV?d00001

diff --git a/doc/apidoc/Data/ConfigFileInfo.nd b/doc/apidoc/Data/ConfigFileInfo.nd
new file mode 100755
index 0000000000000000000000000000000000000000..d9d635bbf1166aa78ab399e04142cd9977121ffd
GIT binary patch
literal 26
XcmZQ$)L>v>2w0?M?eV194w(i3SWXB7

literal 0
HcmV?d00001

diff --git a/doc/apidoc/Data/FileInfo.nd b/doc/apidoc/Data/FileInfo.nd
new file mode 100755
index 0000000..1ed89a4
--- /dev/null
+++ b/doc/apidoc/Data/FileInfo.nd
@@ -0,0 +1,41 @@
+1.4
+C++
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCTitanMetadata.cc	1352713393	1	f__compilationTime
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCInterface.cc	1352713390	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCInterface.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCAssertion_Functions.ttcn	1352713388	1	TCCAssertion_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCMaths_Functions.ttcn	1352713391	1	TCCMaths_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCRegexp.cc	1352713392	0	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCRegexp.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCSystem.cc	1352713393	1	f_SYS_getpid
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileSystem_Functions.ttcn	1352713390	1	TCCFileSystem_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCTitanMetadata_Functions.ttcn	1352713393	1	TCCTitanMetadata_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCInterface_ip.h	1352713391	0	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCInterface_ip.h
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCXPathSupport_Functions.ttcn	1352713394	1	TCCXPathSupport_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCMaths_GenericTypes.ttcn	1352713391	1	TCCMaths_GenericTypes
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCIPsec.cc	1352716354	0	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCIPsec.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCIPsec_Definitions.ttcn	1352721406	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCIPsec_Definitions.ttcn
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileIO_Functions.ttcn	1352713390	1	TCCFileIO_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCTemplate_Functions.ttcn	1352713393	1	TCCTemplate_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCConversion.cc	1352713388	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCConversion.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCMessageHandling.cc	1352713391	0	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCMessageHandling.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCXPathSupport.cc	1352713393	1	XPathQuery
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCIPsec_Functions.ttcn	1352716355	1	TCCIPsec_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCEncoding.cc	1352713389	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCEncoding.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCSecurity.cc	1352713392	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCSecurity.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCEnv.cc	1352713389	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCEnv.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCEncoding_Functions.ttcn	1352713389	1	TCCEncoding_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/zuc.h	1352712527	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/zuc.h
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCEnv_Functions.ttcn	1352713389	1	TCCEnv_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileSystem.cc	1352713390	0	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileSystem.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCRegexp_Functions.ttcn	1352713392	1	Regexp_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCSecurity_Functions.ttcn	1352713392	1	TCCSecurity_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCSystem_Functions.ttcn	1352713393	1	f_SYS_getpid
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCDateTime.cc	1352713388	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCDateTime.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCMaths.cc	1352713391	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCMaths.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/aka_algorythm_set.h	1352712526	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/aka_algorythm_set.h
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileIO.cc	1352713389	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileIO.cc
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCMessageHandling_Functions.ttcn	1352713392	1	TCCMessageHandling_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCAssertion.cc	1352713387	1	f__assert
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCInterface_Functions.ttcn	1352713391	1	TCCInterface_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCConversion_Functions.ttcn	1352713388	1	TCCConversion_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCDateTime_Functions.ttcn	1352713388	1	TCCDateTime_Functions
+/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/digcalc.h	1352712527	1	/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/digcalc.h
diff --git a/doc/apidoc/Data/ImageFileInfo.nd b/doc/apidoc/Data/ImageFileInfo.nd
new file mode 100755
index 0000000000000000000000000000000000000000..e6ccf0d818240c6eeef89cb6cbf9ef801589a9f6
GIT binary patch
literal 8
McmZQ$)L;Ms00A!mFaQ7m

literal 0
HcmV?d00001

diff --git a/doc/apidoc/Data/ImageReferenceTable.nd b/doc/apidoc/Data/ImageReferenceTable.nd
new file mode 100755
index 0000000000000000000000000000000000000000..e6ccf0d818240c6eeef89cb6cbf9ef801589a9f6
GIT binary patch
literal 8
McmZQ$)L;Ms00A!mFaQ7m

literal 0
HcmV?d00001

diff --git a/doc/apidoc/Data/IndexInfo.nd b/doc/apidoc/Data/IndexInfo.nd
new file mode 100755
index 0000000000000000000000000000000000000000..5315d8e3197a3d43fe07b282c2918d305ef66136
GIT binary patch
literal 225
zcmZXOK?;B%5JeTDJWBTn>;lo=!i6AXm@T?}^G9h>Ph|Y#_m90E6*J79e0EVOEpV-i
z3lL%KMSBT}_(5}3pJ>Er-ez?<xGj1#{=mX?Ho(EEHELVt;HZ_E5}n0Ssj}UFMYr4s
MCL!ew6M;W74?3<87ytkO

literal 0
HcmV?d00001

diff --git a/doc/apidoc/Data/PreviousMenuState.nd b/doc/apidoc/Data/PreviousMenuState.nd
new file mode 100755
index 0000000000000000000000000000000000000000..1a1c2e98fc1efc6a139a96dc4253f65b4d9eb73c
GIT binary patch
literal 4058
zcmb_f(N5bi6!k`clmSDaZQ8UC*h{I{ChZv&*gDZs)(!#Nl)0%BED|S*or>=3cW)9W
zrtO~Ur`R{nIrkhpzV^nGcZ3j!>>S_IHjTn0o2k2ajgSL+PrW+eNv00($fz?-#<HW7
zFFK=c*Xt&6oQTdjA7?b<Ok(hdWI-OC<-%7y5z^~^J3l)5@bT08j?DbdGE|4Oj-_N7
zjtAye;CZy@lflY-kWh_%==%Ww(hPZZp5&KRt_JuJ-2#WVx`~*wOqL?|Ad4mdnUPBy
z{Er|(?5jsKO;Y5yUA6{U%Wa)d#o8ktGe~0>(!f4;QR{^bb^{P7UKkWjHsq&GrUqB5
z+&tl-Pa|Actx4I0-{kAcqz#rs+*9Ev6E4EaNZqw&qybnNsUwYGJ4P<zY9rT9#S~41
zS%el!TiwJO3xM%|17JhY)yk7J52>{{XFS4HzYPPh*}FhJeH(l=9Kavc@P?`zdn^rV
zAq*ICH^B^sGpShIytlKPEJN0oKJ5*F|26RU29o*S2@AO3MS&@Y+}hB+92<!DYvQI}
zT-#%;LABggPbiiJ)W>D?9LaSbSCW;gXd(g$R>eAG%&e8FxCB@$b^27@0sk}L$EHMq
z=Qga>Xw~!;T|=0a>6-&BL;)YxqVm;eCRoP((JW=s&KA0etF7GYGbw4v+Fz)cL}k5r
zi<y*R9W^`{Tk-jS@H(%J?<`~wDfqHiwu}s{Y*+KBn%EsOKhL<D0X3dLbQhPHl@o{o
zSk1bQ7!s|VKo)Ve$c=I{2LA298{Q1Pkg1eU?39}l8~j>;w=!|_bwq1&M=VYwI4@SN
z>aJ~97jbn4yCbfsX!n_-6RIfWu@AQrKZ#QgdBG7LPqG%SL$E3fCQVdY{boLF2>)Z_
zpMAvHfNS+T*8|v!+rvCflT3klEWAam3N@b)&qhAWv5RzoeXDqVnX_z0hPLT&GjPb-
zZH{Yv{crBW`TcBVk`l)u>pd}H4=&j{g{vRjtYKFsn;{kj8o8te*EI?2OiAMURnsNw
oco34r3E%-^>catXgX&TZW6Fx+C@3s2<_d1#bc|oQ)2d1S0hN1RIRF3v

literal 0
HcmV?d00001

diff --git a/doc/apidoc/Data/PreviousSettings.nd b/doc/apidoc/Data/PreviousSettings.nd
new file mode 100755
index 0000000000000000000000000000000000000000..3f2b18bc1c21f6fcba0e0a0810d008e88451a6da
GIT binary patch
literal 133
zcmWm3u?oU45P;zeh=b4J;C4g>S0zvsqBzvKv}vS)T&^S+2cO<L{LA;R)eZnwO8^Sa
z_~D_Th)dWS(-|h>gf<Mh&%u{JzKVa>*wo}Ca4Ma7SgjAo(;iE9ptOQ5PD~#Cmm~QR
ag=V}wZzDV8DsvT_gd%L3+%Nmu-t7;hl_*^R

literal 0
HcmV?d00001

diff --git a/doc/apidoc/Data/SymbolTable.nd b/doc/apidoc/Data/SymbolTable.nd
new file mode 100755
index 0000000000000000000000000000000000000000..55b841c6cac0d443f97d419a2d430988870bfc2d
GIT binary patch
literal 84415
zcmeHwX>%OswO)f>b-l>@BH2#MzLJ1zZ~;JxG;PTSv5;c|B!mHF*}nF;G1CKdIG7oB
z&wzw&m3_aZoVrO>DmVF%Pf4Xx`2+a__m|~)&b#zGJ?~&4x|>Q>s%#3gb)SCU^PcrN
z=X`c<J_v%j;5*&cX5&$7FpT@HXo!D1t!L?=-#fu)zrKDv*w3zyM(zIfy|uO0+TiGD
z(7(Qw?59zh#2MdwoW<R7Z*$ylkCH(@Ypp%pT3TAUd29K4mbUqY&7>FO2KF1*c)8&7
zUHyyTgZTL<PWw?WG;f8oNDAkZe%L;Y(rlC_{ey7WYxSd}cp*&V(KzjgNq-a{#A)!O
z)$m!$he@4l4)DT0>a}n#_*%CmuUlyxby}@XG>Y)d+vPp;wRYQi&LDVmCRsThB<yqD
z)^PBw(Ev3cl|jvRG&;;?Z@@2o8z2O5x%HZc`%xAz;+1_Pem)#bt^C4nlw@%@8icq2
zmLFG;E#W)nPx)kFF8G4lj&^U5#dy?OnC<7jXC?m&6~bSZ%wDV8nR>w6Ya}-dqp%CU
z4x=m^w3BEQcfx1M=r9}|#^FJ79QW17oj7Z!$#67CugwKt?6#V}Znh5M(J<)*SIXhE
z=1De+kBXf3gIzfgnb3o~g@dm8Gaa<!EGuWN)vagqRS=v(#$523ZmT`WYU1;ozP-oo
z$>rVNAR2{H|Dcyk6L~NAp;}5=K72Xp$6QSLW|&5u##TR@3;yn-9h|Wb#&LRrjct{2
zXyuB{@o+duN3+-XpQfKFCncQcc^&t`k7)+^>PXJ#N4-{O(3S)3|H2Rt)OyM%3hg2A
zeKU9)g0^>p6$$0eq593BFYjz`g}BZ5DDIDfX4%V9<ofec0?`k>RFI05GU2BwETC?~
zy~896j|QDFWJjhp7q79@G5$%~U?oV!RwwSoqqwmHns&-qv<8H5+Kt+Aam5za<xXK^
zCyY9s6rv&Qrh_9$w|+c&Hb|d{(B?1ag0IH?cB{4B*xqQh?m`*7dlTe6DucX@etXb?
zJ}**tT|S7zBhVEch*sh4Lv{DCJ4mr;;r#CATDW}U<~vX+-^9L}tL29VbpEzXI`b<l
zTgL3}&-}Zqsiy+%gt2~B3Xyi4jv}1U(aA8z&R-ed2BmwKrZjpIwW8j^AUzo!9<{P~
zbnP(s{4or+XkVD{Ro;)Qhi%?J8DVR`37%_5z4o{VO}4aryVcrgtge)`z0J5iPLt6|
zaeJTcjME{M>78)R+&f%Z4)>Fh-SKFQlhMb)z~O*I0h`3({PybFLO6ybK2RnFuN}$*
zLjxa$p#Lh#mnYoYTYGqQ#avHJt5&2`&eo+D+6a;2gDp5JBTCyK+o+A>s5g!&lz)3;
zF&rkp6N0j*>1Y#+U5Bmr&a}ShwuFFO3zAW-$X816wdT`tl*VB?7>vldN?pp+TnWD5
z9J=5NY~BjQf;nQi_E*8IjqT>@gVk26yOfQhw5%J>V${FE?-`Cqu=*e&Px|e{(8rfx
z%d1T#KA*%V;e$n(2mKC&Db#MS7xy8+c2^&+FNRqR71?jcVSjwI4;#7p!9(cEPVu5g
zQ6EB&niIBU-0Os^+ncZ=|E}8_B}egc7IUFXk!$NX^?SHxQLg1a+JEq|jUj_phBETu
zkDbI(N~^-Y0f%wobtgKRczrk+7k-dT{s0eZxlvy?_?2}P;a9W=eHb{f-n2%5lqG4Q
zI&Am?t}y6#GALi@5Pp)zL+m707GI6Bus4A4lTYS?&svtMNDv#!VGVqu`0DF8R&Y(o
z2b-c;u{dQNEW=<$LAl}xO6Z7`ypF9v3?fR^PC-<fZ51CYI+=q@4Q<7JteU(#YnHPd
zh5|{3p}<>*W1LekRMeq%4OL)*PW(4OB^^r@S!tym9aDLU@dd_sNE#f`PTaoN+`a`}
zi$yF&h)kPZ#X!%NVSU75^7~Wo4BDf3l*e=qvLjMvPrcXe_yOn-Z(XIefQyO!7|!#(
z8!OjVZqpWoZ)xm`)_q9lR`dSqQdy7N)JDy0nfX_r%=A#?Spet{@yrVAlJud4<O4^(
zQnQQ>?OHiM3Ep2b&oAC9*C6B?Xvs)7)>uX=dXWv|b^>M72|)pL%{SUD==R1A_`L;*
z*-f6W_Ig;s-;`lGsmre8s{KSlhnim?tD)54FV4$fR+so_3GciYUR??ncGAIdf?x}x
zPEZ6&@LM5ILow=~$Y*oGmt6DV9Xw1aE{tJ^qJ&%Di=KciF$hG-&#(!o|5F{aiTZ>7
z$q|iO{%rLDHUc6q8+A6fwm@$kX5u{`?<xw&uA7XOY$X{ilOFyRmQ*I;*fOFr9RIT;
z;rmo8z2uKzFK#eod<RGOxUnU+y|pTN#ZcS#?Qu4u1w~bjU}A<K;wXd%%`jU8rBAOg
zQ>JMLKZ|HpX$N+k;TIip7w*Rkq|oug8ITQBAxF{k2G_GXKj5i;cqoX5GKgf&Y@qNk
zIXH~*u-Xpn4#u<s@qqnK{5-rN{K6+yudzUhtj)8-7^ZkKdK=FA<WH7pzqDG2%vSnb
zi_WGp3f#x)CT4X_s4+?pB<!P{a(mdLac{I0AIDXTkx$df4gOwS-4yx(yk<oiWR4{x
z{L{z5@7CjX5AF@4y7B|)bt^qo+;q@O+9zR;gmXK@A%$2O9b&sO3Bi)rc-1UCgh`1j
z?8ji@xP#OC6`bDj{-a#UVRwF4h6q*mNe0(=wi*IAOs7{S$(hnXQMxp(f1-5R9&T65
z+-i>Zp}V8@C`8BztD{VRIcoHna#I_U<I&pQ#$I!8xAE|vH|(%ceb`~kh8<wCq$k5s
zI2k0+qK5|$3aAUUBHZl>GJx2*;5B3CJwqHKZnZ{OZ#bsCadwDpuF%?h>x^uY&_i<%
z9wRKI*52K<bx>53vA5x4J4414!}VI=D9c@WoH}?DN0UJxhvAff=hN6=8iE4$a3ddC
zpL|i`q9|Vs36w3_<z$P<%`k(Li~xX^C}9G_Z8%H^Lxl83aoAj?N{o)9q(>iwTmHIX
zN=fUsMk$i5tvs(=Ay=N2<1{{q4r8n*-ELV-X}rwYvT)1ClyvP#2AEQ(Dq(94h7^GL
z>nP3HQ@<a)&R;<l)9BboxI9MIj}nj<R9bJEqN<<O#L0f_4MlgzE;Kd8ojt@~Js8KZ
z^X=)`gMFF}VNQ<*Ahk+6Un%I1MBm1+fMCqg!}n1V{)zUxLs~e0V_`8IwH2Y^{JVHH
z?wD6gw-&;WgP+=irzAMsnv@0;0t=Arh&yKq9d_hkU?=vX6a0%KH5#-BJ;dU_)ip6j
z>#?mq-g{Wq_8E6!HmjySR@Gt836dyFp;cS&GL9%(TfJIE08)Rn%+R5Ibvu**y7D$$
z!5aLtjdK>_o1?)K@HQ7fTh|2-rJ_*hn+hO+3`UFjvpktjXY@E3j5DxrZP0;V`*ws8
zo-^n>2dLmD4N1?#s(%LCu@CS>IskJXfya^l5Qf#;rCi%*Nv}t3u%wJj8xU@_9`CJz
zM@w;OjqobEwC`?e<PMEoSV-rJy;3Q`3|4MHb7%c-3;9M+T8cBPu4>523UQ~o|K{7c
zNlH|vJhwYSV3$@^LR8L;Q3ZH=N8%t`*cQYdd@+fsA21{_`CUk}9lR^wbZ*+oM!uWk
z?Tg)%KRErSUMUM3-pGE^J1KI7R{OIZ@rTwESU%#scM^%==h9n!VV7y{l>b=U&R$|S
z&fqNtSMkL3yNpB()i23gl+(~y5%W>uJedZb`=>XQi?DfV|LKq8HWQ;JD2aId#*}AZ
zGS4d8cwUzPs1~Fw%hDC*9M0Ai^F9U#1@m^*jmh#W$8*<F2ZR-XeQG~}P0)UliOY(t
zuq-}-9VYdP3?|GRQJv}FAdQYhRP`drg2T9@oeYaw_{U4{4*3N3m!KAAKe;!ZY0wkY
zjLzxe8p!1qf{VZ&kQbql7mOgev9-7LA-1*_wA#LJW2dN@RxmuQgE2C-dB}lSNs>Rs
z5~pJ&`Ph`*uY9QS0|aYTlNtNWK{^-@aSU+>;yCu=qapDK`R?O`QoPscD^KD${^~WJ
z0kac&5Z_UDbNDDt4iW%YfqtT0xtAaS*=%fwyUT#j#1Lx;R`LTxTe49y8jl!>mKQ{?
z;$tSa91b;iPyyf8QPSV6HbB|e;s624Jf!>L;YkSwhZEsRH=v2=<V5g&8T(m^rDAkP
z(Ng)v3k2U01w=p-3TJntiG6qlAvVcIknc-jJ_S3w7x&{dY3~vFqnOWS|2&!@o)}yb
z+`W2dEC_C&&uPkZ^2_y@fLqh<Nw>x%+kf{-NK1z&&h%(UESZ92eByhPsT$w=*;4^1
z6s2o))V0FZxxAC*H<-GDcO?NX_+(dCt4EJOn`z5;6*joil;Euz%<$lUc(+P&i_M&v
zvn+8(To%k_Ygw8zW4Ti{(VFnXWVSVWOW`3W4ANB%@g@LGa!Uof6tu%G1uCfxl+dGG
z<6>EB3-bS?Z*2?oOdW<Zqx{Bde1~xX!oMyU-~W=`5=Po<5n*fIgb#0zAW}}wD&Ua<
z8C=ZYe1K#t6RsZz4M|E%I!K3hMT-N)PX*5HN6e3z1F}R8Jj~-v5@W-)pg>T|0X;5>
z#!?QMQXjK?-Qcc|5rhD4KP_t1$4C}Za*0-8IiCcB+$wP1&g&a`sO-38*0Nw0pc2QC
zN+x$w%6gq18wlR_tyhtjFn6RZ3u*WDjujY)$QU~$bVLS1js#SDWd?Wyh%144*X1z%
zZ{PC@5wpCd#gLwaBX$#n#tUyju^mMjlxX4o{d5p@+L1;GaP5o_hW*x|4w^s)e9ph`
zyw}({zPS)I?!_Yqmk!wEcpvuxSU!6q=gVH){94B*J<xSvv24s#L4mf{3H>O=pfkIk
z`zeJ0RPYzyqE8bvC7^pP$Pk|ea#0}Adu!7`AgsW-aX<?CzqQ`je2LJ1-rfuSzkTy3
zP{6M`_9rZMs+*d&_ka1e*V>?@MLcxJCZsd|G7V8UIWHT=jP2TNwmR7mwI$5_lw~ck
z+Vrf#G%vbof*RQ{N9GOvb*8UL#g_>8ZW;rM#HRu5dlW<Sf6?j+SQfPyKX=6V0a_Af
ziF<RHK8NvhjjzOCi>^2)UI8}G)!gP$7jR9UNDL#sgGfPhl>wnVWhmNGtHXM{)Sp`~
zRpOB*mFK2NGQyCAvOHX4BE3lO5&y*sSC(B=hyQx}lww!~moufXjEe|Z*w{W5X6XMc
ziBu%6vvB^cr{lrsr*hLcQ!f@^(e_xPrhuSH|0=*!DiCj=T~hgqG)N4@Hgd^;I;nWE
zyq{<3Yz#kv#s<(YLH(J4k6SRGTLzC(N(2Z7zPEzxyYc~mJbBGH$R&2f0q(&30cI{u
z2WbnLf7<xqiV8R24P{?z6k~fd26RqtZ@{=%CFIJYPUj_glU~T!Bso*I%9+ljqyB;=
z*nSsvCSfe2j_N}OL`!iD&Typs=xq`pMYZbqLg+sg`%JxzdW`aRRGGYbi`swGLe_R7
z1_8{r^D`8153M7%X`r>iymrGV<20BKGL5fvJ(-bb2&-CYzYVYyR;c<|;Rill!@IkF
zwt{Rh6{&KIlJm5*?v49>z$r)SKOYA_wqhMxW?Bj1;3|O**#vxzf<!lJgG4ucRvsYH
zpup=|I~!aCMgNPlvuA>$6Xmmq0{vBa$f{7$#Hqp`H9p#7qKNBqOncttouFp6hl<b!
zxylfJwsZMf6Q1OFi1dqz$#R(`JBU<fQ<MOsBv^n_oQPRLe-BET`Pf`rIi!3|!Zs5h
zgH{dMd9=fPb2W)MH%0!oi99Lrhm=KzxViGZAEAsKp`8ab5Lu=<#ZA>#v!A-Fd5nqZ
z6JuwUqDoY}$gE5ee{yP!$<lI4jOiV3j7e}3=)vQSFYT<uBW9BWMH+D!^?_plt4}pp
z5?uW-0mRq%d7;w@%UUok!1T`ByC|Xs{6xMDkh#2YK7QO!P-Lq<g(|_{@NwQg&Bqa#
zN{;}4m|w5h%?w_zpanyo>nlgR%nCs{_bEk=Bd&=;TTi)xbE8sDl-D?OZc>WVV1PAD
z8#~u7*B^8)TuL@*c6`IR(;v!!-w2#xJ07936{r_`Ad1=Q>bu=I4_1wWb8b)}tjD=a
z$<C#7<x;GbS@;;|J|C39VR`vd;Rx=RarJH0cjdlD>zu;DrO3wI`kZ}KN)cObti#!n
zQsl1Jl5uWQ3VWFcIAuqESq1}a^p6XCRm%DsWm~v*DbhVZ5vMFpS<qK!Uq38qy-%UK
z6xJ~+`;_}!o^?9O0h4n82RkcNielJB_Wk*AHu2&$!Ca*SxU9WExOEk?R_@>JbPcq>
z+bWPD84<iU-AZm~zG`Dwx&In0D2|4+?fdDn<Lb@@z$V$GD4S5}9#o|;jybf&wa=eD
z2!3zj-+8*U#C}u=>cSy|P|9h*-d1(;Od;5^7t3lPtOzH>{o@1;U!~DdeC>d~J9@$z
zFkikUy8fwj8R~AqC#?brEQ##EnrcmRZ+nmO2b)$3OU{yI`Fi}s7ZaPJCkLlE=kBo+
zVl<s~KtJm#r2iOlc}FN+XY0JBrR9~YBql`Dfji9zWhqN5;lsf(n(8gx2$xsxtlYSB
zV>!gn1;D$px&x4NYjtIn?dnQdinC8A8X`<ru{)G7HpsfSrFX*z$)fpFAvlXj_zdZ9
z1yyl!65)gPLg04mNF<cSD|lLXG0K(db{!Ae^35gy!%UMRyZC)oGBDjz8HtrPp}eIi
z6MBLuOek2JIrn_%TQVjYXV5j3^S)GbWyF%vtftZ5VjEyUfJ#g7&o+_rNB4I$o*-vF
zKP*IJsJx#~gT1~p34cNwf&e&qrnz9jByL#*SgcYkmMNC(_T|qT1n)P{hXOs66cz!T
zfrP7RJ#6x@`!T8&Ob*vnP$I9;XIl1$=0Q}&IGbmq6SyuJXG;-b+zOxIyoKW~mTNsZ
z01~m*u1^2ccdD$}VhNgeEE^PbqIPNmbkUxE3*k-F&^cU*(wiPCK%IAn=r;WfkaXuQ
zpijL_n_DojW{K9kKfk)Pz}6&(h;A}8Z`ui!8}4#>@*KT?(7%9S6<8rET`EbgihKV+
zGFjuMyS#F<@*Ys{zd#uZtGCzie<+o?;JfB*N)eirakXG{j}q#V3XkNw5GuT7hMuhb
z2#ug&Jw&kNabsl8RGV|OiKb#^2MQPztObNHVG|-$(u2BEtVLrf(c^X*?2jA0Xvn6z
znQri?ixkm+Aw*wbHr!)15@7ov$0>(YQqo`l7@JF;TJMPL3OWSXuKjFkr6DBM?#OF*
z$4L+SK@`9wWF&O+Jrc&L4GOR=`5s>n2TKQ%J}4&^cz|l%Af?6x2Fx$9lY@c)%%j23
z#{nSKx*JmtsP{B(z@AH2VcUWqf}~Jj#yX@@7|__KMFz|pc$zfwODyd{N0k`3s(Rb}
zZ2HupA)}D6hnYpqW%ZR~eFvujwLS~{BmhI$%xc2_u1I-(S30V}jwh;I`V!g^B90(d
zMv`u;lXjjFZCs%sKCf-`8UhS6(l#Kl`mB%%I=t%%I^;M^XnP?Nx`p+<9l+jHl1bq*
z2^y%r^ZmazFI-*#<9QM<!oK(+T6bto0u>0_7x5)XH#8>1b0V@L@IH$!L1h`hl=vFa
zCsJwK9zdV=$7p8aR6B(8XaeFCJS>KJwF7i)`w2jb&_UlbI>=|Ve==CoDGO!2Z%yF>
zf|{ph3K>ZLatUyJuMjJt-uUZ#tO%BX0vugid0Zu)FAs7{->_nYfYQylf3?Id_I!Ic
zld5u~7KryLqfR&TqrqG4IXZV2KMh&mtQNBVW)ZTk{4xYR)E@@0{w-)44;ln(RZ23|
zbLq(z4R3oi433S#r&wj9=BbQ_*vPozW(x1DO3Wn0NDqKoRr?ymP^bnD;Y5Y=@~?^-
zvg^FG=um}Au!JPt)5@Z5i~&LwWY=9I=lxAKDg})_l-{7_I&(VO4X0y4Y7h_8N_rn2
z$LK0_pUDkft1ln*8=okcSS*^DjvX1IOc||93uTCSGjCnGKfq&0{os;|AdK~h)!vQa
zF(={FmZbZc*$B9`mVjwfJIOKS&H@Enus7JTOOy;Oj^mrQd{Q~|SkTS@K79vatC0%N
zfSD8awMBlwwsVzFun2e6a@Gfy{h@f9x-J`MOYdjs67s5n%IXi*m=#96uu-J|CA<K&
z{EXf4F|LH%xKS44ui9r@TS7!^@E0d_b0#`mNo5I}u{$=8@2P#UrF=kj)5h9i_!HB9
z(uszj@H&u4pAjPjOI3=srk3jTh9^{RrcA!NfMorJ?O!Qo{IRH|7*WORPHM*uS39DY
zpz4he=Y@rVn23a9e1KU`DKdV@1E3Qo-nS`XBVLfmLd^|AYA?6uMhK{@=H@Nu>`m6(
zfDE*j*YF6e%v}u5YL54@pVbE?Lf*{jB8A<OdK#6)mADsn%G5K~A>X`VA0dG9jovQW
zOyna&m6T$u_=2oEe}&|?VQ~7euh@W6G_UX4lZR^2JydpfAAc9Bf@3_l-H|K7=QNBc
zm}4LCGEqq;$^t|2Q)ptSZcr8|%wAlzE{UGkrZc^*I54DPQ|hZ`=}h~6P<t~ooViv6
zxq$7hPG?<nBob%Ii5y~N$xf2HI!vxFFNQzne|~o*`0CX7KgA%`h$)9%zK!LuiO`m6
zv(Zw0HYyFmU$(ggl^iDU)irJTme({S0Y%YSkd@yn%-}OpRyaZ25e7-xhv>x$jx5E>
zI16I3?t2zX#aW>lZJY;xKXZ_Qy_6J`buh%B*7>7L$V9QC)pUWCPCjQ$Af-@f$C8<?
zPAI(R2!#wYb$ZP3Pw)dg0S=O3GwBh=mSC<c?EAiw8pvHjnJTFF2I8cB+JD-Ct1{52
ziXCqk{I_XR^4=Ab)S)>Wr}?lsn>ajlU<~<rf)LXXn7KituH0HHhV>X8#u=$FV{`7X
z9@5C<ausi6xY3p-)^dVpc9<;^B!}6s7&3WXZ)-$8fE8Q%+h?3_JEjC(la(^9!+^a>
z&Pma`)p7}<DY!jlu(DQtv%o|5+|eNb3l=AV134|x#@brGc?;7G4R{^~!y3vW=OLG1
zq!g#SZ!&1P5WHvzlR^(VwA#@0_f=>b;~-^LyE1?fno{$>WSS69QWpmKqZF;lH=g5Z
zGZ@LW9Hea@LwV?#Qi_wEg^W(Tw#F=<272&8kW&|S<KwCP5cE8{ucId+I>=Tj$}UKX
zv;s#nrTq+`7zo*ly|X;#=52jw2svZfji`FVY3M}9PLKB5mj>y4Ab^|lvTEDj0*_g}
z;(WtZoK|aE8aQm|0}Gv*HOS2N;c$9sgjbo47z{a!TiW?(IF9PG@hZ(OY5jH=C|()*
zUP@SSRux#jp&r3jpoP-f0YeU3`|sYg>c@?Gdo8&$8p^%0ojhL~^u|YY@T&2i@@EZ#
z@7UW-1$Th|vyPQQn4;a5bg2eqrEG=)IL$<p&wb7(-)2x%BlvX!3@f18H2`=3!f@CE
z@RGy9By9F6=Q}xHdA!@0czu5Zpp4Op<)!?q!FQ*iwTPg~W(a&mr692{)#gES&haW9
zMMVMQuHMvTu|Sll%ni}+2m;GU!+0V1ZUbHJ)zoo`6x)<4B;UV*nx{(BBaI#S(<cca
z{$(p0SJ~#b7TNq*WU~(fDKr57xVpM^ul4ZJ!wogNN?sy3A~Sh`dt6js;B;Q~)(WAJ
z8&;m53WXHyh3SJBaf=C7dL)bOON==F*Ob&C=Q@(3%$Q`(k3q1LpAa_YfNy$LfzYp;
zlcHZ!?V#%i4CxNM*YN({-cG0}MJGj>MBLVCMhmvh;`m9cwI8*gJj3`{>}`cU+^@C=
z$FQ}S7^BsNnPFULhPBn*6@JSAp>sI#KBDzbTNYD(1@$U;LL4ONjZ>TmT5;0<#m98A
zIibv3uVuW{rG~C!Vi-<;vGN}!bNVfeZNji@uuUBu2J$oUJD>7A2cfiY95aT~<>Tnc
zY9(W}u56mJUARMdSYcT;7n~j{85piYjM`mdEwc<$ldoL~z5oJ@-Vd$-T3-QJ+6fPn
z=S6v_BMf9rwWs&mjMF=b%rS=>hf<0bWNcF@;p%lDj`mQAP{fQ^H-d>(yVfEz0eC(0
zzLZBY+){j`_j7^I^}P6;c~UOC0p_)>I2n4amPLM`!Z}LBV}5boh?DmQOT4<9{9DW^
zk9%-d*zX_YRPPA<z}(cGGGJnv41`}hmyo-;o<y*GV<rRYm3G}1ly;Wl3dNqM%Yd3E
zSC1Q2;*dGUwC!o<k*guqw(dFT=j$W??oHH?jaVOzV}+5~JnaHnS58FjAmgTwM`sZ=
z6+F6BWi<5+I=JFkR+k|9p%bXq-D2HPb%H^UfO&OWy#ae2*AZ}E_ANMW&$Dg=y4JFh
zcY;OdDf-c9oFZJ0pI{Q*=<vu`Hc@(j;lcfpoNVr(*cZk|$J5mk{`C&vnWAP!5=Gl_
z^u)z?u*+Z!yy`p=POrC8WGc2)snu{=Amy9WWT`6eN-26h7jMd8ov50|QsuojXx;q^
zZ1||#MKKS!tQ7rWY{r>kxZt7h7|kLJXG;OGz*t$_wru4@vpx`9CLRV!RV44=>6&RZ
z+8&ZO+3rF{h7WrvQ=*LrNVT#q=(ywBgFdQKb@vzuIGqftL$LTWc}Pa(l7$0g?ZYe4
za#k|w%V0nrUr|zV#jeU7o$N`JuO`6;JB3l9vin$Vrt_m73$jlTt;YaCnaqg-D?9%g
zd|1i>F??7w^j~=NGYb<N44$xLZn8ZyXf7pGnqS^{!@3c#f*l0G%4#1L^%%35IB|%>
zEO2sVBqteK-h_^9poOs-{EW0(I2Yv6#EsgbiS3!uM4<uE#Er>lqP$#L-)OGgT?^+|
z5KUBHc#PiUODwRKm#g~oB`LH1>G@)d$U9C=I)m*1!1ld(gl1OQzN%VS<?$0Q+*IA4
zr#zQu;Se>@$CD}5{L|pJV^Fwlua5O_TN8Ffoa8u(oQur`fCr%Vp$GQeOww%hsEx25
zbFz=RJE{W$7NV3?C(8bGJ<e<`@b8Q}cqUZ>oX%H(a=Xz-Q*i+ROui2^Gd@_I`N>@?
zLi67Rja{`Uh>&7c5Uj$oL^@S%T0`KT`r0aDYG2=_@-P&swj^k_qnPUQ!D)ybT&gI-
zZZ&m$%)9?N`>=vby%L}Syp}I+KzMLg5ztb!-m8^bZdE2kye{f^xnNvN1P|S&8C2md
zVtL&;X{I0r(p4q|%XAZI4)qunbDyB*P?nrR;tXL|)>|Wp3LnH3H-V=))Yv=|bO%&3
zY_t1=Z1fQN8$45O|NE~%B!*%sV5tvrS6xuA(XG|Fn`b~%S>1zmsG+LA%%OptP-fi8
z!+~sHEw1F6&%~dgWZI3iylFhfo7?`}m5zQ(E3iI6lHe341`dw3-k^#nmEzZ!!0~L2
z=Jjh_Qi^&$`{RA|vTF1pN9@Bpdg)twE=I`k6uVv-=qr0)shoCM$8psZ9T!#2X{q#A
ztoQ^OrL6I+GCO7d{y<F1ylPUspj?IrUlM4bNa#TXxdB8UzA|9&xDF@oT_4X20l60k
zJ#2T{u=&p&HG_IK>2#()(-jgf4*CGT6BD>#cngJQ0K__aU=7{(?vvBg1>UsAlh?5k
z@Ax)?_dk6fE(=IUPd08s4mt+k)go+X#_e)arlqZz$ZlR1@fE~LUKshDBMPnSTGqMq
zHgq>x*#~Y#TV5vGZcDv@swS2TIN=^XC*vvE9Snk8zpGlGVu}qwCJ6gD^P1KN&j_5W
z)=JJ@#J-Pli}Vzf2qlF?BxFNphbT-$V9yy({5|>+9Xw;9Cy<^Yg={w&T2dTohn?u^
z;%IO0(*iB!CN!KDKWv0hiZ(mjVqgu&6oTKh__--hSU92=oVaV1jdPia4#C3v@OIB?
z5G)Ew;8|=d)_4G4QVMVk_vKbm<>$qm{Oj(?x3#RMiJj@o1@6`Et|~7BsGC4&I=`ia
zIyQl-I%`&M5IC6Z5js-zOuH=@D~cQ@>Y>GTH)zwCx|BeuVZ)+nS5l+suc2L^sl-Bm
z#2qw5#M)K~CI37k_0m-;cvJqeRb$hXgm>NxZv+cFrhUMW?HX0ph3x`D4+4Y(8kfRo
zd=&vPRiO6?fQlDrq3CxGGGaSNnb)PizQI|tdC?y{rc+D)t~jHRr9e$Uep&G8(Wp%Y
zSmkb-<BZ!dV<vX2f>$BDT|GeZ!x>JdzWIyeBT-6hHI@PhJi~;7`gG`yPq%m}Dp!+!
z-9UfP@v_NYx|rLCy{#T|6q*~$pzloI+SbM~5rRE|#9-^7#?C4-BzuFq(iFJ*c2)1G
zkT}}ZU@olcScH5e{&?3IW(?N)I}}|D%TZN|1QyEX+FG@T$W71>d|cyQvw|H8_hCl2
zrprCLYT&{VwP2z;yvLvURzPOt@`)QN8!eHBgcZEj!jfo2kU7r$nT?N(m(S~jFVOl(
zz}y*{9Zk5Nx-hsF*Ymf&#iEc=t|v*E;d<tAE<#55MZ1!ES<YK?n-7j&9SbhHQf<W;
zRIuhoqOA49+q;uNRoMh<7@VP=kcuLoJ`S3BDY%YlNj{g=kg!M?(9Df)Urj`q*HefU
zuW)G!xKLLkh}*vX2XJC`9|*I#p{|6@JM9#TVHLRBWbw-ccbjX{Aa<;eJP)}64RP{`
z%Z|>Vs<!MX#>%37{-v^`UuEs1D#UDA^STr#M+{z^o1&BRB1My|712(3tIKFWDHNW^
z4ZDOl&ioW=|E14abxE=}9rY&X6*adi`GR{}QwxR`grd*fz+#r-b^ES8+3CvPTvcU3
zLuJs=5&{eap&x3j^oUJoYO1uq=aZY3iYbG<1=1z~A*ROu>$~xhWXS-1)3x*`Ro0XF
z?k963tY@LK4?6i!ixu){)@n-V(jjPSVJ`)OhMX9-(-@c<PDBK2m-4Xwu86sX?u{8b
zbQJ9J1fh~Cq)gs2QKH7i4n0T*<6%GVZ<pI>!PSjp^xIV!%bhsw;Rqc88<Xs#rf|9u
zqre8x`W?5%43#Hwzj_A?(ZIa7p+-5d%Z{Rg7L}kvBNhFr)1^A`ai_aDg&p(km!!JY
zN*19_oNy&eY|Uq9*Dks!Qb4BL!PVhwt@xIP_vezR^sbvRRW8;AyUB@nq*6#s_OyVE
zEX$MhCZ_C3o%41{o1`QxT5nm}W?%xztKvp?vXT3V^*RvS#F(N%PwJ-m$HbA&hKank
zU*9m@ro@Hi`rFo743_@s<H@fRFRDrv;K#^ErsN)ZDZt)Pu+5qn{IVPMG7JdA#@Tzx
zv&z7nWC-&|{=zrS6dlX4_6I2JMpN%#84t>{YfPpP@Pt8I&)L%G50k?S=eeu!fuY7#
zf$!tJHEeJx864v&%#N4*+{eL|4zTfA;PpLa%8c;1f=*Xn5LPkMfOI_X;rIwqBZ8(Q
z%3E#3P~gc=Y$O|yPgJAh`6Zbk<^+Bt&UIPZiRlg)OE$+_j31@G^_ZZ<9}g&YJ69nA
zVJBw|{gov@I<@y6myNMMq;?VfI~qP>zjL*OSd@wj*54t7htpC<&k)_y%%BZtciXVv
znEbi1*WBA}JiMod*Wy%|1JG)rZ@F~Wha#=i8@Z)1N2)^NwiLXrHrE;rupiqjqew}>
zqcr=$lORhkWhv*)KJQHa3W67<5R+!GqQ$a$dn52d9Tlb~-f+!LUTWBascZMNvAz<#
z0^-%-)1i=(n?@MIunxdYp$+n8T`?ptFkT4AtpK7mCWOIx`Y<a4f?;(dg*o$-(<&H-
zU_vYpLX^V3CI~TGJkDqb<<L?v1~1qS>eMVB;NOse8p$m2^y&fyGqBSVGB;hBYYXXn
zyQ-lpb3?i^H)e+Polk<NI`YBvjq?Lr;&hlC9I}I{ZlThZ5o~N<+Q-=E@P<ToR7{tz
zAw6X&INA}~AsM~R=AUDvgzQh2#H2A`5Dxe(g-6d8v0ew$(jn@5A_?7Vy(~~lgl1VM
zN9-9yP|7MnDGY<LhdYH=b=<vBoG@f0j7Qj5aHdL$=*g#D6d|&QOUY8)Iv*&~KX?09
zt{DofUs~u8_jW>u00B(ci*`tCDbba)?AO1XX}>CZE^Ni-Ub&3wj$su>NcC7BNOMrI
zaHcV<2%t&JKsDD&W!tLdrtM$B*VCP(R5>R-Ff${n%idCeq>GmZH^hoX^;P*eALi|v
z;|YRFh{LkW3?AU}C;^yB6VoG$2>~~PO?N=wUwKjx%V-!0z=9OwYgZk>&{hXiW=15i
zl&HuVaf5&I@!%9OXN3-oNJ2zmCq;v@=ja<nKivUI!Jx<ctGz<V06!p1YVx}p+9gJq
z!^?%Jgt;l+zSvFqgVS${ja6%)x`j&ELv@)Ps=rla!TEGD7_l?xCGC@S36g{17%mU(
z>9ZHt5eTG>xZx8)2z7zHxZH_A?5r<b37Ch@^Ag%hufV@_EOoZwK(q{eS)HyswO_Pq
z!hxy1>`~iIV;+%G5<HaCXTd7HW}P8K1hm7b!^!-K5w~yU&2o#tOg>JI&O~@gO4Qer
zZWj+(iW6?aOGO#=I&T8IkTt0L@#tBMlgj`CqdgNwe8tlMXBhFi020g>sU9$;2*op|
zk@-W#xPR^>PKSyYoOC4zkKpUN<GBs9{r1LUI81(LTW?FsC~xS4t**uH@Yaq|w-@M{
zV(Uv~u(Y)-u6}hAWNJXt49EOR@L7mZmQJfqer1+VJ3^C9{A_yv9RP`0AXdtGHojHy
zJa6qqPoPWaq&zrpiXXAIlYaXUU!U@EzKd1*2o?K>P1NZ^Y3AVuJV@*M@nAo@PT=l!
ze6NLg-qE0ceJj~d5v`9izWF$dyW^e>eYMseZY?dX+`P4X9mWE`;J^B0g8e_b5v(J5
zKqLatAT*PtAj8%uD}Y(}(e@VGvcOh6M1Jw$kfB~gyjY-PfKK)+2quov!wxR-JlaH}
z;fWZMh>p^Aeii|Kf}&tvmcJA#Lo{cV_VF;;KzY%=ulD>Ju6oN|3tNgHR&V3_BTKQx
z8nh2#X4Zu@h<)ZHMT<}|B~V09is{7fpnBpck>Pq7;O5RNYdRSu!i_a-3?_zir=0H@
ze26Rt`juFeLZ$uwFHDSNtf^m@GsFgKO(Fd!-~PCyFh^+9NGEY5>3sVJPB(YUzV1XP
z6R&aJ3O`6De}D(Jn`z9Vovzc3RiR~=p#nhh2p9m}NJ;5X9CTbkdMBNlkwT|7g_5Yl
zTJUyi!|hKq7Tiv43@`VQ>qt<lqaG82hn$^vYRh4#y9(i6J?ymWg`M*DF6>mip~-|W
z1f%kuBn1oEgJ8OSkH6mnxDS2l<lm2jMcY;<LfWT2NIR<4kcOrTf*pGvruZddZtt<F
zSiiNAuUTsyh~_leAJetZ*L>LOMMwLcXdzWiC{#YbB&Yfe`|+OT=nGS;(Ig6x5a@F4
zERS)x%%V%_Y%?B0dQEq2_3)C3q-d2Q7hPsjt(wZCf-~{jE;0VtmMdfYdDzNIX}$rA
z4ZSzk#wmQF(Y@_GI!<L7ZL^%P4;|mZv_HqKRfjoPBuW;ByPIp_($ezERbEHB$K7d0
znBB0n5<VOphs!sXZiLG#cUErPxv?DL_jAGG`C8xZMxA8LGQ~R5k~xPUJ27373RzK1
zoMJyF`jOvM^zyK~*#U@wvbuds%Xuecr$dH+D8t~L2pQ(~bP?U)Mf4O%nzza{k3IzF
zjXLI4^cx150}iNOv;1B(%ec?Lm{kmx1ZWp)U`Q0LA%oMD$#IAo23tutrp1yQ9@(Hf
zGVfvt#AaUWpl$+nYF!0#oPdzj0K8_5<Hn?pgZjw`^I@gSXS>E@yL_m4YRKrdL*$RN
z;e!N9$!^=Lf;?$TA0~pYu(73N^iFS@@(-@ffK_)7XOW<<3npyxOOmW*FU)E)YG;;%
z2&BnoA+^_D%K908n|<t``()w-Euu2rrA19s8ClViS&)HRS{}ggymarAM9gwN86vot
z_jx^!<Gys~^P;qf?`bVUHB_ROprb#4ZcI}UGHnT3<z_s^3y-Kk4KBO|Hf4yBsYh%9
z$v?sxAr9;C4F6yRJj%VibWFP|iy`@O)Y?(hwuD?pL*x&;A|?=`ks{hbfU}hJQBEKA
zFnO=T`8#~#5DjSHwLLpb5aMG?+^{`9BEBB;O&A>8kM@BNfe!3Aj+B}hJMB@x1%ri5
z27*!6iqmwEBA+jVCu(6MZxP@$Ibm)Y8Rj{2c*UnT8mlYdjIt)fyXyV-JL42KNPH*E
zTV}5;3*u1^m<c0PbTSH{MmQmTfSwBT7*ntijwN;}&mp!7t32@sTDmVS-@Zz!u_@M)
zf;-%XnN(Y#;76{~_ff$?i@$KZeEB{iITqxp!gylriJQ+vKX{Q(fksO0CxFm`?VwNC
zo@fW9-_R%3HirB&n-%4qjTc$jfo3n^QItKw5yKHOtzWn+?9m(|&Ygw3ds`3r5kkiN
zp6-?u;tb-Q@$<#}5OyPsC}n3goLOw<0a^p}!ktIW#z)s`YXSAoK2yW2F-24EROAmM
z(OUO|A&MN3Ku|RV`mjN)Fx$_x{>rla!hCSdP2~GaQ?l%(F1na}#a@n;CTeDOT;y<I
zIyewTr4TSH=x|NPI6}0Ig#L}djkv3cq3cPm-~t_S72{m04a#yR3}Lg4;h*|ARA>Nu
z+9)&#w9J%qX7Jn6s~ynH38$2+B>k-w9!ip?6MYarNy8ms0Vy(Bn$XgKz`d;xv4<7H
z0pD+oAl@Ss*6d5q6P1(0oYADm$o{z33s;*DuPue3ge4|A4+rB!Dk#)!F*R$Yx>T_n
zgFnZ#6sKz&t%RD~!BYXUD^<CIzkGotGSV_#)g=Pvr-sR{5hjZqxIUH3h{y0xEMF<W
z9d*D@Z!)v(*x&^+raeM_!HN<P%f|9J@%nej0|yI6sO0a3%c1Y9h`n2D$X2%D$*T{r
z1;K7H1V%$XbGm)lco+hTJfh5<Q1V;TQhO9^5(FrLOm-lkpO&`3M5>h^Hy>eK2R#+Z
z<Q4#)YP5$+(<{g)lT5^Ul0x>)9<q256jo~_e(T<ZktlEh=^;)sr1`|&-L-X)QHmBf
z^&UmM$D6RM=_<GZA*nv*%{dWo&;j3G2|f>Il<1uXyp$_f4LAW$`-O(m%=LvGf9QH3
zU}9q$xP-iF!j1YvTY0nzlIw^CtouwERvs1R?ufOlKugT^S!ty5mv0t}0W7>p{ecTg
z)e+|ZPCCU*kwSdcgfM&0_pm;K96vo5sKFa59p;%cshwqLl~=8B-5dA&aSxAHy<|Of
zIjukd5*PU+gu1rcNm3}J^TgD24QS54WRS@p2Opg2FpuQ1;iba-C6YW2ud*U{0GL)r
z)C3@$NDyPvI^fm(SZdR)bcDkeXO;WW%M_9O1GK90wxNT^jN?kEgOcMM!BCs`>zxBX
zxjqFSnB-CU*fXgb`>CZ|IM1W<3gBIRI`h6|=pC<0bZUvAMYB$4k)Y|2tVkz^%`e$b
z4X&=l8*q5*>U;fPd=D=~6n2}6B5!u>JaaM;@o+v+K_bS8ip#X04x&yQAs_j`=qFvi
zC&7^5Uz-!w#AL{c^W^L`Y!gR+Aga+db%AiF@L-EDqaX-?mcv;)PEwiLYab3q766d=
zS~wmmlnLy34EY)lFt{#{fQ9pYK(F#3*rG!YnqRh`K)E1e`noc}bYOx0{jc1af29~g
zCTdVLgsPa#$2xv7c~z5GJ=LT_$N2@vkVqrpt@Xy{C!xp~Hm7R4rn;{2Sh>dOMH&h7
zkwSGDgMpbR2xj^A&7XkX2q{OlctjhnTzl4y-M`j+I_4os2LlZ3;!Gw?{7^`}x#0T%
z*u+PebA}9)^w~*9WAuE`Z-K5-;so{<n;J2oNA=}oK6Tt&`|W9hxEZipnrxRuO5yg2
zVGKFmN!m(0IT8(TE5p&My!^x9_O<}AslM%va6L$rHeq~_2&Q6>mmc&Zbo3KFFU5q=
zwD+M6^_-`=q`$Ya!yzS48#xc^854zM1j_XOe=_2n82^URrL#l5$3DGm*7(I#v(d9|
zGQu*l$)Nt#RNv*wZc_L9wQPCm9>HiLuH2TEXZc|AQUu4@c$44w*1bqhQHG-xyjU{m
zBh$j9azu#ix;mmh*jh7>B}P87m6Gw~Gs>JPi*}A|I}(ZYWW%_fbQ5?n6JyX3fpr^7
z)Zw-N!nZn>2rdg*`yft5iu#%~&!}tD%_*S4AYk!7xMCHQZ|3?T2>#C=1hu)Ht%1jU
za3q}Jh*6BInUv7h3WJKQCiR_sq|`tdX3NZf>Q~v4sxT6SHRL|w2fE_~K~pj-7T9*t
zn!LWcS4aOGP=_=OuP%jpjIX{Ztkymht#qiUvvpqEx7DBt|0{@}Y^iA9XOl_Jfeg96
z^WF`6Dzqs2e{>VXu%ECh7?-Wz$T^y2<hbN;vo2=h@Yi;y9KF9c%fP`M$j<bXfY_Lf
zVen#bxn`O`bHNX1PR13pOvmYJOOX6~XHfyk@J;NsbQL=Ynpw1A@j&1M{HS^1@wltI
zr;W!o*Hn(Gy+>gz?stvTrc$2FptWpcj|zRaTQ=#*TaJ-8>aY^gWIa`g%gp$NltXnB
z=SCnNgoFW{rhCopTj+0Cmd{`k2D44B`_9hi_viWX<+G%f$S6;bxr+V=pgp{GmE9R}
zA;~y|^L+2d%C(i-%2TtGimM-g{d=D%SNAW7@_c^r6bH*-Y_U+RY%n(Ci_b*1T~ykK
zC{DyySICcVfFB{v5cyHsT`6@8VKcp(uU!eg$RM^c&UI#}{H&Ri9b!TB)F|VMEuYhe
z4kN|`2XGIdj!mgJM9E=UN6>_-W*<TCIK?74;8_>zGLb@nhpvi)ER#A4Y{gSn1k>ID
z`{1mbN=uenqUu?q)1ZJ&0t{yM!>Bi|3p4x75lTKXcz|`TOIP^u<emnaRghYJb^)c$
z#w-W7>t#%{-<qV8xF8ZU<)AtPqE)`i{)uRQEz2kHwT#iKsypX5DVmnFS+|Ht_fgV+
zx#P%%0IuKWj8WwF{h+To2PVCJGcQ8CaQ`{!;xXBOuF!rC0hRF(`ZBI<i8g#n!q9+K
zlDYu9P=`P>iHgXVV-zL5h2Wi4nScwBHLy)gy1_6cnjMZ4e-qBjzo{xhMSe~$42}48
z#xAGFf0i$NT_5m_A)HsbOAvk47d!n8jUu1~pqC7c)(3t@l;G;BYJnu(EEbu@@Xe0Q
zV)SKT{~Dc8X@2lf{L;cj(bqUSh>vKoBeu}%gsa<|IGLYs9wyz<?%-K1kNzFpD9m_A
zm7Z0?8(~u&&DO)Gs*7f4j!u{{G)gzW1_v9()4S}@sL!q)kM76MvBZ~ew9-iq7@sN>
z(7j=RS^4mC9!E3{MqhpbKd2S%>M7mTt?=b%Y`<YV7=<lW9fHt!k0bp)N#IiEU(njL
z;?7XD>mqBTZV^p`v@LC)`fb#nxjXVD>j_7-Gn{&Vl`^`jQ}j+AvBiyuC+Psl--l@k
zv*G^U-VVG685*xcw5nJIpsx>OWPI8v!>y~<^eq>P15pL2CJB&tU1DsVsq=-o;1zK0
zy?Dg_Ph~77yeM3%n32Bih}yW1)cc?>+Q&9*$m86{Nd(IjUy_bEa{(HdV9)|+D<unX
zwjXlcXAFS?>w4r9^B_P`(Rs4bi-yD*>FR(GHA>LHQbB-HOG+x*d$83}%h0xIHRXwF
zJ&j#!b3QVDg(1mdY_6!T1Um}FX$NU^1h*uEX^qq;!X+@Bawob6s1p{cLMQt68t-AD
zsON7xD!6A30C`mB41gsdUoYDKKaWQir@q;^AJ(|Gc;w$42T;c&XVNt*9yt}vxokKR
z&1$CS(VZ_G>Gl|AK+uLFYr%SX`@0g-BEiv|9zWEJK9CdVV+fExk>xGCpOw;O_{&|>
zF0Z@1a<j%p<bU=FKvQ;4Qpzl~V0uC~o@hM)x;}XS1?nwUA1sDz`2X%k)Ao8hdcvsU
z%bqJIR7@9FfV9cJs3x5Htu-(s8rra`@>w39tWvDcxFr>@=DX^>;J>`UrlZgj3Dqp-
zt|JcUExF<8M7&T+h3PmqR3AuBb4OZ1GHsaij;nKs{>8C_F6MHo%IEeNr7K5a8=gB#
zW;weUc?Kj<7;4eE_%Kr#Etaq|;${Z0jWhhhn6SJ+inNRh>SIQW0?9jFPqm8`KW`IH
zUW<T!>=Qf`(0;O}j@6}lvI0?o7^|(9sSAbW?QvoWVT3XdVuuEGElS5tSF|krdJl7w
z4Jwv@-+7O4a~t8!FBZ(K+4(B3OelTpA)4{kRy-fNUd$8;tek)E%tC<SWaa$+$q-hm
zstZ7P>&h?zE0^L%%xeDgdB`CiyAk>reH$GCk5L9Fhf~GOVdf7LDe0tlP!=&~`!ox_
zlSLA&H)7&j!G%kq>4Mn4zAOhV1=?(kf}$f?YB}bsO6pnruP#BC`L<)i61}($YT}cy
zOZ{yE&o{2^o325&X&|;`ajMzXViwS3MQ?f=`a%?`&SV@%g>(Ws4M~+I{N!r~EOvzK
z=IYg2IpUo_XsMXqKP!SwlI_njG6DVO(PZtdr{lrsr$T?6sTT_<K<%+wNumFe{#77}
zV}+xD7@@)^z6Mp|xI~I&L4;SQ<mCN)?1xFkz#w=61K>E3EF3p_T8fpm(bHF+>|(t#
zvC*i;MO;DJ0wrzH1F9t*U?GPVo`;dq0&*X9Dh{&#<svqkgn(3sAX;N*+F|^Hw%)Ld
zn0CQ17*k>LQzjP>)v@KpluX!?3WGWayV9G$^h(XcQ6fahI_9JOF^3}<Yf^aZ{2?G5
zQd>YG;?_*Ztnks^oH^1*6|#^HEj@I?wc_DyFP0z0{=b5BHCP0A(%>_DdutC@0=!un
z<`)_I`>W0S_cuNYKDGAaAM;)%#@O9n0Agisqad^F$5Q62RbL`|=7LWlK~wgfl%Ol#
z=@r~bZ<txaQhmy~;M3fqYWBw=z7}qCxVxgo`V`KOU8|Be;#<~L*)aW7CG%7A()l_1
z6$`<rhp#_F|M4H}QkHG$&jwtTyqf+~JHsTZ<=(=gwcP17GOWQlP6iI_#+DAfK?=y8
z6VoWaY?k#Ok<%VGU++r8J%vUf`CThi;iBs*5~q&Tspt+fo0ZnGcD`msCEwW3s}ucV
MDp^{DrGnu90uM<QCjbBd

literal 0
HcmV?d00001

diff --git a/doc/apidoc/Menu.txt b/doc/apidoc/Menu.txt
new file mode 100755
index 0000000..c11aca7
--- /dev/null
+++ b/doc/apidoc/Menu.txt
@@ -0,0 +1,165 @@
+Format: 1.4
+
+
+Title: TCCUsefulFunctions
+SubTitle: R12A02
+
+Footer: Copyright 2015 Ericsson AB<br/><a href="http://ttcn.ericsson.se/">http://ttcn.ericsson.se</a>
+
+# You can add a timestamp to your documentation like one of these:
+# Timestamp: Generated on month day, year
+# Timestamp: Updated mm/dd/yyyy
+# Timestamp: Last updated mon day
+#
+#   m     - One or two digit month.  January is "1"
+#   mm    - Always two digit month.  January is "01"
+#   mon   - Short month word.  January is "Jan"
+#   month - Long month word.  January is "January"
+#   d     - One or two digit day.  1 is "1"
+#   dd    - Always two digit day.  1 is "01"
+#   day   - Day with letter extension.  1 is "1st"
+#   yy    - Two digit year.  2006 is "06"
+#   yyyy  - Four digit year.  2006 is "2006"
+#   year  - Four digit year.  2006 is "2006"
+
+
+# --------------------------------------------------------------------------
+# 
+# Cut and paste the lines below to change the order in which your files
+# appear on the menu.  Don't worry about adding or removing files, Natural
+# Docs will take care of that.
+# 
+# You can further organize the menu by grouping the entries.  Add a
+# "Group: [name] {" line to start a group, and add a "}" to end it.
+# 
+# You can add text and web links to the menu by adding "Text: [text]" and
+# "Link: [name] ([URL])" lines, respectively.
+# 
+# The formatting and comments are auto-generated, so don't worry about
+# neatness when editing the file.  Natural Docs will clean it up the next
+# time it is run.  When working with groups, just deal with the braces and
+# forget about the indentation and comments.
+# 
+# --------------------------------------------------------------------------
+
+
+Group: Aka-algorythm  {
+
+   File: aka_algorythm_set.h  (aka_algorythm_set.h)
+   }  # Group: Aka-algorythm
+
+Group: Assertion  {
+
+   File: f__assert  (TCCAssertion.cc)
+   File: TCCAssertion_Functions  (TCCAssertion_Functions.ttcn)
+   }  # Group: Assertion
+
+Group: Conversion  {
+
+   File: TCCConversion.cc  (TCCConversion.cc)
+   File: TCCConversion_Functions  (TCCConversion_Functions.ttcn)
+   }  # Group: Conversion
+
+Group: Date-Time  {
+
+   File: TCCDateTime.cc  (TCCDateTime.cc)
+   File: TCCDateTime_Functions  (TCCDateTime_Functions.ttcn)
+   }  # Group: Date-Time
+
+Group: Digcalc  {
+
+   File: digcalc.h  (digcalc.h)
+   }  # Group: Digcalc
+
+Group: Encoding  {
+
+   File: TCCEncoding.cc  (TCCEncoding.cc)
+   File: TCCEncoding_Functions  (TCCEncoding_Functions.ttcn)
+   }  # Group: Encoding
+
+Group: Env  {
+
+   File: TCCEnv.cc  (TCCEnv.cc)
+   File: TCCEnv_Functions  (TCCEnv_Functions.ttcn)
+   }  # Group: Env
+
+Group: File  {
+
+   File: TCCFileIO.cc  (TCCFileIO.cc)
+   File: TCCFileIO_Functions  (TCCFileIO_Functions.ttcn)
+   File: TCCFileSystem_Functions  (TCCFileSystem_Functions.ttcn)
+   }  # Group: File
+
+Group: IP  {
+
+   File: TCCIPsec_Definitions.ttcn  (TCCIPsec_Definitions.ttcn)
+   File: TCCIPsec_Functions  (TCCIPsec_Functions.ttcn)
+   }  # Group: IP
+
+Group: Interface  {
+
+   File: TCCInterface.cc  (TCCInterface.cc)
+   File: TCCInterface_Functions  (TCCInterface_Functions.ttcn)
+   }  # Group: Interface
+
+Group: Math  {
+
+   File: TCCMaths.cc  (TCCMaths.cc)
+   File: TCCMaths_Functions  (TCCMaths_Functions.ttcn)
+   File: TCCMaths_GenericTypes  (TCCMaths_GenericTypes.ttcn)
+   }  # Group: Math
+
+Group: Message-Handling  {
+
+   File: TCCMessageHandling_Functions  (TCCMessageHandling_Functions.ttcn)
+   }  # Group: Message-Handling
+
+Group: Regexp  {
+
+   File: Regexp_Functions  (TCCRegexp_Functions.ttcn)
+   }  # Group: Regexp
+
+Group: Security  {
+
+   File: TCCSecurity.cc  (TCCSecurity.cc)
+   File: TCCSecurity_Functions  (TCCSecurity_Functions.ttcn)
+   }  # Group: Security
+
+Group: System  {
+
+   File: f_SYS_getpid  (TCCSystem.cc)
+   File: f_SYS_getpid  (TCCSystem_Functions.ttcn)
+   }  # Group: System
+
+Group: Template  {
+
+   File: TCCTemplate_Functions  (TCCTemplate_Functions.ttcn)
+   }  # Group: Template
+
+Group: Titan-Metadata  {
+
+   File: f__compilationTime  (TCCTitanMetadata.cc)
+   File: TCCTitanMetadata_Functions  (TCCTitanMetadata_Functions.ttcn)
+   }  # Group: Titan-Metadata
+
+Group: XPath-Support  {
+
+   File: TCCXPathSupport_Functions  (TCCXPathSupport_Functions.ttcn)
+   File: XPathQuery  (TCCXPathSupport.cc)
+   }  # Group: XPath-Support
+
+Group: Zuc  {
+
+   File: zuc.h  (zuc.h)
+   }  # Group: Zuc
+
+Group: Index  {
+
+   Index: Everything
+   Constant Index: Constants
+   File Index: Files
+   Function Index: Functions
+   Type Index: Types
+   Variable Index: Variables
+   }  # Group: Index
+
diff --git a/doc/apidoc/Menu.txt~ b/doc/apidoc/Menu.txt~
new file mode 100644
index 0000000..f53b1c2
--- /dev/null
+++ b/doc/apidoc/Menu.txt~
@@ -0,0 +1,165 @@
+Format: 1.4
+
+
+Title: TCCUsefulFunctions
+SubTitle: R12A02
+
+Footer: Copyright 2012 Test Competence Center<br/><a href="http://ttcn.ericsson.se/">http://ttcn.ericsson.se</a>
+
+# You can add a timestamp to your documentation like one of these:
+# Timestamp: Generated on month day, year
+# Timestamp: Updated mm/dd/yyyy
+# Timestamp: Last updated mon day
+#
+#   m     - One or two digit month.  January is "1"
+#   mm    - Always two digit month.  January is "01"
+#   mon   - Short month word.  January is "Jan"
+#   month - Long month word.  January is "January"
+#   d     - One or two digit day.  1 is "1"
+#   dd    - Always two digit day.  1 is "01"
+#   day   - Day with letter extension.  1 is "1st"
+#   yy    - Two digit year.  2006 is "06"
+#   yyyy  - Four digit year.  2006 is "2006"
+#   year  - Four digit year.  2006 is "2006"
+
+
+# --------------------------------------------------------------------------
+# 
+# Cut and paste the lines below to change the order in which your files
+# appear on the menu.  Don't worry about adding or removing files, Natural
+# Docs will take care of that.
+# 
+# You can further organize the menu by grouping the entries.  Add a
+# "Group: [name] {" line to start a group, and add a "}" to end it.
+# 
+# You can add text and web links to the menu by adding "Text: [text]" and
+# "Link: [name] ([URL])" lines, respectively.
+# 
+# The formatting and comments are auto-generated, so don't worry about
+# neatness when editing the file.  Natural Docs will clean it up the next
+# time it is run.  When working with groups, just deal with the braces and
+# forget about the indentation and comments.
+# 
+# --------------------------------------------------------------------------
+
+
+Group: Aka-algorythm  {
+
+   File: aka_algorythm_set.h  (aka_algorythm_set.h)
+   }  # Group: Aka-algorythm
+
+Group: Assertion  {
+
+   File: f__assert  (TCCAssertion.cc)
+   File: TCCAssertion_Functions  (TCCAssertion_Functions.ttcn)
+   }  # Group: Assertion
+
+Group: Conversion  {
+
+   File: TCCConversion.cc  (TCCConversion.cc)
+   File: TCCConversion_Functions  (TCCConversion_Functions.ttcn)
+   }  # Group: Conversion
+
+Group: Date-Time  {
+
+   File: TCCDateTime.cc  (TCCDateTime.cc)
+   File: TCCDateTime_Functions  (TCCDateTime_Functions.ttcn)
+   }  # Group: Date-Time
+
+Group: Digcalc  {
+
+   File: digcalc.h  (digcalc.h)
+   }  # Group: Digcalc
+
+Group: Encoding  {
+
+   File: TCCEncoding.cc  (TCCEncoding.cc)
+   File: TCCEncoding_Functions  (TCCEncoding_Functions.ttcn)
+   }  # Group: Encoding
+
+Group: Env  {
+
+   File: TCCEnv.cc  (TCCEnv.cc)
+   File: TCCEnv_Functions  (TCCEnv_Functions.ttcn)
+   }  # Group: Env
+
+Group: File  {
+
+   File: TCCFileIO.cc  (TCCFileIO.cc)
+   File: TCCFileIO_Functions  (TCCFileIO_Functions.ttcn)
+   File: TCCFileSystem_Functions  (TCCFileSystem_Functions.ttcn)
+   }  # Group: File
+
+Group: IP  {
+
+   File: TCCIPsec_Definitions.ttcn  (TCCIPsec_Definitions.ttcn)
+   File: TCCIPsec_Functions  (TCCIPsec_Functions.ttcn)
+   }  # Group: IP
+
+Group: Interface  {
+
+   File: TCCInterface.cc  (TCCInterface.cc)
+   File: TCCInterface_Functions  (TCCInterface_Functions.ttcn)
+   }  # Group: Interface
+
+Group: Math  {
+
+   File: TCCMaths.cc  (TCCMaths.cc)
+   File: TCCMaths_Functions  (TCCMaths_Functions.ttcn)
+   File: TCCMaths_GenericTypes  (TCCMaths_GenericTypes.ttcn)
+   }  # Group: Math
+
+Group: Message-Handling  {
+
+   File: TCCMessageHandling_Functions  (TCCMessageHandling_Functions.ttcn)
+   }  # Group: Message-Handling
+
+Group: Regexp  {
+
+   File: Regexp_Functions  (TCCRegexp_Functions.ttcn)
+   }  # Group: Regexp
+
+Group: Security  {
+
+   File: TCCSecurity.cc  (TCCSecurity.cc)
+   File: TCCSecurity_Functions  (TCCSecurity_Functions.ttcn)
+   }  # Group: Security
+
+Group: System  {
+
+   File: f_SYS_getpid  (TCCSystem.cc)
+   File: f_SYS_getpid  (TCCSystem_Functions.ttcn)
+   }  # Group: System
+
+Group: Template  {
+
+   File: TCCTemplate_Functions  (TCCTemplate_Functions.ttcn)
+   }  # Group: Template
+
+Group: Titan-Metadata  {
+
+   File: f__compilationTime  (TCCTitanMetadata.cc)
+   File: TCCTitanMetadata_Functions  (TCCTitanMetadata_Functions.ttcn)
+   }  # Group: Titan-Metadata
+
+Group: XPath-Support  {
+
+   File: TCCXPathSupport_Functions  (TCCXPathSupport_Functions.ttcn)
+   File: XPathQuery  (TCCXPathSupport.cc)
+   }  # Group: XPath-Support
+
+Group: Zuc  {
+
+   File: zuc.h  (zuc.h)
+   }  # Group: Zuc
+
+Group: Index  {
+
+   Index: Everything
+   Constant Index: Constants
+   File Index: Files
+   Function Index: Functions
+   Type Index: Types
+   Variable Index: Variables
+   }  # Group: Index
+
diff --git a/doc/apidoc/html/files/TCCAssertion-cc.html b/doc/apidoc/html/files/TCCAssertion-cc.html
new file mode 100644
index 0000000..4dfc63d
--- /dev/null
+++ b/doc/apidoc/html/files/TCCAssertion-cc.html
@@ -0,0 +1,56 @@
+<html>
+<head>
+<title>f__assert - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFunction">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="f__assert"></a>f__assert</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Implement TTCN assertion.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__assertMessage</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - assertion message</td></tr>
+<tr>
+<td class=CDLEntry>pl__predicate</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>boolean</b> - boolean predicate</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>At the point of this function call, the assertion predicate must be true, else assertion fails that results in a dynamic test case error To use assertion optimized build shall be switched on with switch -O2 and NDEBUG shall not be defined</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCAssertion_Functions-ttcn.html b/doc/apidoc/html/files/TCCAssertion_Functions-ttcn.html
new file mode 100644
index 0000000..e19c4b3
--- /dev/null
+++ b/doc/apidoc/html/files/TCCAssertion_Functions-ttcn.html
@@ -0,0 +1,121 @@
+<html>
+<head>
+<title>TCCAssertion_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCAssertion_Functions"></a>TCCAssertion_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports assertion handling</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCAssertion_Functions" >TCCAssertion_Functions</a></td>
+<td class=SDescription>This module supports assertion handling</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_assert" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_assert</a></td>
+<td class=SDescription>Implement TTCN assertion.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_assert"></a>f_assert</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_assert(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_assertMessage,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>boolean&nbsp;</td>
+<td class=PParameter nowrap>pl_predicate</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Implement TTCN assertion.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_assertMessage</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - assertion message</td></tr>
+<tr>
+<td class=CDLEntry>pl_predicate</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>boolean</b> - boolean predicate</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>At the point of this function call, the assertion predicate must be true, else assertion fails that results in a dynamic test case error To use assertion optimized build shall be switched on with switch -O2 and NDEBUG shall not be defined</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_assert(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_assertMessage,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>boolean&nbsp;</td>
+<td class=PParameter nowrap>pl_predicate</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Implement TTCN assertion.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCConversion-cc.html b/doc/apidoc/html/files/TCCConversion-cc.html
new file mode 100644
index 0000000..96efc35
--- /dev/null
+++ b/doc/apidoc/html/files/TCCConversion-cc.html
@@ -0,0 +1,334 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCConversion.cc - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCConversion.cc"></a>TCCConversion.cc</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCConversion.cc" >TCCConversion.cc</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__putInLowercase" >f__putInLowercase</a></td>
+<td class=SDescription>Put charstring to lowercase</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__putInUppercase" >f__putInUppercase</a></td>
+<td class=SDescription>Put charstring to uppercase</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__addOctetstring" >f__addOctetstring</a></td>
+<td class=SDescription>Add two integer values represented in OCTETSTRING</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__subOctetstring" >f__subOctetstring</a></td>
+<td class=SDescription>Substract two integer values represented in OCTETSTRING</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__compOctetstring" >f__compOctetstring</a></td>
+<td class=SDescription>Compare two integer values represented in OCTETSTRING</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_substr_token" >f_substr_token</a></td>
+<td class=SDescription>The function returns a substring from a value. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_strstr" >f_strstr</a></td>
+<td class=SDescription>The f_strstr function locates the first  occurrence  of  the string  s2 in string s1 and returns an index of starting pont of the located string, or  -1 if the string is not found. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_convertIPAddrToBinary" >f_convertIPAddrToBinary</a></td>
+<td class=SDescription>Converts an IPv4 and IPv6 address to its hex representation. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_oct2char_safe" >f_oct2char_safe</a></td>
+<td class=SDescription>Fault tolerant version of the oct2str Titan built-in function.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__putInLowercase"></a>f__putInLowercase</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Put charstring to lowercase</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__string</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - charstring</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>converted value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__putInUppercase"></a>f__putInUppercase</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Put charstring to uppercase</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__string</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - charstring</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>converted value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__addOctetstring"></a>f__addOctetstring</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Add two integer values represented in OCTETSTRING</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>par1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - first octetstring value</td></tr>
+<tr>
+<td class=CDLEntry>par2</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - second octetstring value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>sum of input</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Negative values are unhandled!</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__subOctetstring"></a>f__subOctetstring</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Substract two integer values represented in OCTETSTRING</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>par1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - first octetstring value</td></tr>
+<tr>
+<td class=CDLEntry>par2</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - second octetstring value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>difference of input</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Negative values are unhandled!</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__compOctetstring"></a>f__compOctetstring</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Compare two integer values represented in OCTETSTRING</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>par1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - first octetstring value</td></tr>
+<tr>
+<td class=CDLEntry>par2</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - second octetstring value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>0: par1 = par2 1: par1&gt;par2 2: par1&lt;par2</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Negative values are unhandled!</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_substr_token"></a>f_substr_token</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>The function returns a substring from a value.&nbsp; The starting and the ending points are defined by the begin and end tokens.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>str</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - the value</td></tr>
+<tr>
+<td class=CDLEntry>begin_token</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - begin token</td></tr>
+<tr>
+<td class=CDLEntry>end_token</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - end token</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>charstring.&nbsp; If one of the tokens is not found it returns an empty string</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>If end_token is an empty string the function returns the part of the value after the begin_token.&nbsp; If begin_token is an empty string the function returns the part of the value until the end_token.&nbsp; If both of them empty string the function returns the part whole value</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_strstr"></a>f_strstr</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>The f_strstr function locates the first  occurrence  of  the string  s2 in string s1 and returns an index of starting pont of the located string, or  -1 if the string is not found.&nbsp; If  s2 is an empty, the  func- tion returns 0.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>s1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - input string</td></tr>
+<tr>
+<td class=CDLEntry>s2</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to search</td></tr>
+<tr>
+<td class=CDLEntry>offset</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - start offset.</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>index of starting pont of the located string</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>The offset determines the starting point of the search.&nbsp; Any occurance of the s2 before the offset is ignored.&nbsp; The offset is optional</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_convertIPAddrToBinary"></a>f_convertIPAddrToBinary</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Converts an IPv4 and IPv6 address to its hex representation.&nbsp; IPv6 address is assumed if the input string contains &lsquo;:&rsquo;</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_ip</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - input string</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>hex value of the Ip in an octetstring</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_oct2char_safe"></a>f_oct2char_safe</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Fault tolerant version of the oct2str Titan built-in function.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>s1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetsttring</b> - input string</td></tr>
+<tr>
+<td class=CDLEntry>s2</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> - output string</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>false on fault, ie. on unbound input or invalid character in input. true on success</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>On fault, the longest chunk that could be decoded is returned.</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCConversion_Functions-ttcn.html b/doc/apidoc/html/files/TCCConversion_Functions-ttcn.html
new file mode 100644
index 0000000..9fb575c
--- /dev/null
+++ b/doc/apidoc/html/files/TCCConversion_Functions-ttcn.html
@@ -0,0 +1,1155 @@
+<html>
+<head>
+<title>TCCConversion_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCConversion_Functions"></a>TCCConversion_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports string conversions</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCConversion_Functions" >TCCConversion_Functions</a></td>
+<td class=SDescription>This module supports string conversions</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_putInLowercase" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_putInLowercase</a></td>
+<td class=SDescription>Put charstring to lowercase</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_putInUppercase" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_putInUppercase</a></td>
+<td class=SDescription>Put charstring to uppercase</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_unichar2charstr" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_unichar2charstr</a></td>
+<td class=SDescription>Convert universal charstring 2 charstring</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_charstr2unichar" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">f_charstr2unichar</a></td>
+<td class=SDescription>Convert charstring 2 universal charstring</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_replaceFirstOccurenceOfSubstring" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_replaceFirstOccurenceOfSubstring</a></td>
+<td class=SDescription>Replace first occurance of parSubStrA with parSubStrB in parInStr</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_replaceEveryOccurenceOfSubstring" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_replaceEveryOccurenceOfSubstring</a></td>
+<td class=SDescription>Replace every occurance of parSubStrA with parSubStrB in parInStr</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_replaceFirstOccurenceOfPattern" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">f_replaceFirstOccurenceOfPattern</a></td>
+<td class=SDescription>Replace first occurance of pattern parSubStrA with parSubStrB in parInStr</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_replaceEveryOccurenceOfPattern" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">f_replaceEveryOccurenceOfPattern</a></td>
+<td class=SDescription>Replace every occurance of pattern parSubStrA with parSubStrB in parInStr</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_addOctetstring" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">f_addOctetstring</a></td>
+<td class=SDescription>Add two integer values represented in OCTETSTRING</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_subOctetstring" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">f_subOctetstring</a></td>
+<td class=SDescription>Substract two integer values represented in OCTETSTRING</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_compOctetstring" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">f_compOctetstring</a></td>
+<td class=SDescription>Compare two integer values represented in OCTETSTRING</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_substr_token" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">f_substr_token</a></td>
+<td class=SDescription>The function returns a substring from a value. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_strstr" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">f_strstr</a></td>
+<td class=SDescription>The f_strstr function locates the first  occurrence  of  the string  s2 in string s1 and returns an index of starting pont of the located string, or  -1 if the string is not found. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_OctetIpv4" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">f_OctetIpv4</a></td>
+<td class=SDescription>convertes an IPv4 address given in dotted notation to its hex representation</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_convertIPAddrToBinary" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">f_convertIPAddrToBinary</a></td>
+<td class=SDescription>Converts an IPv4 and IPv6 address to its hex representation. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_oct2char_safe" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">f_oct2char_safe</a></td>
+<td class=SDescription>Fault tolerant version of the oct2str Titan built-in function.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_putInLowercase"></a>f_putInLowercase</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_putInLowercase(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_string</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Put charstring to lowercase</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_string</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - charstring</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>converted value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_putInUppercase"></a>f_putInUppercase</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_putInUppercase(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_string</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Put charstring to uppercase</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_string</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - charstring</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>converted value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_unichar2charstr"></a>f_unichar2charstr</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_unichar2charstr (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>p_unichar</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Convert universal charstring 2 charstring</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_unichar</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - unichar 2 convert</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>converted value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_charstr2unichar"></a>f_charstr2unichar</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_charstr2unichar (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_char</td>
+<td class=PAfterParameters nowrap>) return universal charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Convert charstring 2 universal charstring</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_char</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - char 2 convert</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>universal charstring</td>
+<td class=CDLDescription>converted value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_replaceFirstOccurenceOfSubstring"></a>f_replaceFirstOccurenceOfSubstring</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceFirstOccurenceOfSubstring(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in charstring&nbsp;</td>
+<td class=PType nowrap>parInStr&nbsp;</td>
+<td class=PParameter nowrap width=100%>,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Replace first occurance of parSubStrA with parSubStrB in parInStr</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>parInStr</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - input string</td></tr>
+<tr>
+<td class=CDLEntry>parSubStrA</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to replace</td></tr>
+<tr>
+<td class=CDLEntry>parSubStrB</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to replace with</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>modified input string</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_replaceEveryOccurenceOfSubstring"></a>f_replaceEveryOccurenceOfSubstring</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceEveryOccurenceOfSubstring(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Replace every occurance of parSubStrA with parSubStrB in parInStr</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>parInStr</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - input string</td></tr>
+<tr>
+<td class=CDLEntry>parSubStrA</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to replace</td></tr>
+<tr>
+<td class=CDLEntry>parSubStrB</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to replace with</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>modified input string</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_replaceFirstOccurenceOfPattern"></a>f_replaceFirstOccurenceOfPattern</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceFirstOccurenceOfPattern(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Replace first occurance of pattern parSubStrA with parSubStrB in parInStr</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>parInStr</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - input string</td></tr>
+<tr>
+<td class=CDLEntry>parSubStrA</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - pattern to replace</td></tr>
+<tr>
+<td class=CDLEntry>parSubStrB</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to replace with</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>modified input string</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_replaceEveryOccurenceOfPattern"></a>f_replaceEveryOccurenceOfPattern</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceEveryOccurenceOfPattern(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Replace every occurance of pattern parSubStrA with parSubStrB in parInStr</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>parInStr</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - input string</td></tr>
+<tr>
+<td class=CDLEntry>parSubStrA</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to replace</td></tr>
+<tr>
+<td class=CDLEntry>parSubStrB</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to replace with</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>modified input string</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_addOctetstring"></a>f_addOctetstring</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_addOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Add two integer values represented in OCTETSTRING</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>par1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - first octetstring value</td></tr>
+<tr>
+<td class=CDLEntry>par2</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - second octetstring value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>sum of input</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Negative values are unhandled!</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_subOctetstring"></a>f_subOctetstring</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_subOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Substract two integer values represented in OCTETSTRING</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>par1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - first octetstring value</td></tr>
+<tr>
+<td class=CDLEntry>par2</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - second octetstring value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>difference of input</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Negative values are unhandled!</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_compOctetstring"></a>f_compOctetstring</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_compOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Compare two integer values represented in OCTETSTRING</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>par1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - first octetstring value</td></tr>
+<tr>
+<td class=CDLEntry>par2</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - second octetstring value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>0: par1 = par2 1: par1&gt;par2 2: par1&lt;par2</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Negative values are unhandled!</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_substr_token"></a>f_substr_token</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_substr_token(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>str,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>begin_token,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>end_token</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>The function returns a substring from a value.&nbsp; The starting and the ending points are defined by the begin and end tokens.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>str</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - the value</td></tr>
+<tr>
+<td class=CDLEntry>begin_token</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - begin token</td></tr>
+<tr>
+<td class=CDLEntry>end_token</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - end token</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>charstring.&nbsp; If one of the tokens is not found it returns an empty string</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>If end_token is an empty string the function returns the part of the value after the begin_token.&nbsp; If begin_token is an empty string the function returns the part of the value until the end_token.&nbsp; If both of them empty string the function returns the part whole value</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_strstr"></a>f_strstr</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_strstr(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>s1,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>s2,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>offset:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>The f_strstr function locates the first  occurrence  of  the string  s2 in string s1 and returns an index of starting pont of the located string, or  -1 if the string is not found.&nbsp; If  s2 is an empty, the  func- tion returns 0.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>s1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - input string</td></tr>
+<tr>
+<td class=CDLEntry>s2</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to search</td></tr>
+<tr>
+<td class=CDLEntry>offset</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - start offset.</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>index of starting pont of the located string</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>The offset determines the starting point of the search.&nbsp; Any occurance of the s2 before the offset is ignored.&nbsp; The offset is optional</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_OctetIpv4"></a>f_OctetIpv4</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_OctetIpv4(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_ip</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>convertes an IPv4 address given in dotted notation to its hex representation</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_ip</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - input string</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>hex value of the Ip in an octetstring</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>type record of integer IntegerList;</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_convertIPAddrToBinary"></a>f_convertIPAddrToBinary</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_convertIPAddrToBinary(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_ip</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Converts an IPv4 and IPv6 address to its hex representation.&nbsp; IPv6 address is assumed if the input string contains &lsquo;:&rsquo;</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_ip</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - input string</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>hex value of the Ip in an octetstring</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_oct2char_safe"></a>f_oct2char_safe</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_oct2char_safe(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Fault tolerant version of the oct2str Titan built-in function.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>s1</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetsttring</b> - input string</td></tr>
+<tr>
+<td class=CDLEntry>s2</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> - output string</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>false on fault, ie. on unbound input or invalid character in input. true on success</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>On fault, the longest chunk that could be decoded is returned.</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_putInLowercase(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_string</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Put charstring to lowercase</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_putInUppercase(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_string</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Put charstring to uppercase</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_unichar2charstr (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>p_unichar</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Convert universal charstring 2 charstring</div></div>
+<div class=CToolTip id="tt4">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_charstr2unichar (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_char</td>
+<td class=PAfterParameters nowrap>) return universal charstring</td></tr></table></td></tr></table></blockquote>Convert charstring 2 universal charstring</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceFirstOccurenceOfSubstring(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in charstring&nbsp;</td>
+<td class=PType nowrap>parInStr&nbsp;</td>
+<td class=PParameter nowrap width=100%>,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace first occurance of parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceEveryOccurenceOfSubstring(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace every occurance of parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt7">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceFirstOccurenceOfPattern(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace first occurance of pattern parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt8">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceEveryOccurenceOfPattern(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace every occurance of pattern parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt9">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_addOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Add two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt10">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_subOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Substract two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt11">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_compOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Compare two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt12">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_substr_token(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>str,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>begin_token,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>end_token</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>The function returns a substring from a value. </div></div>
+<div class=CToolTip id="tt13">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_strstr(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>s1,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>s2,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>offset:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>The f_strstr function locates the first  occurrence  of  the string  s2 in string s1 and returns an index of starting pont of the located string, or  -1 if the string is not found. </div></div>
+<div class=CToolTip id="tt14">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_OctetIpv4(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_ip</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>convertes an IPv4 address given in dotted notation to its hex representation</div></div>
+<div class=CToolTip id="tt15">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_convertIPAddrToBinary(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_ip</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>Converts an IPv4 and IPv6 address to its hex representation. </div></div>
+<div class=CToolTip id="tt16">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_oct2char_safe(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Fault tolerant version of the oct2str Titan built-in function.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCDateTime-cc.html b/doc/apidoc/html/files/TCCDateTime-cc.html
new file mode 100644
index 0000000..c90fe2f
--- /dev/null
+++ b/doc/apidoc/html/files/TCCDateTime-cc.html
@@ -0,0 +1,483 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCDateTime.cc - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCDateTime.cc"></a>TCCDateTime.cc</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCDateTime.cc" >TCCDateTime.cc</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__time" >f__time</a></td>
+<td class=SDescription>Current calendar time of the system in seconds</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__ctime" >f__ctime</a></td>
+<td class=SDescription>Convert a time value in seconds to human readable string. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__ctime__UTC" >f__ctime__UTC</a></td>
+<td class=SDescription>Convert a time value in seconds to human readable string. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__getTimeFormatted" >f__getTimeFormatted</a></td>
+<td class=SDescription>Return the current calendar time in a formatted way</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__time2sec" >f__time2sec</a></td>
+<td class=SDescription>Function to convert a formated time value to seconds. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__time2sec__UTC" >f__time2sec__UTC</a></td>
+<td class=SDescription>Function to convert a formated time value to seconds. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__getCurrentDateWithOffset" >f__getCurrentDateWithOffset</a></td>
+<td class=SDescription>Generate a date from the actual date and time plus the parameter in seconds e.g. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__getCurrentGMTDate" >f__getCurrentGMTDate</a></td>
+<td class=SDescription>Return the current GMT date in format RFC 1123-Date e.g.:Sat, 13 Nov 2010 23:30:02 GMT</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__tic" >f__tic</a></td>
+<td class=SDescription>Return the number of clock ticks used by the application since the program was launched</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__toc" >f__toc</a></td>
+<td class=SDescription>Elapsed seconds since time t (only when f__tic() returns the number of clock ticks elapsed since the program was launched)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__timeDiff" >f__timeDiff</a></td>
+<td class=SDescription>Difference between two time</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__time"></a>f__time</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Current calendar time of the system in seconds</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>time value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__ctime"></a>f__ctime</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Convert a time value in seconds to human readable string.&nbsp; The time represented as local time</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - time value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>converted time value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__ctime__UTC"></a>f__ctime__UTC</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Convert a time value in seconds to human readable string.&nbsp; The time represented as UTC</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - time value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>converted time value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__getTimeFormatted"></a>f__getTimeFormatted</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the current calendar time in a formatted way</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - time value</td></tr>
+<tr>
+<td class=CDLEntry>pl__format</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - format string</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>formatted time in string format</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>
+<b>Specifier / Replaced by / Example</b></p>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>%a</td>
+<td class=CDLDescription>Abbreviated weekday name * - Thu</td></tr>
+<tr>
+<td class=CDLEntry>%A</td>
+<td class=CDLDescription>Full weekday name * - Thursday</td></tr>
+<tr>
+<td class=CDLEntry>%b</td>
+<td class=CDLDescription>Abbreviated month name * - Aug</td></tr>
+<tr>
+<td class=CDLEntry>%B</td>
+<td class=CDLDescription>Full month name * - August</td></tr>
+<tr>
+<td class=CDLEntry>%c</td>
+<td class=CDLDescription>Date and time representation * - Thu Aug 23 14:55:02 2001</td></tr>
+<tr>
+<td class=CDLEntry>%d</td>
+<td class=CDLDescription>Day of the month (01-31) - 23</td></tr>
+<tr>
+<td class=CDLEntry>%H</td>
+<td class=CDLDescription>Hour in 24h format (00-23) - 14</td></tr>
+<tr>
+<td class=CDLEntry>%I</td>
+<td class=CDLDescription>Hour in 12h format (01-12) - 02</td></tr>
+<tr>
+<td class=CDLEntry>%j</td>
+<td class=CDLDescription>Day of the year (001-366) - 235</td></tr>
+<tr>
+<td class=CDLEntry>%m</td>
+<td class=CDLDescription>Month as a decimal number (01-12) - 08</td></tr>
+<tr>
+<td class=CDLEntry>%M</td>
+<td class=CDLDescription>Minute (00-59) - 55</td></tr>
+<tr>
+<td class=CDLEntry>%p</td>
+<td class=CDLDescription>AM or PM designation - PM</td></tr>
+<tr>
+<td class=CDLEntry>%S</td>
+<td class=CDLDescription>Second (00-61) - 02</td></tr>
+<tr>
+<td class=CDLEntry>%U</td>
+<td class=CDLDescription>Week number with the first Sunday as the first day of week one (00-53) - 33</td></tr>
+<tr>
+<td class=CDLEntry>%w</td>
+<td class=CDLDescription>Weekday as a decimal number with Sunday as 0 (0-6) - 4</td></tr>
+<tr>
+<td class=CDLEntry>%W</td>
+<td class=CDLDescription>Week number with the first Monday as the first day of week one (00-53) - 34</td></tr>
+<tr>
+<td class=CDLEntry>%x</td>
+<td class=CDLDescription>Date representation * - 08/23/01</td></tr>
+<tr>
+<td class=CDLEntry>%X</td>
+<td class=CDLDescription>Time representation * - 14:55:02</td></tr>
+<tr>
+<td class=CDLEntry>%y</td>
+<td class=CDLDescription>Year, last two digits (00-99) - 01</td></tr>
+<tr>
+<td class=CDLEntry>%Y</td>
+<td class=CDLDescription>Year - 2001</td></tr>
+<tr>
+<td class=CDLEntry>%Z</td>
+<td class=CDLDescription>Timezone name or abbreviation - CDT</td></tr>
+<tr>
+<td class=CDLEntry>%%</td>
+<td class=CDLDescription>A % sign - %</td></tr></table>
+<ul>
+<li>The specifiers whose description is marked with an asterisk (*) are locale-dependent.</li></ul></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__time2sec"></a>f__time2sec</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Function to convert a formated time value to seconds.&nbsp; The time is expressed as local time.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__year</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - year (e.g.&nbsp; 2007)</td></tr>
+<tr>
+<td class=CDLEntry>pl__mon</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - month (e.g.&nbsp; 3)</td></tr>
+<tr>
+<td class=CDLEntry>pl__day</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 7)</td></tr>
+<tr>
+<td class=CDLEntry>pl__hour</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 12)</td></tr>
+<tr>
+<td class=CDLEntry>pl__min</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 50)</td></tr>
+<tr>
+<td class=CDLEntry>pl__sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 7)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>time in seconds</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>time in seconds since January 1, 1900</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__time2sec__UTC"></a>f__time2sec__UTC</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Function to convert a formated time value to seconds.&nbsp; The time is expressed as UTC.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__year</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - year (e.g.&nbsp; 2007)</td></tr>
+<tr>
+<td class=CDLEntry>pl__mon</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - month (e.g.&nbsp; 3)</td></tr>
+<tr>
+<td class=CDLEntry>pl__day</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 7)</td></tr>
+<tr>
+<td class=CDLEntry>pl__hour</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 12)</td></tr>
+<tr>
+<td class=CDLEntry>pl__min</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 50)</td></tr>
+<tr>
+<td class=CDLEntry>pl__sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 7)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>time in seconds</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>time in seconds since January 1, 1900</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__getCurrentDateWithOffset"></a>f__getCurrentDateWithOffset</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Generate a date from the actual date and time plus the parameter in seconds e.g. getSdate(30) will return a charstring containing the date and time of 30 seconds later</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - offset time value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>formatted time in string format</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__getCurrentGMTDate"></a>f__getCurrentGMTDate</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the current GMT date in format RFC 1123-Date e.g.:Sat, 13 Nov 2010 23:30:02 GMT</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>formatted time in string format</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__tic"></a>f__tic</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the number of clock ticks used by the application since the program was launched</p>
+<p>OR</p>
+<p>Return the amount of CPU time in microseconds since the last call of f__tic</p>
+<p>OR ...</p>
+<p>Warning!&nbsp; This function depends on used library version.&nbsp; Be careful!</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>tics since program start</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__toc"></a>f__toc</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Elapsed seconds since time t (only when f__tic() returns the number of clock ticks elapsed since the program was launched)</p>
+<p>Warning!&nbsp; This function depends on used library version.&nbsp; Be careful!</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>t</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - time value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>elapsed seconds</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>f__tic counts clock tics since program start. f__toc counts seconds since clock() readout in t till current time</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__timeDiff"></a>f__timeDiff</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Difference between two time</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>t_start</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - start time</td></tr>
+<tr>
+<td class=CDLEntry>t_stop</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - stop time</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>t_stop-t_start</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCDateTime_Functions-ttcn.html b/doc/apidoc/html/files/TCCDateTime_Functions-ttcn.html
new file mode 100644
index 0000000..e50979a
--- /dev/null
+++ b/doc/apidoc/html/files/TCCDateTime_Functions-ttcn.html
@@ -0,0 +1,791 @@
+<html>
+<head>
+<title>TCCDateTime_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCDateTime_Functions"></a>TCCDateTime_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports date and time handling</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCDateTime_Functions" >TCCDateTime_Functions</a></td>
+<td class=SDescription>This module supports date and time handling</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_time" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_time</a></td>
+<td class=SDescription>Current calendar time of the system in seconds</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_ctime" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_ctime</a></td>
+<td class=SDescription>Convert a time value in seconds to human readable string The time represented as local time</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_ctime_UTC" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_ctime_UTC</a></td>
+<td class=SDescription>Convert a time value in seconds to human readable string The time represented as UTC</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_getTimeFormatted" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">f_getTimeFormatted</a></td>
+<td class=SDescription>Return the current calendar time in a formatted way</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_time2sec" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_time2sec</a></td>
+<td class=SDescription>function to convert a formated time value to seconds The time represented as local time</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_time2sec_UTC" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_time2sec_UTC</a></td>
+<td class=SDescription>function to convert a formated time value to seconds The time represented as UTC</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_getCurrentDateWithOffset" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">f_getCurrentDateWithOffset</a></td>
+<td class=SDescription>Generate a date from the actual date and time plus the parameter in seconds e.g. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_getCurrentGMTDate" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">f_getCurrentGMTDate</a></td>
+<td class=SDescription>Return the current GMT date in format RFC 1123-Date ex :Sat, 13 Nov 2010 23:30:02 GMT</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_tic" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">f_tic</a></td>
+<td class=SDescription>Return the number of clock ticks used by the application since the program was launched</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_toc" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">f_toc</a></td>
+<td class=SDescription>Elapsed seconds since time t (only when f_tic() returns the number of clock ticks elapsed since the program was launched)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_timeDiff" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">f_timeDiff</a></td>
+<td class=SDescription>Difference between two time</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_time"></a>f_time</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_time() return integer</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Current calendar time of the system in seconds</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>time value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_ctime"></a>f_ctime</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ctime(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Convert a time value in seconds to human readable string The time represented as local time</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - time value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>converted time value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_ctime_UTC"></a>f_ctime_UTC</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ctime_UTC(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Convert a time value in seconds to human readable string The time represented as UTC</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - time value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>converted time value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_getTimeFormatted"></a>f_getTimeFormatted</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getTimeFormatted(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_format</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the current calendar time in a formatted way</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - time value in seconds</td></tr>
+<tr>
+<td class=CDLEntry>pl_format</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - format string</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>formatted time in string format</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>
+<b>Specifier / Replaced by / Example</b></p>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>%a</td>
+<td class=CDLDescription>Abbreviated weekday name * - Thu</td></tr>
+<tr>
+<td class=CDLEntry>%A</td>
+<td class=CDLDescription>Full weekday name * - Thursday</td></tr>
+<tr>
+<td class=CDLEntry>%b</td>
+<td class=CDLDescription>Abbreviated month name * - Aug</td></tr>
+<tr>
+<td class=CDLEntry>%B</td>
+<td class=CDLDescription>Full month name * - August</td></tr>
+<tr>
+<td class=CDLEntry>%c</td>
+<td class=CDLDescription>Date and time representation * - Thu Aug 23 14:55:02 2001</td></tr>
+<tr>
+<td class=CDLEntry>%d</td>
+<td class=CDLDescription>Day of the month (01-31) - 23</td></tr>
+<tr>
+<td class=CDLEntry>%H</td>
+<td class=CDLDescription>Hour in 24h format (00-23) - 14</td></tr>
+<tr>
+<td class=CDLEntry>%I</td>
+<td class=CDLDescription>Hour in 12h format (01-12) - 02</td></tr>
+<tr>
+<td class=CDLEntry>%j</td>
+<td class=CDLDescription>Day of the year (001-366) - 235</td></tr>
+<tr>
+<td class=CDLEntry>%m</td>
+<td class=CDLDescription>Month as a decimal number (01-12) - 08</td></tr>
+<tr>
+<td class=CDLEntry>%M</td>
+<td class=CDLDescription>Minute (00-59) - 55</td></tr>
+<tr>
+<td class=CDLEntry>%p</td>
+<td class=CDLDescription>AM or PM designation - PM</td></tr>
+<tr>
+<td class=CDLEntry>%S</td>
+<td class=CDLDescription>Second (00-61) - 02</td></tr>
+<tr>
+<td class=CDLEntry>%U</td>
+<td class=CDLDescription>Week number with the first Sunday as the first day of week one (00-53) - 33</td></tr>
+<tr>
+<td class=CDLEntry>%w</td>
+<td class=CDLDescription>Weekday as a decimal number with Sunday as 0 (0-6) - 4</td></tr>
+<tr>
+<td class=CDLEntry>%W</td>
+<td class=CDLDescription>Week number with the first Monday as the first day of week one (00-53) - 34</td></tr>
+<tr>
+<td class=CDLEntry>%x</td>
+<td class=CDLDescription>Date representation * - 08/23/01</td></tr>
+<tr>
+<td class=CDLEntry>%X</td>
+<td class=CDLDescription>Time representation * - 14:55:02</td></tr>
+<tr>
+<td class=CDLEntry>%y</td>
+<td class=CDLDescription>Year, last two digits (00-99) - 01</td></tr>
+<tr>
+<td class=CDLEntry>%Y</td>
+<td class=CDLDescription>Year - 2001</td></tr>
+<tr>
+<td class=CDLEntry>%Z</td>
+<td class=CDLDescription>Timezone name or abbreviation - CDT</td></tr>
+<tr>
+<td class=CDLEntry>%%</td>
+<td class=CDLDescription>A % sign - %</td></tr></table>
+<ul>
+<li>The specifiers whose description is marked with an asterisk (*) are locale-dependent.</li></ul></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_time2sec"></a>f_time2sec</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_time2sec(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_year,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_mon,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_day,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_hour,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_min,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>function to convert a formated time value to seconds The time represented as local time</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_year</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - year (e.g.&nbsp; 2007)</td></tr>
+<tr>
+<td class=CDLEntry>pl_mon</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - month (e.g.&nbsp; 3)</td></tr>
+<tr>
+<td class=CDLEntry>pl_day</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 7)</td></tr>
+<tr>
+<td class=CDLEntry>pl_hour</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 12)</td></tr>
+<tr>
+<td class=CDLEntry>pl_min</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 50)</td></tr>
+<tr>
+<td class=CDLEntry>pl_sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 7)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>time in seconds</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>time in seconds since January 1, 1900</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_time2sec_UTC"></a>f_time2sec_UTC</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_time2sec_UTC(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_year,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_mon,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_day,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_hour,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_min,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>function to convert a formated time value to seconds The time represented as UTC</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_year</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - year (e.g.&nbsp; 2007)</td></tr>
+<tr>
+<td class=CDLEntry>pl_mon</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - month (e.g.&nbsp; 3)</td></tr>
+<tr>
+<td class=CDLEntry>pl_day</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 7)</td></tr>
+<tr>
+<td class=CDLEntry>pl_hour</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 12)</td></tr>
+<tr>
+<td class=CDLEntry>pl_min</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 50)</td></tr>
+<tr>
+<td class=CDLEntry>pl_sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - day (e.g.&nbsp; 7)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>time in seconds</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>time in seconds since January 1, 1900</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_getCurrentDateWithOffset"></a>f_getCurrentDateWithOffset</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getCurrentDateWithOffset(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Generate a date from the actual date and time plus the parameter in seconds e.g. getSdate(30) will return a charstring containing the date and time of 30 seconds later</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_sec</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - offset time value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>formatted time in string format</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_getCurrentGMTDate"></a>f_getCurrentGMTDate</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_getCurrentGMTDate() return charstring</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the current GMT date in format RFC 1123-Date ex :Sat, 13 Nov 2010 23:30:02 GMT</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>formatted time in string format</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_tic"></a>f_tic</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_tic() return integer</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the number of clock ticks used by the application since the program was launched</p>
+<p>OR</p>
+<p>Return the amount of CPU time in microseconds since the last call of f_tic</p>
+<p>OR ...</p>
+<p>Warning!&nbsp; This function depends on used library version.&nbsp; Be careful!</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>tics since program start</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_toc"></a>f_toc</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_toc(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Elapsed seconds since time t (only when f_tic() returns the number of clock ticks elapsed since the program was launched)</p>
+<p>Warning!&nbsp; This function depends on used library version.&nbsp; Be careful!</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>t</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - time value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>elapsed seconds</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>f_tic counts clock tics since program start. f_toc counts seconds since clock() readout in t till current time</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_timeDiff"></a>f_timeDiff</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_timeDiff(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t_stop,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t_start</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Difference between two time</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>t_start</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - start time</td></tr>
+<tr>
+<td class=CDLEntry>t_stop</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - stop time</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>t_stop-t_start</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_time() return integer</td></tr></table></blockquote>Current calendar time of the system in seconds</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ctime(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Convert a time value in seconds to human readable string The time represented as local time</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ctime_UTC(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Convert a time value in seconds to human readable string The time represented as UTC</div></div>
+<div class=CToolTip id="tt4">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getTimeFormatted(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_format</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Return the current calendar time in a formatted way</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_time2sec(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_year,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_mon,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_day,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_hour,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_min,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>function to convert a formated time value to seconds The time represented as local time</div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_time2sec_UTC(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_year,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_mon,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_day,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_hour,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_min,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>function to convert a formated time value to seconds The time represented as UTC</div></div>
+<div class=CToolTip id="tt7">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getCurrentDateWithOffset(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Generate a date from the actual date and time plus the parameter in seconds e.g. </div></div>
+<div class=CToolTip id="tt8">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_getCurrentGMTDate() return charstring</td></tr></table></blockquote>Return the current GMT date in format RFC 1123-Date ex :Sat, 13 Nov 2010 23:30:02 GMT</div></div>
+<div class=CToolTip id="tt9">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_tic() return integer</td></tr></table></blockquote>Return the number of clock ticks used by the application since the program was launched</div></div>
+<div class=CToolTip id="tt10">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_toc(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Elapsed seconds since time t (only when f_tic() returns the number of clock ticks elapsed since the program was launched)</div></div>
+<div class=CToolTip id="tt11">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_timeDiff(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t_stop,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t_start</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Difference between two time</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCEncoding-cc.html b/doc/apidoc/html/files/TCCEncoding-cc.html
new file mode 100644
index 0000000..da2051e
--- /dev/null
+++ b/doc/apidoc/html/files/TCCEncoding-cc.html
@@ -0,0 +1,223 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCEncoding.cc - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCEncoding.cc"></a>TCCEncoding.cc</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCEncoding.cc" >TCCEncoding.cc</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#enc__MIME__Base64" >enc__MIME__Base64</a></td>
+<td class=SDescription>Encode message to MIME Base64 format (RFC 2045)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#dec__MIME__Base64" >dec__MIME__Base64</a></td>
+<td class=SDescription>Decode message from MIME Base64 format (RFC 2045)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#enc__LDIF__Base64" >enc__LDIF__Base64</a></td>
+<td class=SDescription>Encode message to LDIF Base64 format (RFC 2849)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#dec__LDIF__Base64" >dec__LDIF__Base64</a></td>
+<td class=SDescription>Decode message from LDIF Base64 format (RFC 2849)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__enc__TBCD" >f__enc__TBCD</a></td>
+<td class=SDescription>Encode charstring to TBCD</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__dec__TBCD" >f__dec__TBCD</a></td>
+<td class=SDescription>Decode octetstring from TBCD encoding</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="enc__MIME__Base64"></a>enc__MIME__Base64</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Encode message to MIME Base64 format (RFC 2045)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p__msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to encode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>encoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="dec__MIME__Base64"></a>dec__MIME__Base64</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Decode message from MIME Base64 format (RFC 2045)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p__b64</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - message to decode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>decoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="enc__LDIF__Base64"></a>enc__LDIF__Base64</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Encode message to LDIF Base64 format (RFC 2849)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p__msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to encode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>encoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="dec__LDIF__Base64"></a>dec__LDIF__Base64</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Decode message from LDIF Base64 format (RFC 2849)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p__b64</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - message to decode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>decoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__enc__TBCD"></a>f__enc__TBCD</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Encode charstring to TBCD</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__char</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - message to encode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>TBCD encoding</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__dec__TBCD"></a>f__dec__TBCD</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Decode octetstring from TBCD encoding</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__oct</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to decode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>decoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCEncoding_Functions-ttcn.html b/doc/apidoc/html/files/TCCEncoding_Functions-ttcn.html
new file mode 100644
index 0000000..71a194b
--- /dev/null
+++ b/doc/apidoc/html/files/TCCEncoding_Functions-ttcn.html
@@ -0,0 +1,473 @@
+<html>
+<head>
+<title>TCCEncoding_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCEncoding_Functions"></a>TCCEncoding_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports message based encoding of certain types</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCEncoding_Functions" >TCCEncoding_Functions</a></td>
+<td class=SDescription>This module supports message based encoding of certain types</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#enc_MIME_Base64" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">enc_MIME_Base64</a></td>
+<td class=SDescription>Encode message to MIME Base64 format (RFC 2045)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#dec_MIME_Base64" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">dec_MIME_Base64</a></td>
+<td class=SDescription>Decode message from MIME Base64 format (RFC 2045)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#enc_LDIF_Base64" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">enc_LDIF_Base64</a></td>
+<td class=SDescription>Encode message to LDIF Base64 format (RFC 2849)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#dec_LDIF_Base64" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">dec_LDIF_Base64</a></td>
+<td class=SDescription>Decode message from LDIF Base64 format (RFC 2849)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_encGSM7bit" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_encGSM7bit</a></td>
+<td class=SDescription>GSM 7-bit encoding (GSM 03.38)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_decGSM7bit" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_decGSM7bit</a></td>
+<td class=SDescription>GSM 7-bit decoding (GSM 03.38)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_enc_TBCD" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">f_enc_TBCD</a></td>
+<td class=SDescription>Encode charstring to TBCD</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_dec_TBCD" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">f_dec_TBCD</a></td>
+<td class=SDescription>Decode octetstring from TBCD encoding</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="enc_MIME_Base64"></a>enc_MIME_Base64</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function enc_MIME_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>p_msg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Encode message to MIME Base64 format (RFC 2045)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to encode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>encoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="dec_MIME_Base64"></a>dec_MIME_Base64</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function dec_MIME_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_b64</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Decode message from MIME Base64 format (RFC 2045)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_b64</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - message to decode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>decoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="enc_LDIF_Base64"></a>enc_LDIF_Base64</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function enc_LDIF_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>p_msg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Encode message to LDIF Base64 format (RFC 2849)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to encode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>encoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="dec_LDIF_Base64"></a>dec_LDIF_Base64</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function dec_LDIF_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_b64</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Decode message from LDIF Base64 format (RFC 2849)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_b64</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - message to decode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>decoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_encGSM7bit"></a>f_encGSM7bit</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_encGSM7bit(</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_str</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>GSM 7-bit encoding (GSM 03.38)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_str</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>universal charstring</b> - USSD string</td></tr></table>
+<h4 class=CHeading>Return value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>*ocetstring*</td>
+<td class=CDLDescription>encoded string</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_decGSM7bit"></a>f_decGSM7bit</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_decGSM7bit(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_gsm7bit</td>
+<td class=PAfterParameters nowrap>) return universal charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>GSM 7-bit decoding (GSM 03.38)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_gsm7bit</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>ocetstring</b> - GSM 7bit encoded string</td></tr></table>
+<h4 class=CHeading>Return value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>*universal charstring*</td>
+<td class=CDLDescription>decoded string</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_enc_TBCD"></a>f_enc_TBCD</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_enc_TBCD(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_char</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Encode charstring to TBCD</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_char</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - message to encode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>TBCD encoding</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_dec_TBCD"></a>f_dec_TBCD</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_dec_TBCD(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_oct</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Decode octetstring from TBCD encoding</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_oct</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to decode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>decoded message</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function enc_MIME_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>p_msg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Encode message to MIME Base64 format (RFC 2045)</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function dec_MIME_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_b64</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Decode message from MIME Base64 format (RFC 2045)</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function enc_LDIF_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>p_msg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Encode message to LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt4">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function dec_LDIF_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_b64</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Decode message from LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_encGSM7bit(</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_str</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>GSM 7-bit encoding (GSM 03.38)</div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_decGSM7bit(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_gsm7bit</td>
+<td class=PAfterParameters nowrap>) return universal charstring</td></tr></table></td></tr></table></blockquote>GSM 7-bit decoding (GSM 03.38)</div></div>
+<div class=CToolTip id="tt7">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_enc_TBCD(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_char</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Encode charstring to TBCD</div></div>
+<div class=CToolTip id="tt8">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_dec_TBCD(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_oct</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Decode octetstring from TBCD encoding</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCEnv-cc.html b/doc/apidoc/html/files/TCCEnv-cc.html
new file mode 100644
index 0000000..c026f88
--- /dev/null
+++ b/doc/apidoc/html/files/TCCEnv-cc.html
@@ -0,0 +1,116 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCEnv.cc - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCEnv.cc"></a>TCCEnv.cc</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCEnv.cc" >TCCEnv.cc</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__GetEnv" >f__GetEnv</a></td>
+<td class=SDescription>Return the environment variable specified via p_env_name</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__PutEnv" >f__PutEnv</a></td>
+<td class=SDescription>Set the environment variable p_env_name to p_env_value.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__GetEnv"></a>f__GetEnv</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the environment variable specified via p_env_name</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p__env__name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the environment variable</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>value of the environment variable</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__PutEnv"></a>f__PutEnv</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Set the environment variable p_env_name to p_env_value.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p__env__name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the environment variable</td></tr>
+<tr>
+<td class=CDLEntry>p__env__value</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - value of the environment variable</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>true if set of environment variable was successful, false else</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCEnv_Functions-ttcn.html b/doc/apidoc/html/files/TCCEnv_Functions-ttcn.html
new file mode 100644
index 0000000..691d063
--- /dev/null
+++ b/doc/apidoc/html/files/TCCEnv_Functions-ttcn.html
@@ -0,0 +1,180 @@
+<html>
+<head>
+<title>TCCEnv_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCEnv_Functions"></a>TCCEnv_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports handling of environment e.g. environment variable operations</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCEnv_Functions" >TCCEnv_Functions</a></td>
+<td class=SDescription>This module supports handling of environment e.g. </td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_GetEnv" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_GetEnv</a></td>
+<td class=SDescription>Return the environment variable specified via p_env_name</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_PutEnv" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_PutEnv</a></td>
+<td class=SDescription>Set the environment variable p_env_name to p_env_value.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_GetEnv"></a>f_GetEnv</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_GetEnv(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_name</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the environment variable specified via p_env_name</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_env_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the environment variable</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>value of the environment variable</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_PutEnv"></a>f_PutEnv</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_PutEnv(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_name,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_value</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Set the environment variable p_env_name to p_env_value.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_env_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the environment variable</td></tr>
+<tr>
+<td class=CDLEntry>p_env_value</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - value of the environment variable</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>true if set of environment variable was successful, false else</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_GetEnv(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_name</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Return the environment variable specified via p_env_name</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_PutEnv(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_name,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_value</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Set the environment variable p_env_name to p_env_value.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCFileIO-cc.html b/doc/apidoc/html/files/TCCFileIO-cc.html
new file mode 100644
index 0000000..852e1f0
--- /dev/null
+++ b/doc/apidoc/html/files/TCCFileIO-cc.html
@@ -0,0 +1,863 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileIO.cc - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCFileIO.cc"></a>TCCFileIO.cc</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCFileIO.cc" >TCCFileIO.cc</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__get__error__string" >f__FIO__get__error__string</a></td>
+<td class=SDescription>Returns the actual error message.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__get__error__code" >f__FIO__get__error__code</a></td>
+<td class=SDescription>Returns the actual error code.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__realize__error" >f__FIO__realize__error</a></td>
+<td class=SDescription>Builds the error message. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__opened" >f__FIO__opened</a></td>
+<td class=SDescription>Checks if the file with the given name is already opened. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__opened" >f__FIO__opened</a></td>
+<td class=SDescription>Checks if there is a file opened with the given file descriptor. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__open" >f__FIO__open</a></td>
+<td class=SDescription>Opens a file with the given name in the given mode. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__open__rdonly" >f__FIO__open__rdonly</a></td>
+<td class=SDescription>A wrapper function for f__FIO__open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__open__append__wronly" >f__FIO__open__append__wronly</a></td>
+<td class=SDescription>A wrapper function for f__FIO__open. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__open__append__rdwr" >f__FIO__open__append__rdwr</a></td>
+<td class=SDescription>A wrapper function for f__FIO__open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__open__trunc__wronly" >f__FIO__open__trunc__wronly</a></td>
+<td class=SDescription>A wrapper function for f__FIO__open. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__open__trunc__rdwr" >f__FIO__open__trunc__rdwr</a></td>
+<td class=SDescription>A wrapper function for f__FIO__open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__close" >f__FIO__close</a></td>
+<td class=SDescription>Closes a file associated with the given file descriptor.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__open__append__wronly__excl" >f__FIO__open__append__wronly__excl</a></td>
+<td class=SDescription>A wrapper function for f__FIO__open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__open__append__rdwr__excl" >f__FIO__open__append__rdwr__excl</a></td>
+<td class=SDescription>A wrapper function for f__FIO__open. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__open__trunc__wronly__excl" >f__FIO__open__trunc__wronly__excl</a></td>
+<td class=SDescription>A wrapper function for f__FIO__open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__open__trunc__rdwr__excl" >f__FIO__open__trunc__rdwr__excl</a></td>
+<td class=SDescription>A wrapper function for f__FIO__open. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__seek__home" >f__FIO__seek__home</a></td>
+<td class=SDescription>Moves the file pointer to the beginning of the file.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__seek__end" >f__FIO__seek__end</a></td>
+<td class=SDescription>Moves the file pointer to the end of the file.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__seek__forward" >f__FIO__seek__forward</a></td>
+<td class=SDescription>Moves the file pointer forward with a given number of bytes from the current position.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__seek__backward" >f__FIO__seek__backward</a></td>
+<td class=SDescription>Moves the file pointer backward with a given number of bytes from the current position.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__flush" >f__FIO__flush</a></td>
+<td class=SDescription>Transfers (&ldquo;flushes&rdquo;) all modified in-core data of the file referred to by the file descriptor to the disk device.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__write" >f__FIO__write</a></td>
+<td class=SDescription>Writes the given data to the file associated with the given file descriptor. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__write__text" >f__FIO__write__text</a></td>
+<td class=SDescription>A wrapper function for f__FIO__write. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__write__text__flush" >f__FIO__write__text__flush</a></td>
+<td class=SDescription>A wrapper function for f__FIO__write. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__write__data" >f__FIO__write__data</a></td>
+<td class=SDescription>A wrapper function for f__FIO__write. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__write__data__flush" >f__FIO__write__data__flush</a></td>
+<td class=SDescription>A wrapper function for f__FIO__write. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__read" >f__FIO__read</a></td>
+<td class=SDescription>Reads a given number of bytes to a given buffer from a file associated with the given file descriptor. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__read__text" >f__FIO__read__text</a></td>
+<td class=SDescription>A wrapper function for f__FIO__read. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__read__data" >f__FIO__read__data</a></td>
+<td class=SDescription>A wrapper function for f__FIO__read. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__read__text__until" >f__FIO__read__text__until</a></td>
+<td class=SDescription>It reads textual data until a given pattern is matched.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__read__data__until" >f__FIO__read__data__until</a></td>
+<td class=SDescription>It reads binary data until a given pattern is matched.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__set__filedescriptor__previousline" >f__FIO__set__filedescriptor__previousline</a></td>
+<td class=SDescription>It sets the file descriptor to the begin of the previous line.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__FIO__read__data__TLV" >f__FIO__read__data__TLV</a></td>
+<td class=SDescription>It reads binary data until a full ASN.1 TLV structure is read.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__FIO__chdir" >f__FIO__chdir</a></td>
+<td class=SDescription>It changes the current directory.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_mkdir" >f_FIO_mkdir</a></td>
+<td class=SDescription>Create a new directory</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_rmdir" >f_FIO_rmdir</a></td>
+<td class=SDescription>Removes a directory</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_fileOrDirExists" >f_FIO_fileOrDirExists</a></td>
+<td class=SDescription>Checks the existence of files and directories.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_stat" >f_FIO_stat</a></td>
+<td class=SDescription>Query the permissions of the file or directory.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_chmod" >f_FIO_chmod</a></td>
+<td class=SDescription>Change the permissions of the file or directory.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__get__error__string"></a>f__FIO__get__error__string</h3>
+<div class=CBody>
+<p>Returns the actual error message.</p>
+<h4 class=CHeading>Returns</h4>
+<p>The actual error message as a string.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__get__error__code"></a>f__FIO__get__error__code</h3>
+<div class=CBody>
+<p>Returns the actual error code.</p>
+<h4 class=CHeading>Returns</h4>
+<p>The actual error message as a string.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__realize__error"></a>f__FIO__realize__error</h3>
+<div class=CBody>
+<p>Builds the error message.&nbsp;  (For internal use only.)</p>
+<h4 class=CHeading>Returns</h4>
+<p>Always -1.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__opened"></a>f__FIO__opened</h3>
+<div class=CBody>
+<p>Checks if the file with the given name is already opened.&nbsp;  This function runs in linear time.&nbsp;  (For internal use only.)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>The file descriptor of the file or -1 if the file is not yet opened.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__opened"></a>f__FIO__opened</h3>
+<div class=CBody>
+<p>Checks if there is a file opened with the given file descriptor.&nbsp;  This function runs in logarithmic time.&nbsp;  (For internal use only.)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>The descriptor for the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>The name of the file or an empty string if the file is not yet opened.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open"></a>f__FIO__open</h3>
+<div class=CBody>
+<p>Opens a file with the given name in the given mode.&nbsp;  It creates the file if it doesn&rsquo;t exist.&nbsp;  (For internal use only.)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr>
+<tr>
+<td class=CDLEntry>FLAGS</td>
+<td class=CDLDescription>The way to open the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>The file descriptor for the file or -1 on error.&nbsp;  The error message is available through the f__FIO__get__error function.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open__rdonly"></a>f__FIO__open__rdonly</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__open.&nbsp;  It opens the file with the given name for reading only.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__open returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open__append__wronly"></a>f__FIO__open__append__wronly</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__open.&nbsp;  It opens the file with the given name for writing only.&nbsp;  If the file already exists it is opened in appending mode.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__open returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open__append__rdwr"></a>f__FIO__open__append__rdwr</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__open.&nbsp;  It opens the file with the given name for reading and writing.&nbsp;  If the file already exists it is opened in appending mode.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__open returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open__trunc__wronly"></a>f__FIO__open__trunc__wronly</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__open.&nbsp;  It opens the file with the given name for writing only.&nbsp;  If the file was not empty it is truncated.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__open returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open__trunc__rdwr"></a>f__FIO__open__trunc__rdwr</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__open.&nbsp;  It opens the file with the given name for reading and writing.&nbsp;  If the file was not empty it is truncated.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__open returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__close"></a>f__FIO__close</h3>
+<div class=CBody>
+<p>Closes a file associated with the given file descriptor.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>The file descriptor to close.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function close returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open__append__wronly__excl"></a>f__FIO__open__append__wronly__excl</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__open.&nbsp;  It opens the file with the given name for writing only in exclusive mode.&nbsp;  If the file already exists it is opened in appending mode.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__open returns or -1 if the file cannot be locked.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open__append__rdwr__excl"></a>f__FIO__open__append__rdwr__excl</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__open.&nbsp;  It opens the file with the given name for reading and writing in exclusive mode.&nbsp;  If the file already exists it is opened in appending mode.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__open returns or -1 if the file cannot be locked.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open__trunc__wronly__excl"></a>f__FIO__open__trunc__wronly__excl</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__open.&nbsp;  It opens the file with the given name for writing only in exclusive mode.&nbsp;  If the file was not empty it is truncated.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__open returns or -1 if the file cannot be locked.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__open__trunc__rdwr__excl"></a>f__FIO__open__trunc__rdwr__excl</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__open.&nbsp;  It opens the file with the given name for reading and writing in exclusive mode.&nbsp;  If the file was not empty it is truncated.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__open returns or -1 if the file cannot be locked.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__seek__home"></a>f__FIO__seek__home</h3>
+<div class=CBody>
+<p>Moves the file pointer to the beginning of the file.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function lseek returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__seek__end"></a>f__FIO__seek__end</h3>
+<div class=CBody>
+<p>Moves the file pointer to the end of the file.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function lseek returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__seek__forward"></a>f__FIO__seek__forward</h3>
+<div class=CBody>
+<p>Moves the file pointer forward with a given number of bytes from the current position.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>BYTES</td>
+<td class=CDLDescription>The number of bytes.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function lseek returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__seek__backward"></a>f__FIO__seek__backward</h3>
+<div class=CBody>
+<p>Moves the file pointer backward with a given number of bytes from the current position.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>BYTES</td>
+<td class=CDLDescription>The number of bytes.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function lseek returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__flush"></a>f__FIO__flush</h3>
+<div class=CBody>
+<p>Transfers (&ldquo;flushes&rdquo;) all modified in-core data of the file referred to by the file descriptor to the disk device.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What fsync returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__write"></a>f__FIO__write</h3>
+<div class=CBody>
+<p>Writes the given data to the file associated with the given file descriptor.&nbsp;  It works with textual and binary data.&nbsp;  (For internal use only.)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>DATA</td>
+<td class=CDLDescription>The data to write to the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>The number of bytes written or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__write__text"></a>f__FIO__write__text</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__write.&nbsp;  It writes textual data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The text to write to the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__write returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__write__text__flush"></a>f__FIO__write__text__flush</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__write.&nbsp;  It writes textual data and calls f__FIO__flush.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The text to write to the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__write returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__write__data"></a>f__FIO__write__data</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__write.&nbsp;  It writes binary data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>DATA</td>
+<td class=CDLDescription>The data to write to the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__write returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__write__data__flush"></a>f__FIO__write__data__flush</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__write.&nbsp;  It writes binary data and calls f__FIO__flush.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>DATA</td>
+<td class=CDLDescription>The data to write to the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__write returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__read"></a>f__FIO__read</h3>
+<div class=CBody>
+<p>Reads a given number of bytes to a given buffer from a file associated with the given file descriptor.&nbsp;  (For internal use only.)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>DATA</td>
+<td class=CDLDescription>The buffer where the data will be stored.</td></tr>
+<tr>
+<td class=CDLEntry>BYTES</td>
+<td class=CDLDescription>The number of bytes to read.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>The number of bytes read or -1 if the requested number of bytes couldn&rsquo;t be read.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__read__text"></a>f__FIO__read__text</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__read.&nbsp;  It reads textual data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The buffer for storing the text.</td></tr>
+<tr>
+<td class=CDLEntry>BYTES</td>
+<td class=CDLDescription>The number of bytes to read.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__read returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__read__data"></a>f__FIO__read__data</h3>
+<div class=CBody>
+<p>A wrapper function for f__FIO__read.&nbsp;  It reads binary data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>DATA</td>
+<td class=CDLDescription>The buffer for storing the data.</td></tr>
+<tr>
+<td class=CDLEntry>BYTES</td>
+<td class=CDLDescription>The number of bytes to read.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What f__FIO__read returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__read__text__until"></a>f__FIO__read__text__until</h3>
+<div class=CBody>
+<p>It reads textual data until a given pattern is matched.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The buffer for storing the text.</td></tr>
+<tr>
+<td class=CDLEntry>SEPARATOR</td>
+<td class=CDLDescription>The separator pattern.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>The number of bytes read from the file, not including the delimiter.&nbsp;  In case of error it returns -1.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__read__data__until"></a>f__FIO__read__data__until</h3>
+<div class=CBody>
+<p>It reads binary data until a given pattern is matched.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The buffer for storing the data.</td></tr>
+<tr>
+<td class=CDLEntry>SEPARATOR</td>
+<td class=CDLDescription>The separator pattern.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>The number of bytes read from the file, not including the delimiter.&nbsp;  In case of error it returns -1.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__set__filedescriptor__previousline"></a>f__FIO__set__filedescriptor__previousline</h3>
+<div class=CBody>
+<p>It sets the file descriptor to the begin of the previous line.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>If there was no problem, then the return value will be 1.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__read__data__TLV"></a>f__FIO__read__data__TLV</h3>
+<div class=CBody>
+<p>It reads binary data until a full ASN.1 TLV structure is read.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The buffer for storing the data.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>The number of bytes read from the file.&nbsp;  In case of error it returns -1.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__FIO__chdir"></a>f__FIO__chdir</h3>
+<div class=CBody>
+<p>It changes the current directory.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the new directory.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Boolean value for successful or unsuccessful directory change</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_mkdir"></a>f_FIO_mkdir</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Create a new directory</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_dir_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the directory to create</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate the successful or unsuccessful directory creation</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>In the case of unsuccessful operation the cause of the error can be queried  by the f_FIO_get_error_code, f_FIO_get_error_string functions</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>The path to the directory must exist, so the existence of the path should be checked, and the missing directories should be created recursively.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_rmdir"></a>f_FIO_rmdir</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Removes a directory</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_dir_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the directory to remove</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate the successful or unsuccessful directory creation</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>In the case of unsuccessful operation the cause of the error can be queried  by the f_FIO_get_error_code, f_FIO_get_error_string functions</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>The directories must be empty, so the child directories should be cleaned and deleted recursively.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_fileOrDirExists"></a>f_FIO_fileOrDirExists</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Checks the existence of files and directories.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate the exictense of the file or diectory</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_stat"></a>f_FIO_stat</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Query the permissions of the file or directory.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr>
+<tr>
+<td class=CDLEntry>p_permissions</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>FIO_permissions</b> - the permissions of the object</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate sucessfull execution</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_chmod"></a>f_FIO_chmod</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Change the permissions of the file or directory.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr>
+<tr>
+<td class=CDLEntry>p_permissions</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>FIO_permissions</b> - the permissions of the object</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate sucessfull execution</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Change the permissions of the file or directory according to the p_permissions.&nbsp; If the value of the field is:</p>
+<ul>
+<li>true: set the permission</li>
+<li>false: clear the permission</li>
+<li>omit: doesn&rsquo;t change the permission</li></ul></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCFileIO_Functions-ttcn.html b/doc/apidoc/html/files/TCCFileIO_Functions-ttcn.html
new file mode 100644
index 0000000..a315689
--- /dev/null
+++ b/doc/apidoc/html/files/TCCFileIO_Functions-ttcn.html
@@ -0,0 +1,1751 @@
+<html>
+<head>
+<title>TCCFileIO_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCFileIO_Functions"></a>TCCFileIO_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports file I/O handling</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCFileIO_Functions" >TCCFileIO_Functions</a></td>
+<td class=SDescription>This module supports file I/O handling</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_open_rdonly" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_FIO_open_rdonly</a></td>
+<td class=SDescription>A wrapper function for f_FIO_open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_open_append_wronly" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_FIO_open_append_wronly</a></td>
+<td class=SDescription>A wrapper function for f_FIO_open. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_open_append_rdwr" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_FIO_open_append_rdwr</a></td>
+<td class=SDescription>A wrapper function for f_FIO_open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_open_trunc_wronly" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">f_FIO_open_trunc_wronly</a></td>
+<td class=SDescription>A wrapper function for f_FIO_open. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_open_trunc_rdwr" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_FIO_open_trunc_rdwr</a></td>
+<td class=SDescription>A wrapper function for f_FIO_open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_open_append_wronly_excl" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_FIO_open_append_wronly_excl</a></td>
+<td class=SDescription>A wrapper function for f_FIO_open. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_open_append_rdwr_excl" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">f_FIO_open_append_rdwr_excl</a></td>
+<td class=SDescription>A wrapper function for f_FIO_open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_open_trunc_wronly_excl" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">f_FIO_open_trunc_wronly_excl</a></td>
+<td class=SDescription>A wrapper function for f_FIO_open. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_open_trunc_rdwr_excl" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">f_FIO_open_trunc_rdwr_excl</a></td>
+<td class=SDescription>A wrapper function for f_FIO_open. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_close" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">f_FIO_close</a></td>
+<td class=SDescription>Closes a file associated with the given file descriptor.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_seek_home" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">f_FIO_seek_home</a></td>
+<td class=SDescription>Moves the file pointer to the beginning of the file.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_seek_end" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">f_FIO_seek_end</a></td>
+<td class=SDescription>Moves the file pointer to the end of the file.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_seek_forward" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">f_FIO_seek_forward</a></td>
+<td class=SDescription>Moves the file pointer forward with a given number of bytes from the current position.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_seek_backward" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">f_FIO_seek_backward</a></td>
+<td class=SDescription>Moves the file pointer backward with a given number of bytes from the current position.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_write_data" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">f_FIO_write_data</a></td>
+<td class=SDescription>A wrapper function for f_FIO_write. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_write_text" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">f_FIO_write_text</a></td>
+<td class=SDescription>A wrapper function for f_FIO_write. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_write_data_flush" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">f_FIO_write_data_flush</a></td>
+<td class=SDescription>A wrapper function for f_FIO_write. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_write_text_flush" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">f_FIO_write_text_flush</a></td>
+<td class=SDescription>A wrapper function for f_FIO_write. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_flush" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">f_FIO_flush</a></td>
+<td class=SDescription>Transfers (&ldquo;flushes&rdquo;) all modified in-core data of the file referred to by the file descriptor to the disk device.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_read_data" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">f_FIO_read_data</a></td>
+<td class=SDescription>A wrapper function for f_FIO_read. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_read_text" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">f_FIO_read_text</a></td>
+<td class=SDescription>A wrapper function for f_FIO_read. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_read_text_until" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">f_FIO_read_text_until</a></td>
+<td class=SDescription>A wrapper function for f_FIO_read_until. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_read_data_until" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">f_FIO_read_data_until</a></td>
+<td class=SDescription>A wrapper function for f_FIO_read_until. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_read_data_TLV" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">f_FIO_read_data_TLV</a></td>
+<td class=SDescription>A wrapper function for f_FIO_read. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_get_error_string" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">f_FIO_get_error_string</a></td>
+<td class=SDescription>Returns the actual error message.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_get_error_code" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">f_FIO_get_error_code</a></td>
+<td class=SDescription>Returns the actual error code.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_set_filedescriptor_previousline" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">f_FIO_set_filedescriptor_previousline</a></td>
+<td class=SDescription>If there was no problem, then the return value will be 1.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_chdir" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">f_FIO_chdir</a></td>
+<td class=SDescription>A wrapper function for f_FIO_chdir. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_mkdir" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">f_FIO_mkdir</a></td>
+<td class=SDescription>Create a new directory</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_rmdir" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">f_FIO_rmdir</a></td>
+<td class=SDescription>Removes a directory</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_fileOrDirExists" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">f_FIO_fileOrDirExists</a></td>
+<td class=SDescription>Checks the existence of files and directories.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FIO_stat" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">f_FIO_stat</a></td>
+<td class=SDescription>Query the permissions of the file or directory.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FIO_chmod" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">f_FIO_chmod</a></td>
+<td class=SDescription>Change the permissions of the file or directory.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_open_rdonly"></a>f_FIO_open_rdonly</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_rdonly (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_open.&nbsp;  It opens the file with the given name for reading only.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>A valid file descriptor or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_open_append_wronly"></a>f_FIO_open_append_wronly</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_wronly (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_open.&nbsp;  It opens the file with the given name for writing only.&nbsp;  If the file already exists it is opened in appending mode.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>A valid file descriptor or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_open_append_rdwr"></a>f_FIO_open_append_rdwr</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_append_rdwr (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_open.&nbsp;  It opens the file with the given name for reading and writing.&nbsp;  If the file already exists it is opened in appending mode.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>A valid file descriptor or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_open_trunc_wronly"></a>f_FIO_open_trunc_wronly</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_wronly (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_open.&nbsp;  It opens the file with the given name for writing only.&nbsp;  If the file was not empty it is truncated.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>A valid file descriptor or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_open_trunc_rdwr"></a>f_FIO_open_trunc_rdwr</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_trunc_rdwr (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_open.&nbsp;  It opens the file with the given name for reading and writing.&nbsp;  If the file was not empty it is truncated.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>A valid file descriptor or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_open_append_wronly_excl"></a>f_FIO_open_append_wronly_excl</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_wronly_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_open.&nbsp;  It opens the file with the given name for writing only in exclusive mode.&nbsp;  If the file already exists it is opened in appending mode.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>A valid file descriptor or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_open_append_rdwr_excl"></a>f_FIO_open_append_rdwr_excl</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_rdwr_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_open.&nbsp;  It opens the file with the given name for reading and writing in exclusive mode.&nbsp;  If the file already exists it is opened in appending mode.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>A valid file descriptor or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_open_trunc_wronly_excl"></a>f_FIO_open_trunc_wronly_excl</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_wronly_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_open.&nbsp;  It opens the file with the given name for writing only in exclusive mode.&nbsp;  If the file was not empty it is truncated.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>A valid file descriptor or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_open_trunc_rdwr_excl"></a>f_FIO_open_trunc_rdwr_excl</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_rdwr_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_open.&nbsp;  It opens the file with the given name for reading and writing in exclusive mode.&nbsp;  If the file was not empty it is truncated.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>A valid file descriptor or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_close"></a>f_FIO_close</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_close (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>Closes a file associated with the given file descriptor.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>The file descriptor to close.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function close returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_seek_home"></a>f_FIO_seek_home</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_home (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>Moves the file pointer to the beginning of the file.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function lseek returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_seek_end"></a>f_FIO_seek_end</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_end (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>Moves the file pointer to the end of the file.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function lseek returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_seek_forward"></a>f_FIO_seek_forward</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_forward (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>Moves the file pointer forward with a given number of bytes from the current position.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>BYTES</td>
+<td class=CDLDescription>The number of bytes.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function lseek returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_seek_backward"></a>f_FIO_seek_backward</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_backward (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>Moves the file pointer backward with a given number of bytes from the current position.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>BYTES</td>
+<td class=CDLDescription>The number of bytes.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function lseek returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_write_data"></a>f_FIO_write_data</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_data (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_data</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_write.&nbsp;  It writes binary data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>DATA</td>
+<td class=CDLDescription>The data to write to the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Number of bytes written or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_write_text"></a>f_FIO_write_text</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_text (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_write.&nbsp;  It writes textual data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The text to write to the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Number of bytes written or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_write_data_flush"></a>f_FIO_write_data_flush</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_write_data_flush (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_write.&nbsp;  It writes binary data and calls f_FIO_flush.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>DATA</td>
+<td class=CDLDescription>The data to write to the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Number of bytes written or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_write_text_flush"></a>f_FIO_write_text_flush</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_text_flush (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_write.&nbsp;  It writes textual data and calls f_FIO_flush.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The text to write to the file.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Number of bytes written or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_flush"></a>f_FIO_flush</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_flush (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>Transfers (&ldquo;flushes&rdquo;) all modified in-core data of the file referred to by the file descriptor to the disk device.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>What the POSIX function fsync returns.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_read_data"></a>f_FIO_read_data</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_read_data (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_data,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_read.&nbsp;  It reads binary data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>DATA</td>
+<td class=CDLDescription>The buffer for storing the data.</td></tr>
+<tr>
+<td class=CDLEntry>BYTES</td>
+<td class=CDLDescription>The number of bytes to read.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Number of bytes read or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_read_text"></a>f_FIO_read_text</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_read_text (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_read.&nbsp;  It reads textual data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The buffer for storing the text.</td></tr>
+<tr>
+<td class=CDLEntry>BYTES</td>
+<td class=CDLDescription>The number of bytes to read.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Number of bytes read or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_read_text_until"></a>f_FIO_read_text_until</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_text_until (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_text,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_separator</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_read_until.&nbsp;  It reads textual data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The buffer for storing the text.</td></tr>
+<tr>
+<td class=CDLEntry>SEPARATOR</td>
+<td class=CDLDescription>The separator pattern.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Number of bytes read or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_read_data_until"></a>f_FIO_read_data_until</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_data_until (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_separator</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_read_until.&nbsp;  It reads binary data.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The buffer for storing the data.</td></tr>
+<tr>
+<td class=CDLEntry>SEPARATOR</td>
+<td class=CDLDescription>The separator pattern.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Number of bytes read or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_read_data_TLV"></a>f_FIO_read_data_TLV</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_data_TLV (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_read.&nbsp;  It reads a full ASN.1 TLV structure in binary data format.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>FD</td>
+<td class=CDLDescription>A file descriptor.</td></tr>
+<tr>
+<td class=CDLEntry>TEXT</td>
+<td class=CDLDescription>The buffer for storing the data.</td></tr>
+<tr>
+<td class=CDLEntry>SEPARATOR</td>
+<td class=CDLDescription>The separator pattern.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Number of bytes read or -1 on error.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_get_error_string"></a>f_FIO_get_error_string</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_FIO_get_error_string () return charstring</td></tr></table></blockquote>
+<p>Returns the actual error message.</p>
+<h4 class=CHeading>Returns</h4>
+<p>The actual error message as a string.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_get_error_code"></a>f_FIO_get_error_code</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_FIO_get_error_code () return integer</td></tr></table></blockquote>
+<p>Returns the actual error code.</p>
+<h4 class=CHeading>Returns</h4>
+<p>The actual error code.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_set_filedescriptor_previousline"></a>f_FIO_set_filedescriptor_previousline</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_set_filedescriptor_previousline (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Returns</h4>
+<p>If there was no problem, then the return value will be 1.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_chdir"></a>f_FIO_chdir</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_chdir (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<p>A wrapper function for f_FIO_chdir.&nbsp;  It changes the current directory.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>NAME</td>
+<td class=CDLDescription>The name of the new directory.</td></tr></table>
+<h4 class=CHeading>Returns</h4>
+<p>Boolean value for successful or unsuccessful directory change</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_mkdir"></a>f_FIO_mkdir</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_mkdir (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_dir_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Create a new directory</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_dir_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the directory to create</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate the successful or unsuccessful directory creation</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>In the case of unsuccessful operation the cause of the error can be queried  by the f_FIO_get_error_code, f_FIO_get_error_string functions</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>The path to the directory must exist, so the existence of the path should be checked, and the missing directories should be created recursively.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_rmdir"></a>f_FIO_rmdir</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_rmdir (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_dir_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Removes a directory</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_dir_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the directory to remove</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate the successful or unsuccessful directory creation</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>In the case of unsuccessful operation the cause of the error can be queried  by the f_FIO_get_error_code, f_FIO_get_error_string functions</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>The directories must be empty, so the child directories should be cleaned and deleted recursively.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_fileOrDirExists"></a>f_FIO_fileOrDirExists</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_fileOrDirExists (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Checks the existence of files and directories.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate the exictense of the file or diectory</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_stat"></a>f_FIO_stat</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_stat (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>FIO_permissions&nbsp;</td>
+<td class=PParameter nowrap>p_permissions</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Query the permissions of the file or directory.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr>
+<tr>
+<td class=CDLEntry>p_permissions</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>FIO_permissions</b> - the permissions of the object</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate sucessfull execution</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FIO_chmod"></a>f_FIO_chmod</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_chmod (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FIO_permissions&nbsp;</td>
+<td class=PParameter nowrap>p_permissions</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Change the permissions of the file or directory.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr>
+<tr>
+<td class=CDLEntry>p_permissions</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>FIO_permissions</b> - the permissions of the object</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>boolean</td>
+<td class=CDLDescription>indicate sucessfull execution</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Change the permissions of the file or directory according to the p_permissions.&nbsp; If the value of the field is:</p>
+<ul>
+<li>true: set the permission</li>
+<li>false: clear the permission</li>
+<li>omit: doesn&rsquo;t change the permission</li></ul></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_rdonly (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_wronly (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_append_rdwr (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt4">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_wronly (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_trunc_rdwr (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_wronly_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt7">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_rdwr_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt8">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_wronly_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt9">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_rdwr_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt10">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_close (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Closes a file associated with the given file descriptor.</div></div>
+<div class=CToolTip id="tt11">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_home (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer to the beginning of the file.</div></div>
+<div class=CToolTip id="tt12">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_end (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer to the end of the file.</div></div>
+<div class=CToolTip id="tt13">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_forward (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer forward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt14">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_backward (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer backward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt15">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_data (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_data</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt16">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_text (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt17">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_write_data_flush (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt18">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_text_flush (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt19">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_flush (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Transfers (&ldquo;flushes&rdquo;) all modified in-core data of the file referred to by the file descriptor to the disk device.</div></div>
+<div class=CToolTip id="tt20">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_read_data (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_data,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read. </div></div>
+<div class=CToolTip id="tt21">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_read_text (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read. </div></div>
+<div class=CToolTip id="tt22">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_text_until (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_text,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_separator</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read_until. </div></div>
+<div class=CToolTip id="tt23">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_data_until (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_separator</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read_until. </div></div>
+<div class=CToolTip id="tt24">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_data_TLV (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read. </div></div>
+<div class=CToolTip id="tt25">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_FIO_get_error_string () return charstring</td></tr></table></blockquote>Returns the actual error message.</div></div>
+<div class=CToolTip id="tt26">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_FIO_get_error_code () return integer</td></tr></table></blockquote>Returns the actual error code.</div></div>
+<div class=CToolTip id="tt27">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_set_filedescriptor_previousline (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>If there was no problem, then the return value will be 1.</div></div>
+<div class=CToolTip id="tt28">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_chdir (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_chdir. </div></div>
+<div class=CToolTip id="tt29">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_mkdir (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_dir_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Create a new directory</div></div>
+<div class=CToolTip id="tt30">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_rmdir (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_dir_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Removes a directory</div></div>
+<div class=CToolTip id="tt31">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_fileOrDirExists (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Checks the existence of files and directories.</div></div>
+<div class=CToolTip id="tt32">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_stat (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>FIO_permissions&nbsp;</td>
+<td class=PParameter nowrap>p_permissions</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Query the permissions of the file or directory.</div></div>
+<div class=CToolTip id="tt33">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_chmod (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FIO_permissions&nbsp;</td>
+<td class=PParameter nowrap>p_permissions</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Change the permissions of the file or directory.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCFileSystem_Functions-ttcn.html b/doc/apidoc/html/files/TCCFileSystem_Functions-ttcn.html
new file mode 100644
index 0000000..d5c0220
--- /dev/null
+++ b/doc/apidoc/html/files/TCCFileSystem_Functions-ttcn.html
@@ -0,0 +1,245 @@
+<html>
+<head>
+<title>TCCFileSystem_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCFileSystem_Functions"></a>TCCFileSystem_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports File System information</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCFileSystem_Functions" >TCCFileSystem_Functions</a></td>
+<td class=SDescription>This module supports File System information</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FS_bsize" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_FS_bsize</a></td>
+<td class=SDescription>Query the file system block size.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FS_blocks" >f_FS_blocks</a></td>
+<td class=SDescription>Query the total number of blocks.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_FS_bfree" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_FS_bfree</a></td>
+<td class=SDescription>Query the total number of free blocks.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_FS_dspacerate" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_FS_dspacerate</a></td>
+<td class=SDescription>Query the free space rate.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FS_bsize"></a>f_FS_bsize</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_bsize (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Query the file system block size.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>the file system block size or -1 on error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FS_blocks"></a>f_FS_blocks</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Query the total number of blocks.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>the total number of blocks or -1 on error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FS_bfree"></a>f_FS_bfree</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_bfree (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Query the total number of free blocks.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>the total number of free blocks or -1 on error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_FS_dspacerate"></a>f_FS_dspacerate</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_dspacerate (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Query the free space rate.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_name</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file or directory to check</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>the free space rate or -1 on error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_bsize (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Query the file system block size.</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_bfree (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Query the total number of free blocks.</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_dspacerate (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Query the free space rate.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCIPsec_Definitions-ttcn.html b/doc/apidoc/html/files/TCCIPsec_Definitions-ttcn.html
new file mode 100644
index 0000000..e71c7db
--- /dev/null
+++ b/doc/apidoc/html/files/TCCIPsec_Definitions-ttcn.html
@@ -0,0 +1,827 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCIPsec_Definitions.ttcn - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCIPsec_Definitions.ttcn"></a>TCCIPsec_Definitions.ttcn</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCIPsec_Definitions.ttcn" >TCCIPsec_Definitions.ttcn</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Types_and_Constants" >Types and Constants</a></td>
+<td class=SDescription></td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_IPsecResult" >TCCIPsec_IPsecResult</a></td>
+<td class=SDescription>Declares the possible return values of IPsec handling functions</td></tr>
+<tr class="SConstant SIndent1">
+<td class=SEntry>
+<a href="#c_TCCIPsec_anyPort" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">c_TCCIPsec_anyPort</a></td>
+<td class=SDescription>Provides port value representing any port</td></tr>
+<tr class="SConstant SIndent1 SMarked">
+<td class=SEntry>
+<a href="#c_TCCIPsec_prefixAll" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">c_TCCIPsec_prefixAll</a></td>
+<td class=SDescription>Provides port value representing any port</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_Protocol" >TCCIPsec_Protocol</a></td>
+<td class=SDescription>Declares identifiers for the possible security protocols</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_IPsecMode" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">TCCIPsec_IPsecMode</a></td>
+<td class=SDescription>Declares identifiers for the possible security association</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_Extension" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">TCCIPsec_Extension</a></td>
+<td class=SDescription>Defines a union of possible extensions for Security Associations (SAs)</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_ExtensionList" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">TCCIPsec_ExtensionList</a></td>
+<td class=SDescription>Defines a list of extensions for the SA adding function</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_Key" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">TCCIPsec_Key</a></td>
+<td class=SDescription>Defines a union for storing a key for an SA. </td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_EAlgo" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">TCCIPsec_EAlgo</a></td>
+<td class=SDescription>Declares identifiers for the possible encryption algorithms</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_AAlgo" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">TCCIPsec_AAlgo</a></td>
+<td class=SDescription>Declares identifiers for the possible integrity protection algorithms</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_Encr" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">TCCIPsec_Encr</a></td>
+<td class=SDescription>Defines a record for storing the encryption algorithm identifier and key.</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_Auth" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">TCCIPsec_Auth</a></td>
+<td class=SDescription>Defines a record for storing the integrity protection algorithm identifier and key.</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_Auth" >TCCIPsec_Auth</a></td>
+<td class=SDescription>Defines a record for storing the encryption and integrity protection algorithm identifiers and the keys.</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_Algorithm" >TCCIPsec_Algorithm</a></td>
+<td class=SDescription>Defines a union for storing the possible combination of algorithms with its keys. </td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_TranspProto" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">TCCIPsec_TranspProto</a></td>
+<td class=SDescription>Declares identifiers for the possible upper layer protocols</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_TranspProto" >TCCIPsec_TranspProto</a></td>
+<td class=SDescription>Declares identifiers for the possible directions for which a policy is applied.</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_DiscardRule" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">TCCIPsec_DiscardRule</a></td>
+<td class=SDescription>Declares a type to represent the policy rule to discard packets.</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_NoneRule" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">TCCIPsec_NoneRule</a></td>
+<td class=SDescription>Declares a type to represent the policy rule to bypass IPsec.</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_Transport" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">TCCIPsec_Transport</a></td>
+<td class=SDescription>Declares a type to represent the transport IPsec mode - as opposed to tunnel mode</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_Tunnel" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">TCCIPsec_Tunnel</a></td>
+<td class=SDescription>Declares a type to represent the tunnel IPsec mode - as opposed to transport mode</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_Mode" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">TCCIPsec_Mode</a></td>
+<td class=SDescription>Declares an union for storing to IPsec mode</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_DefaultLevel" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">TCCIPsec_DefaultLevel</a></td>
+<td class=SDescription>Declares a type to represent the policy level indicating that system defaults has to be used.</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_UseLevel" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">TCCIPsec_UseLevel</a></td>
+<td class=SDescription>Declares a type to represent the policy level indicating that IPsec should be used if appropriate SA is available. </td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_UseLevel" >TCCIPsec_UseLevel</a></td>
+<td class=SDescription>Declares a type to represent the policy level indicating that IPsec has to be used unconditionally.</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_UseLevel" >TCCIPsec_UseLevel</a></td>
+<td class=SDescription>Declares a type to represent the policy level indicating that IPsec has to be used with the SA or SAs indicated by id.</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_RuleLevel" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">TCCIPsec_RuleLevel</a></td>
+<td class=SDescription>Defines a union for storing rule level.</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_Rule" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">TCCIPsec_Rule</a></td>
+<td class=SDescription>Declares a record for storing an IPsec rule.</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#TCCIPsec_ExtensionList" >TCCIPsec_ExtensionList</a></td>
+<td class=SDescription>Defines a list of IPsec rules</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCIPsec_RuleLevel" >TCCIPsec_RuleLevel</a></td>
+<td class=SDescription>Defines a union for storing a policy rule.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Types_and_Constants"></a>Types and Constants</h3></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_IPsecResult"></a>TCCIPsec_IPsecResult</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares the possible return values of IPsec handling functions</p>
+<h4 class=CHeading>Elements</h4>
+<p>ok: The function finished successfully parameterInvalid: One of the function parameters was invalid The error is indicated either by the library or the kernel. alreadyExisted: Entry already existed while trying to add it notFound: Entry was not found while trying to delete or modify it insufficientPrivilege: The calling process does not have the necessary privilege to use the PF_KEY interface or to handle the databases of IPsec. notImplemented: Not implemented: The library is compiled without IPsec support or with limited support Support for SPD handling is platform dependent socketError: Other type of error during socket operation The logs contain details on the error</p>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CConstant">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="c_TCCIPsec_anyPort"></a>c_TCCIPsec_anyPort</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>const integer c_TCCIPsec_anyPort := 0</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Provides port value representing any port</p>
+<h4 class=CHeading>Value</h4>
+<p>0</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CConstant">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="c_TCCIPsec_prefixAll"></a>c_TCCIPsec_prefixAll</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>const integer c_TCCIPsec_prefixAll := -1</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Provides port value representing any port</p>
+<h4 class=CHeading>Value</h4>
+<p>0</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Protocol"></a>TCCIPsec_Protocol</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares identifiers for the possible security protocols</p>
+<h4 class=CHeading>Elements</h4>
+<p>ah: Authentication Header esp: Encapsulated Security Payload</p>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_IPsecMode"></a>TCCIPsec_IPsecMode</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_IPsecMode { anyMode (0), transport (1), tunnel (2) }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares identifiers for the possible security association</p>
+<h4 class=CHeading>Elements</h4>
+<p>anyMode: this is the unspecified, default mode transport: turns on transport mode in security association tunnel: turns on tunneling mode in security association</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Extension"></a>TCCIPsec_Extension</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Extension { integer policyId, integer hardLifetime, integer softLifetime }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a union of possible extensions for Security Associations (SAs)</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>policyId</td>
+<td class=CDLDescription>
+<b>integer</b>: Identifier to link a Security Association (SA) to Security Policy (SP)</td></tr>
+<tr>
+<td class=CDLEntry>hardLifetime</td>
+<td class=CDLDescription>
+<b>integer</b>: Hard Lifetime in seconds</td></tr>
+<tr>
+<td class=CDLEntry>softLifetime</td>
+<td class=CDLDescription>
+<b>integer</b>: Soft Lifetime in seconds</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_ExtensionList"></a>TCCIPsec_ExtensionList</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of TCCIPsec_Extension TCCIPsec_ExtensionList</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a list of extensions for the SA adding function</p>
+<h4 class=CHeading>Elements</h4>
+<p>record of <b>TCCIPsec_Extension</b></p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Key"></a>TCCIPsec_Key</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Key { hexstring hex, charstring text }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a union for storing a key for an SA.&nbsp; The key is specified inside the <b>TCCIPsec_Algorithm</b> alg parameter of the f_IPsec_SADB_add function.</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>hex</td>
+<td class=CDLDescription>
+<b>hexstring</b>: Key in hexstring format</td></tr>
+<tr>
+<td class=CDLEntry>text</td>
+<td class=CDLDescription>
+<b>charstring</b>: Key in charstring format</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_EAlgo"></a>TCCIPsec_EAlgo</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_EAlgo { EALG_NONE (0), EALG_3DESCBC (3), EALG_NULL(11), EALG_AESCBC (12) }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares identifiers for the possible encryption algorithms</p>
+<h4 class=CHeading>Elements</h4>
+<p>EALG_NONE: The &ldquo;null&rdquo; algorithm EALG_3DESCBC: The &ldquo;3des-cbc&rdquo; algorithm (rfc2451) EALG_NULL: The NULL encryption algorithm (rfc2367) EALG_AESCBC: The &ldquo;aes-cbc&rdquo; algorithm (</p>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_AAlgo"></a>TCCIPsec_AAlgo</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_AAlgo { AALG_NONE (0), AALG_MD5HMAC (2), AALG_SHA1HMAC (3) }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares identifiers for the possible integrity protection algorithms</p>
+<h4 class=CHeading>Elements</h4>
+<p>AALG_NONE: The &ldquo;null&rdquo; algorithm AALG_MD5HMAC: The &ldquo;hmac-md5&rdquo; algorithm (rfc2403) AALG_SHA1HMAC: The &ldquo;hmac-sha1&rdquo; algorithm (rfc2404)</p>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Encr"></a>TCCIPsec_Encr</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Encr { TCCIPsec_EAlgo algo, TCCIPsec_Key key }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a record for storing the encryption algorithm identifier and key.</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>algo</td>
+<td class=CDLDescription>
+<b>TCCIPsec_EAlgo</b>: Identifier of the encryption algorithm</td></tr>
+<tr>
+<td class=CDLEntry>key</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Key</b>: Key for the algorithm</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Auth"></a>TCCIPsec_Auth</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Auth { TCCIPsec_AAlgo algo, TCCIPsec_Key key }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a record for storing the integrity protection algorithm identifier and key.</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>algo</td>
+<td class=CDLDescription>
+<b>TCCIPsec_AAlgo</b>: Identifier of the integrity protection algorithm</td></tr>
+<tr>
+<td class=CDLEntry>key</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Key</b>: Key for the algorithm</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Auth"></a>TCCIPsec_Auth</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a record for storing the encryption and integrity protection algorithm identifiers and the keys.</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>ealgo</td>
+<td class=CDLDescription>
+<b>TCCIPsec_EAlgo</b>: Identifier of the encryption algorithm</td></tr>
+<tr>
+<td class=CDLEntry>ekey</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Key</b>: Key for the encryption algorithm</td></tr>
+<tr>
+<td class=CDLEntry>aalgo</td>
+<td class=CDLDescription>
+<b>TCCIPsec_AAlgo</b>: Identifier of the integrity protection algorithm</td></tr>
+<tr>
+<td class=CDLEntry>akey</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Key</b>: Key for the integrity protection algorithm</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Algorithm"></a>TCCIPsec_Algorithm</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a union for storing the possible combination of algorithms with its keys.&nbsp; It is used as the <b>TCCIPsec_Algorithm</b> alg parameter of the f_IPsec_SADB_add function.</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>encr</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Encr</b>: encryption algorithm data</td></tr>
+<tr>
+<td class=CDLEntry>auth</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Auth</b> integrity protection algorithm data</td></tr>
+<tr>
+<td class=CDLEntry>encrAndAuth</td>
+<td class=CDLDescription>
+<b>TCCIPsec_EncrAndAuth</b> Key in charstring format</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_TranspProto"></a>TCCIPsec_TranspProto</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_TranspProto { anyTranspProto (0), tcpProto (6), udpProto (17) }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares identifiers for the possible upper layer protocols</p>
+<h4 class=CHeading>Elements</h4>
+<p>anyTranspProto: Either TCP or UDP protocol tcpProto: The TCP protocol udpProto: The UDP protocol</p>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_TranspProto"></a>TCCIPsec_TranspProto</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares identifiers for the possible directions for which a policy is applied.</p>
+<h4 class=CHeading>Elements</h4>
+<p>inDir: incoming packets outDir: outgoing packets fwdDir: forwarded packets</p>
+<h4 class=CHeading>Detailed Comments</h4></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_DiscardRule"></a>TCCIPsec_DiscardRule</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_DiscardRule {}</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares a type to represent the policy rule to discard packets.</p>
+<h4 class=CHeading>Elements</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_NoneRule"></a>TCCIPsec_NoneRule</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_NoneRule {}</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares a type to represent the policy rule to bypass IPsec.</p>
+<h4 class=CHeading>Elements</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Transport"></a>TCCIPsec_Transport</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Transport {}</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares a type to represent the transport IPsec mode - as opposed to tunnel mode</p>
+<h4 class=CHeading>Elements</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Tunnel"></a>TCCIPsec_Tunnel</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Tunnel { charstring srcAddr, integer srcPort, charstring dstAddr, integer dstPort }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares a type to represent the tunnel IPsec mode - as opposed to transport mode</p>
+<h4 class=CHeading>Elements</h4>
+<p>srcAddr: source address srcPort: source port dstAddr: destination address dstPort: destination port</p>
+<p>Detailed Comments: Address and port pairs for the tunnel.&nbsp; Used in SPDB rules.</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Mode"></a>TCCIPsec_Mode</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Mode { TCCIPsec_Transport transport, TCCIPsec_Tunnel tunnel }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares an union for storing to IPsec mode</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>transport</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Transport</b>: identifies the transport IPsec mode</td></tr>
+<tr>
+<td class=CDLEntry>tunnel</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Tunnel</b>: identifies the tunnel IPsec mode</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>IPsec supports transport and tunnel mode.</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_DefaultLevel"></a>TCCIPsec_DefaultLevel</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_DefaultLevel {}</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares a type to represent the policy level indicating that system defaults has to be used.</p>
+<h4 class=CHeading>Elements</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_UseLevel"></a>TCCIPsec_UseLevel</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_UseLevel {}</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares a type to represent the policy level indicating that IPsec should be used if appropriate SA is available.&nbsp; If SA is naot available IPsec is bypassed.</p>
+<h4 class=CHeading>Elements</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_UseLevel"></a>TCCIPsec_UseLevel</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares a type to represent the policy level indicating that IPsec has to be used unconditionally.</p>
+<h4 class=CHeading>Elements</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_UseLevel"></a>TCCIPsec_UseLevel</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares a type to represent the policy level indicating that IPsec has to be used with the SA or SAs indicated by id.</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>id</td>
+<td class=CDLDescription>
+<b>integer</b>: link to SAs</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>An SA is linked to an SP when the SA has a policyId extension with the value of the SP&rsquo;s id.</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_RuleLevel"></a>TCCIPsec_RuleLevel</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_RuleLevel { TCCIPsec_DefaultLevel defaultLevel, TCCIPsec_UseLevel use, TCCIPsec_RequireLevel require, TCCIPsec_UniqueLevel unique }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a union for storing rule level.</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>defaultLevel</td>
+<td class=CDLDescription>
+<b>TCCIPsec_DefaultLevel</b>: The level represnting default</td></tr>
+<tr>
+<td class=CDLEntry>use</td>
+<td class=CDLDescription>
+<b>TCCIPsec_UseLevel</b> The use level</td></tr>
+<tr>
+<td class=CDLEntry>require</td>
+<td class=CDLDescription>
+<b>TCCIPsec_RequireLevel</b> The require level</td></tr>
+<tr>
+<td class=CDLEntry>unique</td>
+<td class=CDLDescription>
+<b>TCCIPsec_UniqueLevel</b> The unique level</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_Rule"></a>TCCIPsec_Rule</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Rule { TCCIPsec_Protocol protocol, TCCIPsec_Mode mode, TCCIPsec_RuleLevel level }</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Declares a record for storing an IPsec rule.</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>protocol</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Protocol</b>: The security protocol to use</td></tr>
+<tr>
+<td class=CDLEntry>mode</td>
+<td class=CDLDescription>
+<b>TCCIPsec_Mode</b>: IPsec mode</td></tr>
+<tr>
+<td class=CDLEntry>level</td>
+<td class=CDLDescription>
+<b>TCCIPsec_RuleLevel</b>: rule level</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_ExtensionList"></a>TCCIPsec_ExtensionList</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a list of IPsec rules</p>
+<h4 class=CHeading>Elements</h4>
+<p>record of <b>TCCIPsec_Rule</b></p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCIPsec_RuleLevel"></a>TCCIPsec_RuleLevel</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Defines a union for storing a policy rule.</p>
+<h4 class=CHeading>Elements</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>discard</td>
+<td class=CDLDescription>
+<b>TCCIPsec_DiscardRule</b>: The discard policy rule</td></tr>
+<tr>
+<td class=CDLEntry>noneRule</td>
+<td class=CDLDescription>
+<b>TCCIPsec_NoneRule</b> The none policy rule</td></tr>
+<tr>
+<td class=CDLEntry>require</td>
+<td class=CDLDescription>
+<b>TCCIPsec_RequireLevel</b> The require level</td></tr>
+<tr>
+<td class=CDLEntry>ipSec</td>
+<td class=CDLDescription>
+<b>TCCIPsec_RuleList</b> A list of IPsec policy rules</td></tr></table>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CConstant>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>const integer c_TCCIPsec_anyPort := 0</td></tr></table></blockquote>Provides port value representing any port</div></div>
+<div class=CToolTip id="tt2">
+<div class=CConstant>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>const integer c_TCCIPsec_prefixAll := -1</td></tr></table></blockquote>Provides port value representing any port</div></div>
+<div class=CToolTip id="tt3">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_IPsecMode { anyMode (0), transport (1), tunnel (2) }</td></tr></table></blockquote>Declares identifiers for the possible security association</div></div>
+<div class=CToolTip id="tt4">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Extension { integer policyId, integer hardLifetime, integer softLifetime }</td></tr></table></blockquote>Defines a union of possible extensions for Security Associations (SAs)</div></div>
+<div class=CToolTip id="tt5">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of TCCIPsec_Extension TCCIPsec_ExtensionList</td></tr></table></blockquote>Defines a list of extensions for the SA adding function</div></div>
+<div class=CToolTip id="tt6">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Key { hexstring hex, charstring text }</td></tr></table></blockquote>Defines a union for storing a key for an SA. </div></div>
+<div class=CToolTip id="tt7">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_EAlgo { EALG_NONE (0), EALG_3DESCBC (3), EALG_NULL(11), EALG_AESCBC (12) }</td></tr></table></blockquote>Declares identifiers for the possible encryption algorithms</div></div>
+<div class=CToolTip id="tt8">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_AAlgo { AALG_NONE (0), AALG_MD5HMAC (2), AALG_SHA1HMAC (3) }</td></tr></table></blockquote>Declares identifiers for the possible integrity protection algorithms</div></div>
+<div class=CToolTip id="tt9">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Encr { TCCIPsec_EAlgo algo, TCCIPsec_Key key }</td></tr></table></blockquote>Defines a record for storing the encryption algorithm identifier and key.</div></div>
+<div class=CToolTip id="tt10">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Auth { TCCIPsec_AAlgo algo, TCCIPsec_Key key }</td></tr></table></blockquote>Defines a record for storing the integrity protection algorithm identifier and key.</div></div>
+<div class=CToolTip id="tt11">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_TranspProto { anyTranspProto (0), tcpProto (6), udpProto (17) }</td></tr></table></blockquote>Declares identifiers for the possible upper layer protocols</div></div>
+<div class=CToolTip id="tt12">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_DiscardRule {}</td></tr></table></blockquote>Declares a type to represent the policy rule to discard packets.</div></div>
+<div class=CToolTip id="tt13">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_NoneRule {}</td></tr></table></blockquote>Declares a type to represent the policy rule to bypass IPsec.</div></div>
+<div class=CToolTip id="tt14">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Transport {}</td></tr></table></blockquote>Declares a type to represent the transport IPsec mode - as opposed to tunnel mode</div></div>
+<div class=CToolTip id="tt15">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Tunnel { charstring srcAddr, integer srcPort, charstring dstAddr, integer dstPort }</td></tr></table></blockquote>Declares a type to represent the tunnel IPsec mode - as opposed to transport mode</div></div>
+<div class=CToolTip id="tt16">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Mode { TCCIPsec_Transport transport, TCCIPsec_Tunnel tunnel }</td></tr></table></blockquote>Declares an union for storing to IPsec mode</div></div>
+<div class=CToolTip id="tt17">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_DefaultLevel {}</td></tr></table></blockquote>Declares a type to represent the policy level indicating that system defaults has to be used.</div></div>
+<div class=CToolTip id="tt18">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_UseLevel {}</td></tr></table></blockquote>Declares a type to represent the policy level indicating that IPsec should be used if appropriate SA is available. </div></div>
+<div class=CToolTip id="tt19">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_RuleLevel { TCCIPsec_DefaultLevel defaultLevel, TCCIPsec_UseLevel use, TCCIPsec_RequireLevel require, TCCIPsec_UniqueLevel unique }</td></tr></table></blockquote>Defines a union for storing rule level.</div></div>
+<div class=CToolTip id="tt20">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Rule { TCCIPsec_Protocol protocol, TCCIPsec_Mode mode, TCCIPsec_RuleLevel level }</td></tr></table></blockquote>Declares a record for storing an IPsec rule.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCIPsec_Functions-ttcn.html b/doc/apidoc/html/files/TCCIPsec_Functions-ttcn.html
new file mode 100644
index 0000000..5abe881
--- /dev/null
+++ b/doc/apidoc/html/files/TCCIPsec_Functions-ttcn.html
@@ -0,0 +1,849 @@
+<html>
+<head>
+<title>TCCIPsec_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCIPsec_Functions"></a>TCCIPsec_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module provides access to the IPsec parameter databases: SADB and SPDB</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCIPsec_Functions" >TCCIPsec_Functions</a></td>
+<td class=SDescription>This module provides access to the IPsec parameter databases: SADB and SPDB</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_IPsec_SADB_add" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_IPsec_SADB_add</a></td>
+<td class=SDescription>Adds a Security Association to the database (SADB)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_IPsec_SADB_delete" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_IPsec_SADB_delete</a></td>
+<td class=SDescription>Deletes a Security Association from the database (SADB)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_IPsec_SADB_flush" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_IPsec_SADB_flush</a></td>
+<td class=SDescription>Deletes all Security Associations from the database (SADB)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_IPsec_SPDB_add" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">f_IPsec_SPDB_add</a></td>
+<td class=SDescription>Adds a Security Policy to the database (SPDB)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_IPsec_SPDB_delete" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_IPsec_SPDB_delete</a></td>
+<td class=SDescription>Deletes a Security Policy from the database (SPD)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_IPsec_SPDB_flush" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_IPsec_SPDB_flush</a></td>
+<td class=SDescription>Deletes all Security Policies from the database (SPD)</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IPsec_SADB_add"></a>f_IPsec_SADB_add</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SADB_add (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Protocol&nbsp;</td>
+<td class=PParameter nowrap>protocol,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>spi,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_ExtensionList&nbsp;</td>
+<td class=PType nowrap>extensionList&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> {},</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Algorithm&nbsp;</td>
+<td class=PParameter nowrap>alg,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in boolean&nbsp;</td>
+<td class=PType nowrap>setparitybit&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> false,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_IPsecMode&nbsp;</td>
+<td class=PType nowrap>ipSecMode&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyMode</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Adds a Security Association to the database (SADB)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>srcAddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - source IP address</td></tr>
+<tr>
+<td class=CDLEntry>dstAddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - destination IP address</td></tr>
+<tr>
+<td class=CDLEntry>protocol</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCIPsec_Definitions-ttcn.html#TCCIPsec_Protocol" class=LType id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">TCCIPsec_Protocol</a> - security protocol (esp or ah)</td></tr>
+<tr>
+<td class=CDLEntry>spi</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - Security Parameter Index</td></tr>
+<tr>
+<td class=CDLEntry>extensionList</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCIPsec_Definitions-ttcn.html#TCCIPsec_ExtensionList" class=LType id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">TCCIPsec_ExtensionList</a> - list of extensions</td></tr>
+<tr>
+<td class=CDLEntry>alg</td>
+<td class=CDLDescription>
+<b>in</b> - <a href="TCCIPsec_Definitions-ttcn.html#TCCIPsec_Algorithm" class=LType id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">TCCIPsec_Algorithm</a> - encryption and integrity algorithms and keys</td></tr>
+<tr>
+<td class=CDLEntry>setparitybit</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>boolean</b> - paritybit</td></tr>
+<tr>
+<td class=CDLEntry>ipSecMode</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCIPsec_Definitions-ttcn.html#TCCIPsec_IPsecMode" class=LType id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">TCCIPsec_IPsecMode</a> - mode transport, tunnel or anymode</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>TCCIPsec_Result</td>
+<td class=CDLDescription>indicates success (ok) or error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IPsec_SADB_delete"></a>f_IPsec_SADB_delete</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_IPsec_SADB_delete (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>srcAddress,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>dstAddress,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Protocol&nbsp;</td>
+<td class=PParameter nowrap width=100%>protocol,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>spi</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Deletes a Security Association from the database (SADB)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>srcAddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - source IP address</td></tr>
+<tr>
+<td class=CDLEntry>dstAddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - destination IP address</td></tr>
+<tr>
+<td class=CDLEntry>protocol</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>TCCIPsec_Protocol</b> - security protocol (esp or ah)</td></tr>
+<tr>
+<td class=CDLEntry>spi</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - Security Parameter Index</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>TCCIPsec_Result</td>
+<td class=CDLDescription>indicates success (ok) or error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IPsec_SADB_flush"></a>f_IPsec_SADB_flush</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_IPsec_SADB_flush () return TCCIPsec_Result</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Deletes all Security Associations from the database (SADB)</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>TCCIPsec_Result</td>
+<td class=CDLDescription>indicates success (ok) or error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IPsec_SPDB_add"></a>f_IPsec_SPDB_add</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SPDB_add (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_TranspProto&nbsp;</td>
+<td class=PType nowrap>transpProto&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyTranspProto,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyDirection&nbsp;</td>
+<td class=PParameter nowrap>dir,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyRule&nbsp;</td>
+<td class=PParameter nowrap>rule</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Adds a Security Policy to the database (SPDB)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>srcAddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - source IP address</td></tr>
+<tr>
+<td class=CDLEntry>srcPrefixLen</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - indicates the source address range</td></tr>
+<tr>
+<td class=CDLEntry>srcPort</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - source port</td></tr>
+<tr>
+<td class=CDLEntry>dstAddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - destination IP address</td></tr>
+<tr>
+<td class=CDLEntry>srcPrefixLen</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - indicates the destination address range</td></tr>
+<tr>
+<td class=CDLEntry>srcPort</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - destination port</td></tr>
+<tr>
+<td class=CDLEntry>transpProto</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>TCCIPsec_TranspProto</b> - transport protocol (TCP or UDP)</td></tr>
+<tr>
+<td class=CDLEntry>dir</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>TCCIPsec_PolicyDirection</b> - Direction of data traffic</td></tr>
+<tr>
+<td class=CDLEntry>rule</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>TCCIPsec_PolicyRule</b> - Rule: how to handle the packet</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>TCCIPsec_Result</td>
+<td class=CDLDescription>indicates success (ok) or error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IPsec_SPDB_delete"></a>f_IPsec_SPDB_delete</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SPDB_delete (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_TranspProto&nbsp;</td>
+<td class=PType nowrap>transpProto&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyTranspProto,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyDirection&nbsp;</td>
+<td class=PParameter nowrap>dir</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Deletes a Security Policy from the database (SPD)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>srcAddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - source IP address</td></tr>
+<tr>
+<td class=CDLEntry>srcPrefixLen</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - indicates the source address range</td></tr>
+<tr>
+<td class=CDLEntry>srcPort</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - source port</td></tr>
+<tr>
+<td class=CDLEntry>dstAddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - destination IP address</td></tr>
+<tr>
+<td class=CDLEntry>srcPrefixLen</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - indicates the destination address range</td></tr>
+<tr>
+<td class=CDLEntry>srcPort</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - destination port</td></tr>
+<tr>
+<td class=CDLEntry>transpProto</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>TCCIPsec_TranspProto</b> - transport protocol (TCP or UDP)</td></tr>
+<tr>
+<td class=CDLEntry>dir</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>TCCIPsec_PolicyDirection</b> - Direction of data traffic</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>TCCIPsec_Result</td>
+<td class=CDLDescription>indicates success (ok) or error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IPsec_SPDB_flush"></a>f_IPsec_SPDB_flush</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_IPsec_SPDB_flush () return TCCIPsec_Result</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Deletes all Security Policies from the database (SPD)</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>TCCIPsec_Result</td>
+<td class=CDLDescription>indicates success (ok) or error</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SADB_add (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Protocol&nbsp;</td>
+<td class=PParameter nowrap>protocol,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>spi,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_ExtensionList&nbsp;</td>
+<td class=PType nowrap>extensionList&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> {},</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Algorithm&nbsp;</td>
+<td class=PParameter nowrap>alg,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in boolean&nbsp;</td>
+<td class=PType nowrap>setparitybit&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> false,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_IPsecMode&nbsp;</td>
+<td class=PType nowrap>ipSecMode&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyMode</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Adds a Security Association to the database (SADB)</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_IPsec_SADB_delete (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>srcAddress,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>dstAddress,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Protocol&nbsp;</td>
+<td class=PParameter nowrap width=100%>protocol,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>spi</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Deletes a Security Association from the database (SADB)</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_IPsec_SADB_flush () return TCCIPsec_Result</td></tr></table></blockquote>Deletes all Security Associations from the database (SADB)</div></div>
+<div class=CToolTip id="tt4">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SPDB_add (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_TranspProto&nbsp;</td>
+<td class=PType nowrap>transpProto&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyTranspProto,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyDirection&nbsp;</td>
+<td class=PParameter nowrap>dir,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyRule&nbsp;</td>
+<td class=PParameter nowrap>rule</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Adds a Security Policy to the database (SPDB)</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SPDB_delete (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_TranspProto&nbsp;</td>
+<td class=PType nowrap>transpProto&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyTranspProto,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyDirection&nbsp;</td>
+<td class=PParameter nowrap>dir</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Deletes a Security Policy from the database (SPD)</div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_IPsec_SPDB_flush () return TCCIPsec_Result</td></tr></table></blockquote>Deletes all Security Policies from the database (SPD)</div></div>
+<div class=CToolTip id="tt7">
+<div class=CType>Declares identifiers for the possible security protocols</div></div>
+<div class=CToolTip id="tt8">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of TCCIPsec_Extension TCCIPsec_ExtensionList</td></tr></table></blockquote>Defines a list of extensions for the SA adding function</div></div>
+<div class=CToolTip id="tt9">
+<div class=CType>Defines a union for storing the possible combination of algorithms with its keys. </div></div>
+<div class=CToolTip id="tt10">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_IPsecMode { anyMode (0), transport (1), tunnel (2) }</td></tr></table></blockquote>Declares identifiers for the possible security association</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCInterface-cc.html b/doc/apidoc/html/files/TCCInterface-cc.html
new file mode 100644
index 0000000..68fa718
--- /dev/null
+++ b/doc/apidoc/html/files/TCCInterface-cc.html
@@ -0,0 +1,382 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCInterface.cc - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCInterface.cc"></a>TCCInterface.cc</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCInterface.cc" >TCCInterface.cc</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__setIP" >f__setIP</a></td>
+<td class=SDescription>Set IP address, subnet mask and broadcast address in a network inteface If number is set, a range of virtual interfaces are set up with continuous IP address (no subnet mask, broadcast checking)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__deleteIP" >f__deleteIP</a></td>
+<td class=SDescription>Delete IP address from a network inteface</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__getIP" >f__getIP</a></td>
+<td class=SDescription>Get IP address, subnet mask and broadcast address from a network inteface</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__setInterfaceUp" >f__setInterfaceUp</a></td>
+<td class=SDescription>Set up a network interface</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__setInterfaceDown" >f__setInterfaceDown</a></td>
+<td class=SDescription>Set down a network interface</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__getHostName" >f__getHostName</a></td>
+<td class=SDescription>Get name of host</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__getIpAddr" >f__getIpAddr</a></td>
+<td class=SDescription>Get IP address of host</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_setIP_ip" >f_setIP_ip</a></td>
+<td class=SDescription>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_delIP_ip" >f_delIP_ip</a></td>
+<td class=SDescription>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_getIpAddresses" >f_getIpAddresses</a></td>
+<td class=SDescription>Get both IPv4 and IPv6 addresses of the given host</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__setIP"></a>f__setIP</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Set IP address, subnet mask and broadcast address in a network inteface If number is set, a range of virtual interfaces are set up with continuous IP address (no subnet mask, broadcast checking)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>ipaddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - starting IP address</td></tr>
+<tr>
+<td class=CDLEntry>subnetmask</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - subnetmask</td></tr>
+<tr>
+<td class=CDLEntry>broadcast</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - broadcast</td></tr>
+<tr>
+<td class=CDLEntry>number</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - number of interfaces to set up</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__deleteIP"></a>f__deleteIP</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Delete IP address from a network inteface</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__getIP"></a>f__getIP</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Get IP address, subnet mask and broadcast address from a network inteface</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>ip</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> - IP address</td></tr>
+<tr>
+<td class=CDLEntry>netmask</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> - netmask</td></tr>
+<tr>
+<td class=CDLEntry>broadcast</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> - broadcast</td></tr>
+<tr>
+<td class=CDLEntry>addressType</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCInterface_Functions-ttcn.html#TCCInterface_IPAddressType" class=LType id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">TCCInterface_IPAddressType</a> - type of IP addresses (default is IPv4)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__setInterfaceUp"></a>f__setInterfaceUp</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Set up a network interface</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>addressType</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCInterface_Functions-ttcn.html#TCCInterface_IPAddressType" class=LType id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">TCCInterface_IPAddressType</a> - type of IP addresses (default is IPv4)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__setInterfaceDown"></a>f__setInterfaceDown</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Set down a network interface</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>addressType</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCInterface_Functions-ttcn.html#TCCInterface_IPAddressType" class=LType id=link3 onMouseOver="ShowTip(event, 'tt1', 'link3')" onMouseOut="HideTip('tt1')">TCCInterface_IPAddressType</a> - type of IP addresses (default is IPv4)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__getHostName"></a>f__getHostName</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Get name of host</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>name of the host</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__getIpAddr"></a>f__getIpAddr</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Get IP address of host</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>hostname</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the host</td></tr>
+<tr>
+<td class=CDLEntry>addressType</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCInterface_Functions-ttcn.html#TCCInterface_IPAddressType" class=LType id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">TCCInterface_IPAddressType</a> - type of IP addresses (default is IPv4)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>IP address of the host</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_setIP_ip"></a>f_setIP_ip</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>ipaddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - starting IP address</td></tr>
+<tr>
+<td class=CDLEntry>prefix</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - subnetmask of the ipaddress</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>True on success, false in other cases.</p>
+<h4 class=CHeading>Errors</h4>
+<p>Many possibilities, all generates a TTCN_warning</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_delIP_ip"></a>f_delIP_ip</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>ipaddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - starting IP address</td></tr>
+<tr>
+<td class=CDLEntry>prefix</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - subnetmask of the ipaddress</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>True on success, false in other cases.</p>
+<h4 class=CHeading>Errors</h4>
+<p>Many possibilities, all generates a TTCN_warning</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_getIpAddresses"></a>f_getIpAddresses</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Get both IPv4 and IPv6 addresses of the given host</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>hostname</td>
+<td class=CDLDescription>
+<b>charstring</b> - the hostname</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>Initialized IPAddress structure</p>
+<h4 class=CHeading>Errors</h4>
+<p>Many possibilities, all generates a TTCN_warning</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CType>An enum type for setting the type of IP addresses. </div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCInterface_Functions-ttcn.html b/doc/apidoc/html/files/TCCInterface_Functions-ttcn.html
new file mode 100644
index 0000000..99da293
--- /dev/null
+++ b/doc/apidoc/html/files/TCCInterface_Functions-ttcn.html
@@ -0,0 +1,911 @@
+<html>
+<head>
+<title>TCCInterface_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCInterface_Functions"></a>TCCInterface_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports network related operations</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCInterface_Functions" >TCCInterface_Functions</a></td>
+<td class=SDescription>This module supports network related operations</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Enumerations" >Enumerations</a></td>
+<td class=SDescription></td></tr>
+<tr class="SEnumeration SIndent1 SMarked">
+<td class=SEntry>
+<a href="#TCCInterface_IPAddressType" >TCCInterface_IPAddressType</a></td>
+<td class=SDescription>An enum type for setting the type of IP addresses. </td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_setIP" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_setIP</a></td>
+<td class=SDescription>Set IP address, subnet mask and broadcast address in a network inteface If number is set, a range of virtual interfaces are set up with continuous IP address (no subnet mask, broadcast checking)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_setIP_ip" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_setIP_ip</a></td>
+<td class=SDescription>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_delIP_ip" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_delIP_ip</a></td>
+<td class=SDescription>Deletes IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_deleteIP" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">f_deleteIP</a></td>
+<td class=SDescription>Delete IP address from a network inteface</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_getIP" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_getIP</a></td>
+<td class=SDescription>Get IP address, subnet mask and broadcast address from a network inteface</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_setInterfaceUp" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_setInterfaceUp</a></td>
+<td class=SDescription>Set up a network interface</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_setInterfaceDown" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">f_setInterfaceDown</a></td>
+<td class=SDescription>Set down a network interface</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_getHostName" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">f_getHostName</a></td>
+<td class=SDescription>Get name of host</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_getIpAddr" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">f_getIpAddr</a></td>
+<td class=SDescription>Get IP address of host</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_getIpAddresses" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">f_getIpAddresses</a></td>
+<td class=SDescription>Get both IPv4 and IPv6 addresses of host.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Enumerations"></a>Enumerations</h3></div></div>
+
+<div class="CEnumeration">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="TCCInterface_IPAddressType"></a>TCCInterface_IPAddressType</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>An enum type for setting the type of IP addresses.&nbsp; Possible values: IPv4 - for IPv4 type addresses IPv6 - for IPv6 type addresses etc</p></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_setIP"></a>f_setIP</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_setIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ipaddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>subnetmask,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>broadcast,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>number&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 1</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Set IP address, subnet mask and broadcast address in a network inteface If number is set, a range of virtual interfaces are set up with continuous IP address (no subnet mask, broadcast checking)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>ipaddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - starting IP address</td></tr>
+<tr>
+<td class=CDLEntry>subnetmask</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - subnetmask</td></tr>
+<tr>
+<td class=CDLEntry>broadcast</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - broadcast</td></tr>
+<tr>
+<td class=CDLEntry>number</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - number of interfaces to set up</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_setIP_ip"></a>f_setIP_ip</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_setIP_ip(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ipaddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>prefix&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 32,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>v_set&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 1</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>ipaddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - starting IP address</td></tr>
+<tr>
+<td class=CDLEntry>prefix</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - subnetmask of the ipaddress</td></tr>
+<tr>
+<td class=CDLEntry>v_set</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - Determines behavior, 1 sets, other deletes the IP</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>True on success, false in other cases.</p>
+<h4 class=CHeading>Errors</h4>
+<p>Many possibilities, all generates a TTCN_warning</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_delIP_ip"></a>f_delIP_ip</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_delIP_ip(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ipaddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>prefix&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 32</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Deletes IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>ipaddress</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - starting IP address</td></tr>
+<tr>
+<td class=CDLEntry>prefix</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - subnetmask of the ipaddress</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>True on success, false in other cases.</p>
+<h4 class=CHeading>Errors</h4>
+<p>Many possibilities, all generates a TTCN_warning</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_deleteIP"></a>f_deleteIP</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_deleteIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Delete IP address from a network inteface</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_getIP"></a>f_getIP</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ip,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>netmask,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>broadcast,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Get IP address, subnet mask and broadcast address from a network inteface</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>ip</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> - IP address</td></tr>
+<tr>
+<td class=CDLEntry>netmask</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> - netmask</td></tr>
+<tr>
+<td class=CDLEntry>broadcast</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> - broadcast</td></tr>
+<tr>
+<td class=CDLEntry>addressType</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="#TCCInterface_IPAddressType" class=LType id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">TCCInterface_IPAddressType</a> - type of IP addresses (default is IPv4)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_setInterfaceUp"></a>f_setInterfaceUp</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_setInterfaceUp(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>)</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Set up a network interface</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>addressType</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="#TCCInterface_IPAddressType" class=LType id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">TCCInterface_IPAddressType</a> - type of IP addresses (default is IPv4)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_setInterfaceDown"></a>f_setInterfaceDown</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_setInterfaceDown(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>)</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Set down a network interface</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>interface</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - network interface</td></tr>
+<tr>
+<td class=CDLEntry>addressType</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="#TCCInterface_IPAddressType" class=LType id=link13 onMouseOver="ShowTip(event, 'tt11', 'link13')" onMouseOut="HideTip('tt11')">TCCInterface_IPAddressType</a> - type of IP addresses (default is IPv4)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_getHostName"></a>f_getHostName</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_getHostName() return charstring</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Get name of host</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>name of the host</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_getIpAddr"></a>f_getIpAddr</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_getIpAddr(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>hostname,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Get IP address of host</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>hostname</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the host</td></tr>
+<tr>
+<td class=CDLEntry>addressType</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="#TCCInterface_IPAddressType" class=LType id=link14 onMouseOver="ShowTip(event, 'tt11', 'link14')" onMouseOut="HideTip('tt11')">TCCInterface_IPAddressType</a> - type of IP addresses (default is IPv4)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>IP address of the host</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_getIpAddresses"></a>f_getIpAddresses</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getIpAddresses(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>hostname</td>
+<td class=PAfterParameters nowrap>) return IPAddresses</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Get both IPv4 and IPv6 addresses of host.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>hostname</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the host</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>Initialized IPAddresses structure</p>
+<h4 class=CHeading>Errors</h4>
+<p>Drops TTCN_Warnings on fault</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_setIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ipaddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>subnetmask,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>broadcast,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>number&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 1</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set IP address, subnet mask and broadcast address in a network inteface If number is set, a range of virtual interfaces are set up with continuous IP address (no subnet mask, broadcast checking)</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_setIP_ip(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ipaddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>prefix&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 32,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>v_set&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 1</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_delIP_ip(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ipaddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>prefix&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 32</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Deletes IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</div></div>
+<div class=CToolTip id="tt4">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_deleteIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Delete IP address from a network inteface</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ip,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>netmask,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>broadcast,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get IP address, subnet mask and broadcast address from a network inteface</div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_setInterfaceUp(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>)</td></tr></table></td></tr></table></blockquote>Set up a network interface</div></div>
+<div class=CToolTip id="tt7">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_setInterfaceDown(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>)</td></tr></table></td></tr></table></blockquote>Set down a network interface</div></div>
+<div class=CToolTip id="tt8">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_getHostName() return charstring</td></tr></table></blockquote>Get name of host</div></div>
+<div class=CToolTip id="tt9">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_getIpAddr(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>hostname,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return charstring</td></tr></table></td></tr></table></blockquote>Get IP address of host</div></div>
+<div class=CToolTip id="tt10">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getIpAddresses(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>hostname</td>
+<td class=PAfterParameters nowrap>) return IPAddresses</td></tr></table></td></tr></table></blockquote>Get both IPv4 and IPv6 addresses of host.</div></div>
+<div class=CToolTip id="tt11">
+<div class=CType>An enum type for setting the type of IP addresses. </div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCMaths-cc.html b/doc/apidoc/html/files/TCCMaths-cc.html
new file mode 100644
index 0000000..790902f
--- /dev/null
+++ b/doc/apidoc/html/files/TCCMaths-cc.html
@@ -0,0 +1,999 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCMaths.cc - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCMaths.cc"></a>TCCMaths.cc</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCMaths.cc" >TCCMaths.cc</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__maxIL" >f__maxIL</a></td>
+<td class=SDescription>Return an IntegerList with the highest number found at index 0 and the index of ilist where it&rsquo;s found at index 1</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__minIL" >f__minIL</a></td>
+<td class=SDescription>Return an IntegerList with the lowest number found at index 0 and the index of ilist where it&rsquo;s fond at index 1</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__maxFL" >f__maxFL</a></td>
+<td class=SDescription>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__minFL" >f__minFL</a></td>
+<td class=SDescription>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__averageFL" >f__averageFL</a></td>
+<td class=SDescription>Return the average of flist</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__averageIL" >f__averageIL</a></td>
+<td class=SDescription>Return the average of ilist</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__stdFL" >f__stdFL</a></td>
+<td class=SDescription>Return the normalized standard deviation of float list (so the average square distance from the center of elements in the list)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__stdFLL" >f__stdFLL</a></td>
+<td class=SDescription>Return the normalized standard deviation of float list  using custom center (so it is the average square distance from a user defined central value)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__updateFL" >f__updateFL</a></td>
+<td class=SDescription>Append tail to the end of head (head return as inout)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__updateIL" >f__updateIL</a></td>
+<td class=SDescription>Append tail to the end of head (head return as inout)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__stdIL" >f__stdIL</a></td>
+<td class=SDescription>Return the normalized standard deviation of integer list (so the average square distance from the center of points)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__stdILL" >f__stdILL</a></td>
+<td class=SDescription>Return the normalized standard deviation of integer list using custom center (so it is the average square distance from a user defined central value)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__sinVL" >f__sinVL</a></td>
+<td class=SDescription>Return the values of the sin function</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__cosVL" >f__cosVL</a></td>
+<td class=SDescription>Return the values of the cos function</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__sin" >f__sin</a></td>
+<td class=SDescription>Return the sine of angle radians</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__cos" >f__cos</a></td>
+<td class=SDescription>Return the cosine of angle radians</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__asin" >f__asin</a></td>
+<td class=SDescription>Return the arc sine of value in [-pi/2, +pi/2]</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__acos" >f__acos</a></td>
+<td class=SDescription>Return the arc cosine of value in [0, pi]</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__powFF" >f__powFF</a></td>
+<td class=SDescription>Raise to power (float to float power)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__powII" >f__powII</a></td>
+<td class=SDescription>Raise to power (integer to integer power)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__powIF" >f__powIF</a></td>
+<td class=SDescription>Raise to power (integer to float power)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__powFI" >f__powFI</a></td>
+<td class=SDescription>Raise to power (float to integer power)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__sqrF" >f__sqrF</a></td>
+<td class=SDescription>Raise a float value to square</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__sqrI" >f__sqrI</a></td>
+<td class=SDescription>Raise an integer value to square</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__sqrtF" >f__sqrtF</a></td>
+<td class=SDescription>Square root of float value</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__sqrtI" >f__sqrtI</a></td>
+<td class=SDescription>Square root of integer value</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__ceil" >f__ceil</a></td>
+<td class=SDescription>Return the smallest integer value that is not less then value</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__floor" >f__floor</a></td>
+<td class=SDescription>Return the largest integer value that is not greater then value</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__exp" >f__exp</a></td>
+<td class=SDescription>Return the exponential value of the argument</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__log" >f__log</a></td>
+<td class=SDescription>Return the natural logarithm of the argument</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__maxIL"></a>f__maxIL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return an IntegerList with the highest number found at index 0 and the index of ilist where it&rsquo;s found at index 1</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">IntegerList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;IntegerList&gt;</td>
+<td class=CDLDescription>integer array: { &lt;max&gt;, &lt;max index&gt; }</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__minIL"></a>f__minIL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return an IntegerList with the lowest number found at index 0 and the index of ilist where it&rsquo;s fond at index 1</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">IntegerList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;IntegerList&gt;</td>
+<td class=CDLDescription>integer array: { &lt;min&gt;, &lt;min index&gt; }</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__maxFL"></a>f__maxFL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2')">FloatList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;FloatList&gt;</td>
+<td class=CDLDescription>float array: { &lt;max&gt;, &lt;max index&gt; }</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__minFL"></a>f__minFL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link4 onMouseOver="ShowTip(event, 'tt2', 'link4')" onMouseOut="HideTip('tt2')">FloatList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;FloatList&gt;</td>
+<td class=CDLDescription>float array: { &lt;min&gt;, &lt;min index&gt; }</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__averageFL"></a>f__averageFL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the average of flist</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link5 onMouseOver="ShowTip(event, 'tt2', 'link5')" onMouseOut="HideTip('tt2')">FloatList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>average of float numbers</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__averageIL"></a>f__averageIL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the average of ilist</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1')">IntegerList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>average of integer numbers</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__stdFL"></a>f__stdFL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the normalized standard deviation of float list (so the average square distance from the center of elements in the list)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link7 onMouseOver="ShowTip(event, 'tt2', 'link7')" onMouseOut="HideTip('tt2')">FloatList</a> - float list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>normalized, standard derivate</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>E.g.&nbsp;  list = {2.0, 4.0}</p>
+<p>u = (2.0 + 4.0) / 2 &lt;- <b>center of elements in the list</b></p>
+<p>len = sizeof(list)</p>
+<p>[ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__stdFLL"></a>f__stdFLL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the normalized standard deviation of float list  using custom center (so it is the average square distance from a user defined central value)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>u</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - user defined central value</td></tr>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link8 onMouseOver="ShowTip(event, 'tt2', 'link8')" onMouseOut="HideTip('tt2')">FloatList</a> - float list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>normalized, standard derivate</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Note: u is the average value of flist and has to be calculated before a call to this function</p>
+<p>E.g.&nbsp;  list = {2.0, 4.0}</p>
+<p>u &lt;- <b>user input</b></p>
+<p>len = sizeof(list)</p>
+<p>[ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__updateFL"></a>f__updateFL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Append tail to the end of head (head return as inout)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>head</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link9 onMouseOver="ShowTip(event, 'tt2', 'link9')" onMouseOut="HideTip('tt2')">FloatList</a> - first part of the float list</td></tr>
+<tr>
+<td class=CDLEntry>tail</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link10 onMouseOver="ShowTip(event, 'tt2', 'link10')" onMouseOut="HideTip('tt2')">FloatList</a> - second part of the float list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__updateIL"></a>f__updateIL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Append tail to the end of head (head return as inout)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>head</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link11 onMouseOver="ShowTip(event, 'tt1', 'link11')" onMouseOut="HideTip('tt1')">IntegerList</a> - first part of the integer list</td></tr>
+<tr>
+<td class=CDLEntry>tail</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link12 onMouseOver="ShowTip(event, 'tt1', 'link12')" onMouseOut="HideTip('tt1')">IntegerList</a> - second part of the integer list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__stdIL"></a>f__stdIL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the normalized standard deviation of integer list (so the average square distance from the center of points)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link13 onMouseOver="ShowTip(event, 'tt1', 'link13')" onMouseOut="HideTip('tt1')">IntegerList</a> - integer list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>normalized, standard derivate</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>E.g.&nbsp;  list = {2.0, 4.0}</p>
+<p>u = (2.0 + 4.0) / 2 &lt;- <b>center of elements in the list</b></p>
+<p>len = sizeof(list)</p>
+<p>[ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__stdILL"></a>f__stdILL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the normalized standard deviation of integer list using custom center (so it is the average square distance from a user defined central value)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>u</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - user defined central value</td></tr>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMouseOut="HideTip('tt1')">IntegerList</a> - integer list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>normalized, standard derivate</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Note: u is a user defined value</p>
+<p>E.g.&nbsp;  list = {2.0, 4.0}</p>
+<p>u &lt;- <b>user input</b></p>
+<p>len = sizeof(list)</p>
+<p>[ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__sinVL"></a>f__sinVL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the values of the sin function</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>freq</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the frequency of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>altitude</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the altitude of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>start_val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the starting value passed to the sine function</td></tr>
+<tr>
+<td class=CDLEntry>len</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - the wanted number of points of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>step</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the length between the points on the sine curve</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;FloatList&gt;</td>
+<td class=CDLDescription>the wanted points in a float list</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Generation of one sin value:</p>
+<p>altitude * sin(2 * pi * freq * start_val)</p>
+<p>start_val := start_val + step</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__cosVL"></a>f__cosVL</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the values of the cos function</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>freq</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the frequency of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>altitude</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the altitude of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>start_val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the starting value passed to the sine function</td></tr>
+<tr>
+<td class=CDLEntry>len</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - the wanted number of points of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>step</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the length between the points on the sine curve</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;FloatList&gt;</td>
+<td class=CDLDescription>the wanted points in a float list</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Generation of one cos value:</p>
+<p>altitude * cos(2 * pi * freq * start_val)</p>
+<p>start_val := start_val + step</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__sin"></a>f__sin</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the sine of angle radians</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>angle</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - angle in radians</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>the sine value of angle radians</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__cos"></a>f__cos</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the cosine of angle radians</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>angle</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - angle in radians</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>the cosine value of angle radians</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__asin"></a>f__asin</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the arc sine of value in [-pi/2, +pi/2]</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>the arc sine value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__acos"></a>f__acos</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the arc cosine of value in [0, pi]</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>the arc cosine value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__powFF"></a>f__powFF</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise to power (float to float power)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - base value</td></tr>
+<tr>
+<td class=CDLEntry>expo</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - exponent value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>base raised to power expo</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__powII"></a>f__powII</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise to power (integer to integer power)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - base value</td></tr>
+<tr>
+<td class=CDLEntry>expo</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - exponent value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>base raised to power expo</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__powIF"></a>f__powIF</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise to power (integer to float power)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - base value</td></tr>
+<tr>
+<td class=CDLEntry>expo</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - exponent value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>base raised to power expo</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__powFI"></a>f__powFI</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise to power (float to integer power)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - base value</td></tr>
+<tr>
+<td class=CDLEntry>expo</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - exponent value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>base raised to power expo</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__sqrF"></a>f__sqrF</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise a float value to square</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - base value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>square of base</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__sqrI"></a>f__sqrI</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise an integer value to square</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - base value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>square of base</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__sqrtF"></a>f__sqrtF</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Square root of float value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - base value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>square root of base</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__sqrtI"></a>f__sqrtI</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Square root of integer value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - base value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>square root of base</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__ceil"></a>f__ceil</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the smallest integer value that is not less then value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - float value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>ceil value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__floor"></a>f__floor</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the largest integer value that is not greater then value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - float value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>floor value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__exp"></a>f__exp</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the exponential value of the argument</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - float value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>exp value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__log"></a>f__log</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the natural logarithm of the argument</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - float value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>ln value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of integer IntegerList</td></tr></table></blockquote>List of integer</div></div>
+<div class=CToolTip id="tt2">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of float FloatList</td></tr></table></blockquote>List of float</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCMaths_Functions-ttcn.html b/doc/apidoc/html/files/TCCMaths_Functions-ttcn.html
new file mode 100644
index 0000000..88af206
--- /dev/null
+++ b/doc/apidoc/html/files/TCCMaths_Functions-ttcn.html
@@ -0,0 +1,2094 @@
+<html>
+<head>
+<title>TCCMaths_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCMaths_Functions"></a>TCCMaths_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports mathematics</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>
+<a href="TCCMaths_GenericTypes-ttcn.html#TCCMaths_GenericTypes" class=LFile id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')">TCCMaths_GenericTypes</a></p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCMaths_Functions" >TCCMaths_Functions</a></td>
+<td class=SDescription>This module supports mathematics</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_maxIL" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_maxIL</a></td>
+<td class=SDescription>Return an IntegerList with the highest number found at index 0 and the index of ilist where it&rsquo;s found at index 1</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_maxFL" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_maxFL</a></td>
+<td class=SDescription>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_minIL" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_minIL</a></td>
+<td class=SDescription>Return an IntegerList with the lowest number found at index 0 and the index of ilist where it&rsquo;s fond at index 1</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_minFL" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">f_minFL</a></td>
+<td class=SDescription>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_averageFL" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_averageFL</a></td>
+<td class=SDescription>Return the average of flist</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_averageIL" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_averageIL</a></td>
+<td class=SDescription>Return the average of ilist</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_updateFL" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">f_updateFL</a></td>
+<td class=SDescription>Append tail to the end of head (head return as inout)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_updateIL" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">f_updateIL</a></td>
+<td class=SDescription>Append tail to the end of head (head return as inout)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_stdFL" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">f_stdFL</a></td>
+<td class=SDescription>Return the normalized standard devILtion of float list (so the average square distance from the center of elements in the list)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_stdFLL" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">f_stdFLL</a></td>
+<td class=SDescription>Return the normalized standard devILtion of float list  using custom center (so it is the average square distance from a user defined central value)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_stdIL" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">f_stdIL</a></td>
+<td class=SDescription>Return the normalized standard devILtion of integer list (so the average square distance from the center of points)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_stdILL" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">f_stdILL</a></td>
+<td class=SDescription>Return the normalized standard devILtion of integer list using custom center (so it is the average square distance from a user defined central value)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_sinVL" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">f_sinVL</a></td>
+<td class=SDescription>Return the values of the sine function</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_cosVL" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">f_cosVL</a></td>
+<td class=SDescription>Return the values of the cosine function</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_sin" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">f_sin</a></td>
+<td class=SDescription>Return the sine of angle radILns</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_cos" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">f_cos</a></td>
+<td class=SDescription>Return the cosine of angle radILns</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_asin" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">f_asin</a></td>
+<td class=SDescription>Return the arc sine of value in [-pi/2, +pi/2]</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_acos" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">f_acos</a></td>
+<td class=SDescription>Return the arc cosine of value in [0, pi]</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_powFF" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">f_powFF</a></td>
+<td class=SDescription>Raise to power (float to float power)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_powII" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">f_powII</a></td>
+<td class=SDescription>Raise to power (integer to integer power)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_powIF" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">f_powIF</a></td>
+<td class=SDescription>Raise to power (integer to float power)</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_powFI" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">f_powFI</a></td>
+<td class=SDescription>Raise to power (float to integer power)</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_sqrF" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">f_sqrF</a></td>
+<td class=SDescription>Raise a float value to square</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_sqrI" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">f_sqrI</a></td>
+<td class=SDescription>Raise an integer value to square</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_sqrtF" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">f_sqrtF</a></td>
+<td class=SDescription>Square root of float value</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_sqrtI" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">f_sqrtI</a></td>
+<td class=SDescription>Square root of integer value</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_ceil" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">f_ceil</a></td>
+<td class=SDescription>Return the smallest integer value that is not less then value</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_floor" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">f_floor</a></td>
+<td class=SDescription>Return the largest integer value that is not greater then value</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_exp" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">f_exp</a></td>
+<td class=SDescription>Return the exponential value of the argument</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_log" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">f_log</a></td>
+<td class=SDescription>Return the natural logarithm of the argument</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_generate_poissonTable" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">f_generate_poissonTable</a></td>
+<td class=SDescription>Returns with an initialized poisson table which is a cumulative probability distribution list for a given lambda.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_getNext_poissonValue" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">f_getNext_poissonValue</a></td>
+<td class=SDescription>Returns with a random poisson value by the given poisson table and lambda poisson variance.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_gen_Exponential_Distribution(in_float_p_lambda)return_float" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">f_gen_Exponential_Distribution(in float p_lambda) return float</a></td>
+<td class=SDescription>Returns with the exponential random variable for a given lambda</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_maxIL"></a>f_maxIL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_maxIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return IntegerList</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return an IntegerList with the highest number found at index 0 and the index of ilist where it&rsquo;s found at index 1</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')">IntegerList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;IntegerList&gt;</td>
+<td class=CDLDescription>integer array: { &lt;max&gt;, &lt;max index&gt; }</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_maxFL"></a>f_maxFL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_maxFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')">FloatList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;FloatList&gt;</td>
+<td class=CDLDescription>float array: { &lt;max&gt;, &lt;max index&gt; }</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_minIL"></a>f_minIL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_minIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return IntegerList</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return an IntegerList with the lowest number found at index 0 and the index of ilist where it&rsquo;s fond at index 1</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link37 onMouseOver="ShowTip(event, 'tt35', 'link37')" onMouseOut="HideTip('tt35')">IntegerList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;IntegerList&gt;</td>
+<td class=CDLDescription>integer array: { &lt;min&gt;, &lt;min index&gt; }</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_minFL"></a>f_minFL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_minFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link38 onMouseOver="ShowTip(event, 'tt36', 'link38')" onMouseOut="HideTip('tt36')">FloatList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;FloatList&gt;</td>
+<td class=CDLDescription>float array: { &lt;min&gt;, &lt;min index&gt; }</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_averageFL"></a>f_averageFL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_averageFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the average of flist</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link39 onMouseOver="ShowTip(event, 'tt36', 'link39')" onMouseOut="HideTip('tt36')">FloatList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>average of float numbers</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_averageIL"></a>f_averageIL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_averageIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the average of ilist</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link40 onMouseOver="ShowTip(event, 'tt35', 'link40')" onMouseOut="HideTip('tt35')">IntegerList</a> - integer array</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>average of integer numbers</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_updateFL"></a>f_updateFL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_updateFL(</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>head,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>tail</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Append tail to the end of head (head return as inout)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>head</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link41 onMouseOver="ShowTip(event, 'tt36', 'link41')" onMouseOut="HideTip('tt36')">FloatList</a> - first part of the float list</td></tr>
+<tr>
+<td class=CDLEntry>tail</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link42 onMouseOver="ShowTip(event, 'tt36', 'link42')" onMouseOut="HideTip('tt36')">FloatList</a> - second part of the float list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_updateIL"></a>f_updateIL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_updateIL(</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>head,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>tail</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Append tail to the end of head (head return as inout)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>head</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link43 onMouseOver="ShowTip(event, 'tt35', 'link43')" onMouseOut="HideTip('tt35')">IntegerList</a> - first part of the integer list</td></tr>
+<tr>
+<td class=CDLEntry>tail</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link44 onMouseOver="ShowTip(event, 'tt35', 'link44')" onMouseOut="HideTip('tt35')">IntegerList</a> - second part of the integer list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_stdFL"></a>f_stdFL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the normalized standard devILtion of float list (so the average square distance from the center of elements in the list)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link45 onMouseOver="ShowTip(event, 'tt36', 'link45')" onMouseOut="HideTip('tt36')">FloatList</a> - float list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>normalized, standard derivate</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>E.g.&nbsp;  list = {2.0, 4.0}</p>
+<p>u = (2.0 + 4.0) / 2 &lt;- <b>center of elements in the list</b></p>
+<p>len = sizeof(list)</p>
+<p>[ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_stdFLL"></a>f_stdFLL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdFLL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>u</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the normalized standard devILtion of float list  using custom center (so it is the average square distance from a user defined central value)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>u</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - user defined central value</td></tr>
+<tr>
+<td class=CDLEntry>flist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#FloatList" class=LType id=link46 onMouseOver="ShowTip(event, 'tt36', 'link46')" onMouseOut="HideTip('tt36')">FloatList</a> - float list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>normalized, standard derivate</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Note: u is the average value of flist and has to be calculated before a call to this function</p>
+<p>E.g.&nbsp;  list = {2.0, 4.0}</p>
+<p>u &lt;- <b>user input</b></p>
+<p>len = sizeof(list)</p>
+<p>[ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_stdIL"></a>f_stdIL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the normalized standard devILtion of integer list (so the average square distance from the center of points)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link47 onMouseOver="ShowTip(event, 'tt35', 'link47')" onMouseOut="HideTip('tt35')">IntegerList</a> - integer list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>normalized, standard derivate</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>E.g.&nbsp;  list = {2.0, 4.0}</p>
+<p>u = (2.0 + 4.0) / 2 &lt;- <b>center of elements in the list</b></p>
+<p>len = sizeof(list)</p>
+<p>[ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_stdILL"></a>f_stdILL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdILL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>u</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the normalized standard devILtion of integer list using custom center (so it is the average square distance from a user defined central value)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>u</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - user defined central value</td></tr>
+<tr>
+<td class=CDLEntry>ilist</td>
+<td class=CDLDescription>
+<b>in</b>
+<a href="TCCMaths_GenericTypes-ttcn.html#IntegerList" class=LType id=link48 onMouseOver="ShowTip(event, 'tt35', 'link48')" onMouseOut="HideTip('tt35')">IntegerList</a> - integer list</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>normalized, standard derivate</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Note: u is a user defined value</p>
+<p>E.g.&nbsp;  list = {2.0, 4.0}</p>
+<p>u &lt;- <b>user input</b></p>
+<p>len = sizeof(list)</p>
+<p>[ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_sinVL"></a>f_sinVL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sinVL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>freq,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>altitude,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>start_val,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>len,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>step</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the values of the sine function</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>freq</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the frequency of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>altitude</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the altitude of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>start_val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the starting value passed to the sine function</td></tr>
+<tr>
+<td class=CDLEntry>len</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - the wanted number of points of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>step</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the length between the points on the sine curve</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;FloatList&gt;</td>
+<td class=CDLDescription>the wanted points in a float list</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Generation of one sin value:</p>
+<p>altitude * sin(2 * pi * freq * start_val)</p>
+<p>start_val := start_val + step</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_cosVL"></a>f_cosVL</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_cosVL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>freq,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>altitude,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>start_val,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>len,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>step</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the values of the cosine function</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>freq</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the frequency of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>altitude</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the altitude of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>start_val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the starting value passed to the sine function</td></tr>
+<tr>
+<td class=CDLEntry>len</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - the wanted number of points of the sine curve</td></tr>
+<tr>
+<td class=CDLEntry>step</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the length between the points on the sine curve</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>&lt;FloatList&gt;</td>
+<td class=CDLDescription>the wanted points in a float list</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Generation of one cos value:</p>
+<p>altitude * cos(2 * pi * freq * start_val)</p>
+<p>start_val := start_val + step</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_sin"></a>f_sin</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sin(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>angle</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the sine of angle radILns</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>angle</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - angle in radILns</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>the sine value of angle radILns</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_cos"></a>f_cos</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_cos(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>angle</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the cosine of angle radILns</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>angle</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - angle in radILns</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>the cosine value of angle radILns</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_asin"></a>f_asin</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_asin(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the arc sine of value in [-pi/2, +pi/2]</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>the arc sine value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_acos"></a>f_acos</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_acos(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the arc cosine of value in [0, pi]</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>the arc cosine value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_powFF"></a>f_powFF</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powFF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise to power (float to float power)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - base value</td></tr>
+<tr>
+<td class=CDLEntry>expo</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - exponent value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>base raised to power expo</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_powII"></a>f_powII</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powII(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise to power (integer to integer power)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - base value</td></tr>
+<tr>
+<td class=CDLEntry>expo</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - exponent value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>base raised to power expo</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_powIF"></a>f_powIF</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powIF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise to power (integer to float power)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - base value</td></tr>
+<tr>
+<td class=CDLEntry>expo</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - exponent value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>base raised to power expo</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_powFI"></a>f_powFI</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powFI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise to power (float to integer power)</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - base value</td></tr>
+<tr>
+<td class=CDLEntry>expo</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - exponent value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>base raised to power expo</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_sqrF"></a>f_sqrF</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise a float value to square</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - base value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>square of base</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_sqrI"></a>f_sqrI</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Raise an integer value to square</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - base value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>square of base</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_sqrtF"></a>f_sqrtF</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrtF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Square root of float value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - base value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>square root of base</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_sqrtI"></a>f_sqrtI</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrtI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Square root of integer value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>base</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b> - base value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>square root of base</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_ceil"></a>f_ceil</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ceil(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the smallest integer value that is not less then value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - float value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>ceil value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_floor"></a>f_floor</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_floor(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the largest integer value that is not greater then value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - float value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>floor value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_exp"></a>f_exp</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_exp(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the exponential value of the argument</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - float value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>exp value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_log"></a>f_log</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_log(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the natural logarithm of the argument</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>val</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - float value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>float</td>
+<td class=CDLDescription>ln value of val</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_generate_poissonTable"></a>f_generate_poissonTable</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_generate_poissonTable(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>t_Poisson_Table&nbsp;</td>
+<td class=PParameter nowrap>p_pTable</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Returns with an initialized poisson table which is a cumulative probability distribution list for a given lambda.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_lambda</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the lambda variance of the poisson distribution</td></tr>
+<tr>
+<td class=CDLEntry>p_pTable</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>t_Poisson_Table</b> - the generated poisson table</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>*boolean*</td>
+<td class=CDLDescription>true if the generation was success</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>If exp(-lambda) is zero than the table generation fails</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>The table used to get a poisson value by a random number indicates the next poisson value that should be use.&nbsp; See <a href="#f_getNext_poissonValue" class=LFunction id=link49 onMouseOver="ShowTip(event, 'tt32', 'link49')" onMouseOut="HideTip('tt32')">f_getNext_poissonValue</a> function for more details.&nbsp; The size of the table will be lambda * 2.&nbsp; Note: With this method we can only generate correct values for lambda-s smaller than about 100-110 This is due to f_powFF(p_lambda, j) is rounded to infinity above lambda-s bigger than about 150</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_getNext_poissonValue"></a>f_getNext_poissonValue</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_getNext_poissonValue(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>t_Poisson_Table&nbsp;</td>
+<td class=PParameter nowrap>p_pTable,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>boolean&nbsp;</td>
+<td class=PParameter nowrap>p_sucess</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Returns with a random poisson value by the given poisson table and lambda poisson variance.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_lambda</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the lambda variance of the poisson distribution</td></tr>
+<tr>
+<td class=CDLEntry>p_pTable</td>
+<td class=CDLDescription>
+<b>inout</b>
+<b>t_Poisson_Table</b> - the poisson table</td></tr>
+<tr>
+<td class=CDLEntry>p_sucess</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>boolean</b> - indicates if the returned value is from a successfully generated poisson table or not If false, an extremly rare error happened under the table generation and this need to be regenerate!</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>*integer*</td>
+<td class=CDLDescription>the selected random poisson value between 0 and sizeof(p_pTable)</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>The function checks the input table if it is initialized or not and if not first of all generates it by the <a href="#f_generate_poissonTable" class=LFunction id=link50 onMouseOver="ShowTip(event, 'tt31', 'link50')" onMouseOut="HideTip('tt31')">f_generate_poissonTable</a> function.&nbsp; If the table was initialized checks the given lambda if it was used to generate the table.&nbsp; If it is different, regenerates the table.&nbsp; After these checks we have the correct initialized poisson table for the given p_lambda.&nbsp; Finally it returns with a random poisson value by the table.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_gen_Exponential_Distribution(in_float_p_lambda)return_float"></a>f_gen_Exponential_Distribution(in float p_lambda) return float</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_gen_Exponential_Distribution(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Returns with the exponential random variable for a given lambda</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>p_lambda</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>float</b> - the lambda variance of the exponential distribution</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>*float*</td>
+<td class=CDLDescription>the exponential random variable for the given lambda</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>The function works as the following:</p>
+<ul>
+<li>generate a random number U~U(0,1)</li>
+<li>since U is uniform in (0,1) then so is U-1</li>
+<li>X = - Log(1-U)/lambda = - Log(U)/lambda</li>
+<li>return with X Note: Log means natural logarithm in this case</li></ul></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_maxIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return IntegerList</td></tr></table></td></tr></table></blockquote>Return an IntegerList with the highest number found at index 0 and the index of ilist where it&rsquo;s found at index 1</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_maxFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_minIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return IntegerList</td></tr></table></td></tr></table></blockquote>Return an IntegerList with the lowest number found at index 0 and the index of ilist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt4">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_minFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_averageFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the average of flist</div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_averageIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the average of ilist</div></div>
+<div class=CToolTip id="tt7">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_updateFL(</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>head,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>tail</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt8">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_updateIL(</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>head,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>tail</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt9">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of float list (so the average square distance from the center of elements in the list)</div></div>
+<div class=CToolTip id="tt10">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdFLL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>u</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of float list  using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt11">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of integer list (so the average square distance from the center of points)</div></div>
+<div class=CToolTip id="tt12">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdILL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>u</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of integer list using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt13">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sinVL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>freq,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>altitude,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>start_val,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>len,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>step</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return the values of the sine function</div></div>
+<div class=CToolTip id="tt14">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_cosVL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>freq,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>altitude,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>start_val,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>len,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>step</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return the values of the cosine function</div></div>
+<div class=CToolTip id="tt15">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sin(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>angle</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the sine of angle radILns</div></div>
+<div class=CToolTip id="tt16">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_cos(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>angle</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the cosine of angle radILns</div></div>
+<div class=CToolTip id="tt17">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_asin(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the arc sine of value in [-pi/2, +pi/2]</div></div>
+<div class=CToolTip id="tt18">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_acos(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the arc cosine of value in [0, pi]</div></div>
+<div class=CToolTip id="tt19">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powFF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise to power (float to float power)</div></div>
+<div class=CToolTip id="tt20">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powII(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Raise to power (integer to integer power)</div></div>
+<div class=CToolTip id="tt21">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powIF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise to power (integer to float power)</div></div>
+<div class=CToolTip id="tt22">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powFI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise to power (float to integer power)</div></div>
+<div class=CToolTip id="tt23">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise a float value to square</div></div>
+<div class=CToolTip id="tt24">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Raise an integer value to square</div></div>
+<div class=CToolTip id="tt25">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrtF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Square root of float value</div></div>
+<div class=CToolTip id="tt26">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrtI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Square root of integer value</div></div>
+<div class=CToolTip id="tt27">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ceil(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Return the smallest integer value that is not less then value</div></div>
+<div class=CToolTip id="tt28">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_floor(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Return the largest integer value that is not greater then value</div></div>
+<div class=CToolTip id="tt29">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_exp(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the exponential value of the argument</div></div>
+<div class=CToolTip id="tt30">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_log(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the natural logarithm of the argument</div></div>
+<div class=CToolTip id="tt31">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_generate_poissonTable(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>t_Poisson_Table&nbsp;</td>
+<td class=PParameter nowrap>p_pTable</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Returns with an initialized poisson table which is a cumulative probability distribution list for a given lambda.</div></div>
+<div class=CToolTip id="tt32">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_getNext_poissonValue(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>t_Poisson_Table&nbsp;</td>
+<td class=PParameter nowrap>p_pTable,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>boolean&nbsp;</td>
+<td class=PParameter nowrap>p_sucess</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Returns with a random poisson value by the given poisson table and lambda poisson variance.</div></div>
+<div class=CToolTip id="tt33">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_gen_Exponential_Distribution(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Returns with the exponential random variable for a given lambda</div></div>
+<div class=CToolTip id="tt34">
+<div class=CFile>This module stores generic types for math functions</div></div>
+<div class=CToolTip id="tt35">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of integer IntegerList</td></tr></table></blockquote>List of integer</div></div>
+<div class=CToolTip id="tt36">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of float FloatList</td></tr></table></blockquote>List of float</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCMaths_GenericTypes-ttcn.html b/doc/apidoc/html/files/TCCMaths_GenericTypes-ttcn.html
new file mode 100644
index 0000000..bb96eaf
--- /dev/null
+++ b/doc/apidoc/html/files/TCCMaths_GenericTypes-ttcn.html
@@ -0,0 +1,246 @@
+<html>
+<head>
+<title>TCCMaths_GenericTypes - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCMaths_GenericTypes"></a>TCCMaths_GenericTypes</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module stores generic types for math functions</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<h4 class=CHeading>Current Owner</h4>
+<p>Akos Pernek (EAKOPER)</p>
+<h4 class=CHeading>Last Review Date</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCMaths_GenericTypes" >TCCMaths_GenericTypes</a></td>
+<td class=SDescription>This module stores generic types for math functions</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Constants" >Constants</a></td>
+<td class=SDescription></td></tr>
+<tr class="SConstant SIndent1 SMarked">
+<td class=SEntry>
+<a href="#pi" >pi</a></td>
+<td class=SDescription>Provide the value of pi</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Types" >Types</a></td>
+<td class=SDescription></td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#VerdictList" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">VerdictList</a></td>
+<td class=SDescription>List of verdicttype</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#IntegerList" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">IntegerList</a></td>
+<td class=SDescription>List of integer</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#BooleanList" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">BooleanList</a></td>
+<td class=SDescription>List of boolean</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#FloatList" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">FloatList</a></td>
+<td class=SDescription>List of float</td></tr>
+<tr class="SType SIndent1 SMarked">
+<td class=SEntry>
+<a href="#StringList" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">StringList</a></td>
+<td class=SDescription>List of charstring</td></tr>
+<tr class="SType SIndent1">
+<td class=SEntry>
+<a href="#OctetStringList" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">OctetStringList</a></td>
+<td class=SDescription>List of octetstring</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="pi"></a>pi</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Provide the value of pi</p>
+<h4 class=CHeading>Value</h4>
+<p>3.1415926535</p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Types"></a>Types</h3></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="VerdictList"></a>VerdictList</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of verdicttype VerdictList</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>List of verdicttype</p>
+<h4 class=CHeading>Elements</h4>
+<p>record of <b>verdicttype</b></p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="IntegerList"></a>IntegerList</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of integer IntegerList</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>List of integer</p>
+<h4 class=CHeading>Elements</h4>
+<p>record of <b>integer</b></p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="BooleanList"></a>BooleanList</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of boolean BooleanList</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>List of boolean</p>
+<h4 class=CHeading>Elements</h4>
+<p>record of <b>boolean</b></p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="FloatList"></a>FloatList</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of float FloatList</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>List of float</p>
+<h4 class=CHeading>Elements</h4>
+<p>record of <b>float</b></p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="StringList"></a>StringList</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of charstring StringList</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>List of charstring</p>
+<h4 class=CHeading>Elements</h4>
+<p>record of <b>charstring</b></p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+<div class="CType">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="OctetStringList"></a>OctetStringList</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of octetstring OctetStringList</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>List of octetstring</p>
+<h4 class=CHeading>Elements</h4>
+<p>record of <b>octetstring</b></p>
+<h4 class=CHeading>Detailed Comments</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of verdicttype VerdictList</td></tr></table></blockquote>List of verdicttype</div></div>
+<div class=CToolTip id="tt2">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of integer IntegerList</td></tr></table></blockquote>List of integer</div></div>
+<div class=CToolTip id="tt3">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of boolean BooleanList</td></tr></table></blockquote>List of boolean</div></div>
+<div class=CToolTip id="tt4">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of float FloatList</td></tr></table></blockquote>List of float</div></div>
+<div class=CToolTip id="tt5">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of charstring StringList</td></tr></table></blockquote>List of charstring</div></div>
+<div class=CToolTip id="tt6">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of octetstring OctetStringList</td></tr></table></blockquote>List of octetstring</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCMessageHandling_Functions-ttcn.html b/doc/apidoc/html/files/TCCMessageHandling_Functions-ttcn.html
new file mode 100644
index 0000000..f0bf000
--- /dev/null
+++ b/doc/apidoc/html/files/TCCMessageHandling_Functions-ttcn.html
@@ -0,0 +1,200 @@
+<html>
+<head>
+<title>TCCMessageHandling_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCMessageHandling_Functions"></a>TCCMessageHandling_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module provide message handling functions</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<h4 class=CHeading>Current Owner</h4>
+<p>Norbert Pinter (ENORPIN)</p>
+<h4 class=CHeading>Last Review Date</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCMessageHandling_Functions" >TCCMessageHandling_Functions</a></td>
+<td class=SDescription>This module provide message handling functions</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_TCCMessageHandling_getMessageLength" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_TCCMessageHandling_getMessageLength</a></td>
+<td class=SDescription>Function to get the length of the received message.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_TCCMessageHandling_getMessageLength4Diameter" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_TCCMessageHandling_getMessageLength4Diameter</a></td>
+<td class=SDescription>Function to get the length of the received message.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_TCCMessageHandling_getMessageLength4Radius" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_TCCMessageHandling_getMessageLength4Radius</a></td>
+<td class=SDescription>Function to get the length of the received message.</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_TCCMessageHandling_getMessageLength"></a>f_TCCMessageHandling_getMessageLength</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>Function to get the length of the received message.</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Returns</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_TCCMessageHandling_getMessageLength4Diameter"></a>f_TCCMessageHandling_getMessageLength4Diameter</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength4Diameter(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>Function to get the length of the received message.</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Returns</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_TCCMessageHandling_getMessageLength4Radius"></a>f_TCCMessageHandling_getMessageLength4Radius</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength4Radius(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>
+<p>Function to get the length of the received message.</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Returns</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>Function to get the length of the received message.</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength4Diameter(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>Function to get the length of the received message.</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength4Radius(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>Function to get the length of the received message.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCRegexp_Functions-ttcn.html b/doc/apidoc/html/files/TCCRegexp_Functions-ttcn.html
new file mode 100644
index 0000000..9bc5499
--- /dev/null
+++ b/doc/apidoc/html/files/TCCRegexp_Functions-ttcn.html
@@ -0,0 +1,199 @@
+<html>
+<head>
+<title>Regexp_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="Regexp_Functions"></a>Regexp_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module provides a non TTCN regular expression handling functions</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<h4 class=CHeading>Current Owner</h4>
+<p>-</p>
+<h4 class=CHeading>Last Review Date</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#Regexp_Functions" >Regexp_Functions</a></td>
+<td class=SDescription>This module provides a non TTCN regular expression handling functions</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_pcre_regexp" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_pcre_regexp</a></td>
+<td class=SDescription>Evaulate a Perl compatible regular expression</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_pcre_regexp" id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">f_pcre_regexp</a></td>
+<td class=SDescription>Evaulate a Perl compatible regular expression</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_pcre_regexp"></a>f_pcre_regexp</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_pcre_regexp(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>instr,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>expression,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>groupno</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Evaulate a Perl compatible regular expression</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>instr</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   string to be matched</td></tr>
+<tr>
+<td class=CDLEntry>expression</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  the pattern</td></tr>
+<tr>
+<td class=CDLEntry>groupno</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>inteher</b> - the number of the group to return</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>the matched substring</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>This function returns the substring of the input character string instr, which is the content of n-th group matching to the expression.&nbsp; The expression is a Perl compatible regular expression pattern.&nbsp; The number of the group to be returned is specified by groupno, which shall be a positive integer or zero.&nbsp; Group numbers are assigned by the order of occurrences of the opening bracket of a group and counted starting from 1 by step 1.&nbsp; If the groupno is zero, a substring macthed by the entire pattern is returned.&nbsp; If no substring fulfilling all conditions (i.e. pattern and group number) is found within the input string, an empty string is returned.</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_pcre_regexp"></a>f_pcre_regexp</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>type record of charstring charstring_list external function f_pcre_regexp_list(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>instr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>expression</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring_list</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Evaulate a Perl compatible regular expression</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>instr</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   string to be matched</td></tr>
+<tr>
+<td class=CDLEntry>expression</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  the pattern</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>record of charstring</td>
+<td class=CDLDescription>the matched substrings</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>This function returns the list of the substring of the input character string instr, which is the content of n-th group matching to the expression.&nbsp; The expression is a Perl compatible regular expression pattern.&nbsp; Group numbers are assigned by the order of occurrences of the opening bracket of a group and counted starting from 1 by step 1.&nbsp; If no substring fulfilling all conditions is found within the input string, an empty record of is returned.</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_pcre_regexp(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>instr,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>expression,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>groupno</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Evaulate a Perl compatible regular expression</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCSecurity-cc.html b/doc/apidoc/html/files/TCCSecurity-cc.html
new file mode 100644
index 0000000..1bba0a1
--- /dev/null
+++ b/doc/apidoc/html/files/TCCSecurity-cc.html
@@ -0,0 +1,856 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/TCCSecurity.cc - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCSecurity.cc"></a>TCCSecurity.cc</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCSecurity.cc" >TCCSecurity.cc</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__calculateDigestResponse" >f__calculateDigestResponse</a></td>
+<td class=SDescription>Calculate digest response</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__calculateDigestHA1" >f__calculateDigestHA1</a></td>
+<td class=SDescription>Calculate digest H(A1) hash</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__TCCSecurity__hex2char" >f__TCCSecurity__hex2char</a></td>
+<td class=SDescription>Computes the 8 bit ASCII representation of an hexstring</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__calculateMD5" >f__calculateMD5</a></td>
+<td class=SDescription>Compute MD5 hash value</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__IMSAKA__f1" >f__IMSAKA__f1</a></td>
+<td class=SDescription>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__IMSAKA__f2" >f__IMSAKA__f2</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns response RES.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__IMSAKA__f3" >f__IMSAKA__f3</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns confidentiality key CK.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__IMSAKA__f4" >f__IMSAKA__f4</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns integrity key IK.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__IMSAKA__f2345" >f__IMSAKA__f2345</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns AK, CK, RES</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__IMSAKA__f5" >f__IMSAKA__f5</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns anonymity key AK.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__IMSAKA__f1star" >f__IMSAKA__f1star</a></td>
+<td class=SDescription>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__IMSAKA__f5star" >f__IMSAKA__f5star</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__EAPSIM__A3A8" >f__EAPSIM__A3A8</a></td>
+<td class=SDescription>Takes key Ki and random challenge RAND, and returns Kc and SRES keys</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__IMSAKA__calculateAUTN" >f__IMSAKA__calculateAUTN</a></td>
+<td class=SDescription>Computes authentication token AUTN from anonymity key AK, random challenge RAND, sequence number SQN and authentication management field AMF.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__calculateHMACMD5" >f__calculateHMACMD5</a></td>
+<td class=SDescription>Calculate the HMAC MD5 value of a message with specified 64 bit key.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__calculate__HMAC__MD5" >f__calculate__HMAC__MD5</a></td>
+<td class=SDescription>Calculate the HMAC MD5 value of a message with specified key.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__calculate__HMAC__SHA1" >f__calculate__HMAC__SHA1</a></td>
+<td class=SDescription>Calculate the HMAC SHA1 value of a message with specified key.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f__calculate128__EEA3" >f__calculate128__EEA3</a></td>
+<td class=SDescription>Purpose: Encrypt TTCN-3 message using the confidentiality algorithm 128-EEA3</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__calculate128__EIA3" >f__calculate128__EIA3</a></td>
+<td class=SDescription>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3 for TTCN-3 message</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__calculateDigestResponse"></a>f__calculateDigestResponse</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate digest response</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>nonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   a server-specified data string which may `                                 be uniquely generated each time a 401 response is made</td></tr>
+<tr>
+<td class=CDLEntry>cnonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  client nonce</td></tr>
+<tr>
+<td class=CDLEntry>user</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -    user name</td></tr>
+<tr>
+<td class=CDLEntry>realm</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   user realm</td></tr>
+<tr>
+<td class=CDLEntry>passwd</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  user password</td></tr>
+<tr>
+<td class=CDLEntry>alg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -     a string indicating a pair of algorithms used to produce the digest and a checksum</td></tr>
+<tr>
+<td class=CDLEntry>nonceCount</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - nonce count (8 hex digits)</td></tr>
+<tr>
+<td class=CDLEntry>method</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  method (from the request)</td></tr>
+<tr>
+<td class=CDLEntry>qop</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -     qop-value: &ldquo;&rdquo;, &ldquo;auth&rdquo;, &ldquo;auth-int&rdquo;</td></tr>
+<tr>
+<td class=CDLEntry>URI</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -     digest URI</td></tr>
+<tr>
+<td class=CDLEntry>HEntity</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - H(entity body) if qop=&rdquo;auth-int&rdquo;</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>digest response</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Support HTTP authentication (detailed description in RFC 2617) using uses one-way hash (md5) specified in RFC 1321.&nbsp; When a request arrives to server for an access-protected object, it responds an &ldquo;401 Unauthorized&rdquo; status code and a WWW-Authenticate header (encapsulate nonce and other necessary parameters).&nbsp; The client is expected to retry the request, passing an Authorization header with response field calculated with f_calculateDigestResponse().</p>
+<p>Overview: <a href="http://en.wikipedia.org/wiki/Digest_access_authentication" class=LURL target=_top>http://en.wikipedia.org<wbr>/wiki<wbr>/Digest_access_authentication</a></p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__calculateDigestHA1"></a>f__calculateDigestHA1</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate digest H(A1) hash</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>nonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   a server-specified data string which may `                                 be uniquely generated each time a 401 response is made</td></tr>
+<tr>
+<td class=CDLEntry>cnonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  client nonce</td></tr>
+<tr>
+<td class=CDLEntry>user</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -    user name</td></tr>
+<tr>
+<td class=CDLEntry>realm</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   user realm</td></tr>
+<tr>
+<td class=CDLEntry>passwd</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  user password</td></tr>
+<tr>
+<td class=CDLEntry>alg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -     a string indicating a pair of algorithms used to produce the digest and a checksum</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>digest response</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Overview: <a href="http://en.wikipedia.org/wiki/Digest_access_authentication" class=LURL target=_top>http://en.wikipedia.org<wbr>/wiki<wbr>/Digest_access_authentication</a></p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__TCCSecurity__hex2char"></a>f__TCCSecurity__hex2char</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes the 8 bit ASCII representation of an hexstring</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>hex</td>
+<td class=CDLDescription>
+<b>in</b> &lt;char*&gt; -  input value</td></tr>
+<tr>
+<td class=CDLEntry>str</td>
+<td class=CDLDescription>
+<b>out</b> &lt;char*&gt; - output value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__calculateMD5"></a>f__calculateMD5</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Compute MD5 hash value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pszHashInput</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  input value to compute hash of</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>hashValue</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> -  hexa hash value of input</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__IMSAKA__f1"></a>f__IMSAKA__f1</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__OP</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the operator variant algorithm configuration field</td></tr>
+<tr>
+<td class=CDLEntry>pl__k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>pl__sqn</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  sequence number</td></tr>
+<tr>
+<td class=CDLEntry>pl__amf</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  authentication management field</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>network authentication code MAC-A</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__IMSAKA__f2"></a>f__IMSAKA__f2</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns response RES.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__OP</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the operator variant algorithm configuration field</td></tr>
+<tr>
+<td class=CDLEntry>pl__k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>response RES</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__IMSAKA__f3"></a>f__IMSAKA__f3</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns confidentiality key CK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__OP</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the operator variant algorithm configuration field</td></tr>
+<tr>
+<td class=CDLEntry>pl__k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>confidentiality key CK</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__IMSAKA__f4"></a>f__IMSAKA__f4</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns integrity key IK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__OP</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the operator variant algorithm configuration field</td></tr>
+<tr>
+<td class=CDLEntry>pl__k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>integrity key IK</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__IMSAKA__f2345"></a>f__IMSAKA__f2345</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns AK, CK, RES</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__OP</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the operator variant algorithm configuration field</td></tr>
+<tr>
+<td class=CDLEntry>pl__k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>TCCSecurity_Keys typed value Errors: -</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__IMSAKA__f5"></a>f__IMSAKA__f5</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns anonymity key AK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__OP</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the operator variant algorithm configuration field</td></tr>
+<tr>
+<td class=CDLEntry>pl__k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>anonymity key AK</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__IMSAKA__f1star"></a>f__IMSAKA__f1star</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__OP</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the operator variant algorithm configuration field</td></tr>
+<tr>
+<td class=CDLEntry>pl__k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>pl__sqn</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  sequence number</td></tr>
+<tr>
+<td class=CDLEntry>pl__amf</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  authentication management field</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>resynch authentication code MAC-S</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__IMSAKA__f5star"></a>f__IMSAKA__f5star</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__OP</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the operator variant algorithm configuration field</td></tr>
+<tr>
+<td class=CDLEntry>pl__k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>resynch anonymity key AK</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__EAPSIM__A3A8"></a>f__EAPSIM__A3A8</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key Ki and random challenge RAND, and returns Kc and SRES keys</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__Ki</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the shared key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>pl__sres</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>octetstring</b> -  authentication result param</td></tr>
+<tr>
+<td class=CDLEntry>pl__Kc</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>octetstring</b> - encryption key</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__IMSAKA__calculateAUTN"></a>f__IMSAKA__calculateAUTN</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes authentication token AUTN from anonymity key AK, random challenge RAND, sequence number SQN and authentication management field AMF.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__SQN</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - sequence number</td></tr>
+<tr>
+<td class=CDLEntry>pl__AK</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  anonymity key</td></tr>
+<tr>
+<td class=CDLEntry>pl__AMF</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - authentication management field</td></tr>
+<tr>
+<td class=CDLEntry>pl__MAC</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - encryption key</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>Authentication token - AUTN</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__calculateHMACMD5"></a>f__calculateHMACMD5</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate the HMAC MD5 value of a message with specified 64 bit key.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to be hashed</td></tr>
+<tr>
+<td class=CDLEntry>key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_64</b>      - 64 bit key of the hash function</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>Hash value (16 octet - 128 bit)</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<ul>
+<li>(should be kept because of backward compatibility reasons)</li>
+<li>HMAC() is an openssl specific function, should be found under openssl/hmac.h</li>
+<li>key can only be 64 bit (any other case please use f_calculate_HMAC_MD5)</li>
+<li>the length of generated hash value can only be 128 bit (any other case please use f_calculate_HMAC_MD5)</li></ul></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__calculate__HMAC__MD5"></a>f__calculate__HMAC__MD5</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate the HMAC MD5 value of a message with specified key.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b>   - key of the hash function</td></tr>
+<tr>
+<td class=CDLEntry>pl_input</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to be hashed</td></tr>
+<tr>
+<td class=CDLEntry>pl_length</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b>    - length of the output hash value (should be 16 in most of the cases)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>Hash value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<ul>
+<li>HMAC() is an openssl specific function, should be found under openssl/hmac.h</li></ul></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__calculate__HMAC__SHA1"></a>f__calculate__HMAC__SHA1</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate the HMAC SHA1 value of a message with specified key.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b>   - key of the hash function</td></tr>
+<tr>
+<td class=CDLEntry>pl_input</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to be hashed</td></tr>
+<tr>
+<td class=CDLEntry>pl_length</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b>    - length of the output hash value (should be 16 in most of the cases)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>Hash value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<ul>
+<li>HMAC() is an openssl specific function, should be found under openssl/hmac.h</li></ul></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__calculate128__EEA3"></a>f__calculate128__EEA3</h3>
+<div class=CBody>
+<p>Purpose: Encrypt TTCN-3 message using the confidentiality algorithm 128-EEA3</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT__16</b>   - confidentiality key</td></tr>
+<tr>
+<td class=CDLEntry>count</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT__4</b>    - counter</td></tr>
+<tr>
+<td class=CDLEntry>bearer</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>INT__5</b>    - bearer identity</td></tr>
+<tr>
+<td class=CDLEntry>direction</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>BIT__1</b>    - direction of transmission</td></tr>
+<tr>
+<td class=CDLEntry>msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>BIT__1__65504</b> - input bit stream (message to be encrypted)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>BIT__1__65504</td>
+<td class=CDLDescription>output bit stream (encrypted message)</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__calculate128__EIA3"></a>f__calculate128__EIA3</h3>
+<div class=CBody>
+<p>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3 for TTCN-3 message</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT__16</b>   - integrity key key</td></tr>
+<tr>
+<td class=CDLEntry>count</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT__4</b>    - counter</td></tr>
+<tr>
+<td class=CDLEntry>bearer</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>INT__5</b>    - bearer identity</td></tr>
+<tr>
+<td class=CDLEntry>direction</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>BIT__1</b>    - direction of transmission</td></tr>
+<tr>
+<td class=CDLEntry>msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>BIT__1__65504</b> - input bit stream (the message)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>BIT__32</td>
+<td class=CDLDescription>message authentication code (MAC)</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCSecurity_Functions-ttcn.html b/doc/apidoc/html/files/TCCSecurity_Functions-ttcn.html
new file mode 100644
index 0000000..43b55ad
--- /dev/null
+++ b/doc/apidoc/html/files/TCCSecurity_Functions-ttcn.html
@@ -0,0 +1,1665 @@
+<html>
+<head>
+<title>TCCSecurity_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCSecurity_Functions"></a>TCCSecurity_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports security based operations e.g. fingerprint generation</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<h4 class=CHeading>Current Owner</h4>
+<p>EFLOATT</p>
+<h4 class=CHeading>Last Review Date</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCSecurity_Functions" >TCCSecurity_Functions</a></td>
+<td class=SDescription>This module supports security based operations e.g. </td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_calculateDigestResponse" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_calculateDigestResponse</a></td>
+<td class=SDescription>Calculate digest response</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_calculateDigestHA1" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_calculateDigestHA1</a></td>
+<td class=SDescription>Calculate digest H(A1) hash</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f__TCCSecurity__hex2char" >f__TCCSecurity__hex2char</a></td>
+<td class=SDescription>Computes the 8 bit ASCII representation of an hexstring</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_calculateMD5" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">f_calculateMD5</a></td>
+<td class=SDescription>Compute MD5 hash value</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_IMSAKA_f1" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">f_IMSAKA_f1</a></td>
+<td class=SDescription>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_IMSAKA_f2" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">f_IMSAKA_f2</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns response RES.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_IMSAKA_f3" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">f_IMSAKA_f3</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns confidentiality key CK.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_IMSAKA_f4" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">f_IMSAKA_f4</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns integrity key IK.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_IMSAKA_f2345" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">f_IMSAKA_f2345</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns AK, CK, RES</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_IMSAKA_f5" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">f_IMSAKA_f5</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns anonymity key AK.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_IMSAKA_f1star" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">f_IMSAKA_f1star</a></td>
+<td class=SDescription>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_IMSAKA_f5star" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">f_IMSAKA_f5star</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_EAPSIM_A3A8" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">f_EAPSIM_A3A8</a></td>
+<td class=SDescription>Takes key Ki and random challenge RAND, and returns Kc and SRES keys</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_IMSAKA_calculateAUTN" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">f_IMSAKA_calculateAUTN</a></td>
+<td class=SDescription>Computes authentication token AUTN from anonymity key AK, random challenge RAND, sequence number SQN and authentication management field AMF.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_calculateHMACMD5" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">f_calculateHMACMD5</a></td>
+<td class=SDescription>Calculate the 128 bit HMAC MD5 value of a message with specified 64 bit key.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_calculate_HMAC_MD5" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">f_calculate_HMAC_MD5</a></td>
+<td class=SDescription>Calculate the HMAC MD5 value of a message with specified key.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_calculate_HMAC_SHA1" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">f_calculate_HMAC_SHA1</a></td>
+<td class=SDescription>Calculate the HMAC SHA1 value of a message with specified key.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_calculate128_EEA3" >f_calculate128_EEA3</a></td>
+<td class=SDescription>Purpose: Encrypt message using the confidentiality algorithm 128-EEA3</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_calculate128_EIA3" >f_calculate128_EIA3</a></td>
+<td class=SDescription>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_calculateDigestResponse"></a>f_calculateDigestResponse</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=3>external function f_calculateDigestResponse(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>nonce,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>cnonce,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>user,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>realm,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>passwd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>alg,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>nonceCount,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>method,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>qop,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>URI,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>HEntity</td></tr>
+<tr>
+<td class=PAfterParameters colspan=3>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate digest response</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>nonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   a server-specified data string which may `                                 be uniquely generated each time a 401 response is made</td></tr>
+<tr>
+<td class=CDLEntry>cnonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  client nonce</td></tr>
+<tr>
+<td class=CDLEntry>user</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -    user name</td></tr>
+<tr>
+<td class=CDLEntry>realm</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   user realm</td></tr>
+<tr>
+<td class=CDLEntry>passwd</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  user password</td></tr>
+<tr>
+<td class=CDLEntry>alg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -     a string indicating a pair of algorithms used to produce the digest and a checksum</td></tr>
+<tr>
+<td class=CDLEntry>nonceCount</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - nonce count (8 hex digits)</td></tr>
+<tr>
+<td class=CDLEntry>method</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  method (from the request)</td></tr>
+<tr>
+<td class=CDLEntry>qop</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -     qop-value: &ldquo;&rdquo;, &ldquo;auth&rdquo;, &ldquo;auth-int&rdquo;</td></tr>
+<tr>
+<td class=CDLEntry>URI</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -     digest URI</td></tr>
+<tr>
+<td class=CDLEntry>HEntity</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - H(entity body) if qop=&rdquo;auth-int&rdquo;</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>digest response</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Support HTTP authentication (detailed description in RFC 2617) using uses one-way hash (md5) specified in RFC 1321.&nbsp; When a request arrives to server for an access-protected object, it responds an &ldquo;401 Unauthorized&rdquo; status code and a WWW-Authenticate header (encapsulate nonce and other necessary parameters).&nbsp; The client is expected to retry the request, passing an Authorization header with response field calculated with f_calculateDigestResponse().</p>
+<p>Overview: <a href="http://en.wikipedia.org/wiki/Digest_access_authentication" class=LURL target=_top>http://en.wikipedia.org<wbr>/wiki<wbr>/Digest_access_authentication</a></p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_calculateDigestHA1"></a>f_calculateDigestHA1</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateDigestHA1(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>nonce,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>cnonce,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>user,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>realm,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>passwd,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>alg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate digest H(A1) hash</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>nonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   a server-specified data string which may `                                 be uniquely generated each time a 401 response is made</td></tr>
+<tr>
+<td class=CDLEntry>cnonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  client nonce</td></tr>
+<tr>
+<td class=CDLEntry>user</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -    user name</td></tr>
+<tr>
+<td class=CDLEntry>realm</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   user realm</td></tr>
+<tr>
+<td class=CDLEntry>passwd</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  user password</td></tr>
+<tr>
+<td class=CDLEntry>alg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -     a string indicating a pair of algorithms used to produce the digest and a checksum</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>digest response</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Overview: <a href="http://en.wikipedia.org/wiki/Digest_access_authentication" class=LURL target=_top>http://en.wikipedia.org<wbr>/wiki<wbr>/Digest_access_authentication</a></p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f__TCCSecurity__hex2char"></a>f__TCCSecurity__hex2char</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes the 8 bit ASCII representation of an hexstring</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>hex</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  input value</td></tr>
+<tr>
+<td class=CDLEntry>str</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>charstring</b> - output value</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_calculateMD5"></a>f_calculateMD5</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateMD5(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pszHashInput</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Compute MD5 hash value</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pszHashInput</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  input value to compute MD5 hash</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>hexa hash value of input</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<ul>
+<li>MD5() is an openssl specific function, should be found under openssl/md5.h</li></ul></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IMSAKA_f1"></a>f_IMSAKA_f1</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f1(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_sqn,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_amf</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl_rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>pl_sqn</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  sequence number</td></tr>
+<tr>
+<td class=CDLEntry>pl_amf</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  authentication management field</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>network authentication code MAC-A</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IMSAKA_f2"></a>f_IMSAKA_f2</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f2 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns response RES.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl_rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>response RES</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IMSAKA_f3"></a>f_IMSAKA_f3</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f3 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns confidentiality key CK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl_rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>confidentiality key CK</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IMSAKA_f4"></a>f_IMSAKA_f4</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f4 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns integrity key IK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl_rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>integrity key IK</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IMSAKA_f2345"></a>f_IMSAKA_f2345</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_IMSAKA_f2345 (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_OP,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_k,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_rand</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return TCCSecurity_Keys</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns AK, CK, RES</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__OP</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - the operator variant algorithm configuration field</td></tr>
+<tr>
+<td class=CDLEntry>pl__k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>TCCSecurity_Keys typed value Errors: -</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IMSAKA_f5"></a>f_IMSAKA_f5</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f5 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns anonymity key AK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl_rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>anonymity key AK</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IMSAKA_f1star"></a>f_IMSAKA_f1star</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f1star (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_sqn,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_amf</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl_rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>pl_sqn</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  sequence number</td></tr>
+<tr>
+<td class=CDLEntry>pl_amf</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  authentication management field</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>resynch authentication code MAC-S</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IMSAKA_f5star"></a>f_IMSAKA_f5star</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f5star (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>pl_rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>resynch anonymity key AK</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_EAPSIM_A3A8"></a>f_EAPSIM_A3A8</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_EAPSIM_A3A8(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_16&nbsp;</td>
+<td class=PParameter nowrap>Ki,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap></td>
+<td class=PType nowrap>OCT_16&nbsp;</td>
+<td class=PParameter nowrap>rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>sres,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>Kc</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key Ki and random challenge RAND, and returns Kc and SRES keys</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__Ki</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_16</b> - the shared key</td></tr>
+<tr>
+<td class=CDLEntry>pl__rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>pl__sres</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>octetstring</b> -  authentication result param</td></tr>
+<tr>
+<td class=CDLEntry>pl__Kc</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>octetstring</b> - encryption key</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_IMSAKA_calculateAUTN"></a>f_IMSAKA_calculateAUTN</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_calculateAUTN(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_6&nbsp;</td>
+<td class=PParameter nowrap>SQN,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_6&nbsp;</td>
+<td class=PParameter nowrap>AK,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_2&nbsp;</td>
+<td class=PParameter nowrap>AMF,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_8&nbsp;</td>
+<td class=PParameter nowrap>MAC</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes authentication token AUTN from anonymity key AK, random challenge RAND, sequence number SQN and authentication management field AMF.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl__SQN</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_6</b> - sequence number</td></tr>
+<tr>
+<td class=CDLEntry>pl__AK</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_6</b> -  anonymity key</td></tr>
+<tr>
+<td class=CDLEntry>pl__AMF</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_2</b> - authentication management field</td></tr>
+<tr>
+<td class=CDLEntry>pl__MAC</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_8</b> - encryption key</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>Authentication token - AUTN</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_calculateHMACMD5"></a>f_calculateHMACMD5</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateHMACMD5(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>msg,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_64&nbsp;</td>
+<td class=PParameter nowrap>key</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate the 128 bit HMAC MD5 value of a message with specified 64 bit key.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to be hashed</td></tr>
+<tr>
+<td class=CDLEntry>key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_64</b>      - 64 bit key of the hash function</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>Hash value (16 octet)</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<ul>
+<li>key should be 64 bit long, output is 128 bit long</li></ul></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_calculate_HMAC_MD5"></a>f_calculate_HMAC_MD5</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_calculate_HMAC_MD5(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_key,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_input,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_length</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate the HMAC MD5 value of a message with specified key.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b>   - key of the hash function</td></tr>
+<tr>
+<td class=CDLEntry>pl_input</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to be hashed</td></tr>
+<tr>
+<td class=CDLEntry>pl_length</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b>    - length of the output hash value (should be 16 in most of the cases)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>Hash value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<ul>
+<li>key can be any length</li>
+<li>the length of output can be set in pl_length</li></ul></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_calculate_HMAC_SHA1"></a>f_calculate_HMAC_SHA1</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_calculate_HMAC_SHA1(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_key,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_input,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_length</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate the HMAC SHA1 value of a message with specified key.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b>   - key of the hash function</td></tr>
+<tr>
+<td class=CDLEntry>pl_input</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>octetstring</b> - message to be hashed</td></tr>
+<tr>
+<td class=CDLEntry>pl_length</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>integer</b>    - length of the output hash value (should be 16 in most of the cases)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>octetstring</td>
+<td class=CDLDescription>Hash value</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<ul>
+<li>key can be any length</li>
+<li>the length of output can be set in pl_length</li></ul></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_calculate128_EEA3"></a>f_calculate128_EEA3</h3>
+<div class=CBody>
+<p>Purpose: Encrypt message using the confidentiality algorithm 128-EEA3</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_16</b>   - confidentiality key</td></tr>
+<tr>
+<td class=CDLEntry>count</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_4</b>    - counter</td></tr>
+<tr>
+<td class=CDLEntry>bearer</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>INT_5</b>    - bearer identity</td></tr>
+<tr>
+<td class=CDLEntry>direction</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>BIT_1</b>    - direction of transmission</td></tr>
+<tr>
+<td class=CDLEntry>msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>BIT_1_65504</b> - input bit stream (message to be encrypted)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>BIT_1_65504</td>
+<td class=CDLDescription>output bit stream (encrypted message)</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_calculate128_EIA3"></a>f_calculate128_EIA3</h3>
+<div class=CBody>
+<p>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_16</b>   - integrity key key</td></tr>
+<tr>
+<td class=CDLEntry>count</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>OCT_4</b>    - counter</td></tr>
+<tr>
+<td class=CDLEntry>bearer</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>INT_5</b>    - bearer identity</td></tr>
+<tr>
+<td class=CDLEntry>direction</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>BIT_1</b>    - direction of transmission</td></tr>
+<tr>
+<td class=CDLEntry>msg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>BIT_1_65504</b> - input bit stream (the message)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>BIT_32</td>
+<td class=CDLDescription>message authentication code (MAC)</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=3>external function f_calculateDigestResponse(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>nonce,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>cnonce,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>user,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>realm,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>passwd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>alg,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>nonceCount,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>method,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>qop,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>URI,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>HEntity</td></tr>
+<tr>
+<td class=PAfterParameters colspan=3>) return charstring</td></tr></table></td></tr></table></blockquote>Calculate digest response</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateDigestHA1(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>nonce,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>cnonce,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>user,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>realm,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>passwd,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>alg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Calculate digest H(A1) hash</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateMD5(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pszHashInput</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Compute MD5 hash value</div></div>
+<div class=CToolTip id="tt4">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f1(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_sqn,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_amf</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f2 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns response RES.</div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f3 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns confidentiality key CK.</div></div>
+<div class=CToolTip id="tt7">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f4 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns integrity key IK.</div></div>
+<div class=CToolTip id="tt8">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_IMSAKA_f2345 (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_OP,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_k,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_rand</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return TCCSecurity_Keys</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns AK, CK, RES</div></div>
+<div class=CToolTip id="tt9">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f5 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns anonymity key AK.</div></div>
+<div class=CToolTip id="tt10">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f1star (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_sqn,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_amf</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt11">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f5star (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</div></div>
+<div class=CToolTip id="tt12">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_EAPSIM_A3A8(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_16&nbsp;</td>
+<td class=PParameter nowrap>Ki,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap></td>
+<td class=PType nowrap>OCT_16&nbsp;</td>
+<td class=PParameter nowrap>rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>sres,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>Kc</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Takes key Ki and random challenge RAND, and returns Kc and SRES keys</div></div>
+<div class=CToolTip id="tt13">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_calculateAUTN(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_6&nbsp;</td>
+<td class=PParameter nowrap>SQN,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_6&nbsp;</td>
+<td class=PParameter nowrap>AK,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_2&nbsp;</td>
+<td class=PParameter nowrap>AMF,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_8&nbsp;</td>
+<td class=PParameter nowrap>MAC</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Computes authentication token AUTN from anonymity key AK, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt14">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateHMACMD5(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>msg,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_64&nbsp;</td>
+<td class=PParameter nowrap>key</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Calculate the 128 bit HMAC MD5 value of a message with specified 64 bit key.</div></div>
+<div class=CToolTip id="tt15">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_calculate_HMAC_MD5(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_key,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_input,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_length</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>Calculate the HMAC MD5 value of a message with specified key.</div></div>
+<div class=CToolTip id="tt16">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_calculate_HMAC_SHA1(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_key,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_input,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_length</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>Calculate the HMAC SHA1 value of a message with specified key.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCSystem-cc.html b/doc/apidoc/html/files/TCCSystem-cc.html
new file mode 100644
index 0000000..54feaf5
--- /dev/null
+++ b/doc/apidoc/html/files/TCCSystem-cc.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<title>f_SYS_getpid - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFunction">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="f_SYS_getpid"></a>f_SYS_getpid</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Returns the pid of the process</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>pid</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCSystem_Functions-ttcn.html b/doc/apidoc/html/files/TCCSystem_Functions-ttcn.html
new file mode 100644
index 0000000..54feaf5
--- /dev/null
+++ b/doc/apidoc/html/files/TCCSystem_Functions-ttcn.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<title>f_SYS_getpid - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFunction">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="f_SYS_getpid"></a>f_SYS_getpid</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Returns the pid of the process</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>integer</td>
+<td class=CDLDescription>pid</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCTemplate_Functions-ttcn.html b/doc/apidoc/html/files/TCCTemplate_Functions-ttcn.html
new file mode 100644
index 0000000..1a62e16
--- /dev/null
+++ b/doc/apidoc/html/files/TCCTemplate_Functions-ttcn.html
@@ -0,0 +1,216 @@
+<html>
+<head>
+<title>TCCTemplate_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCTemplate_Functions"></a>TCCTemplate_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module supports template handling Originally for TitanSIM R2 needs it for substituting substrings in a charstring template.</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<h4 class=CHeading>Current Owner</h4>
+<p>Zsolt Szalai (EZSOSZA)</p>
+<h4 class=CHeading>Last Review Date</h4>
+<p>-</p>
+<h4 class=CHeading>Comments</h4>
+<p>Intruduction of ? regexp like behavior like \(x)? in our own pattern couses many troubles, like with the current templatefunc signature it can be impossible to determine the parameters(using 2 ? pattern) and lookup may need much more and complicated additions or rewrite that we may want at that time;</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCTemplate_Functions" >TCCTemplate_Functions</a></td>
+<td class=SDescription>This module supports template handling Originally for TitanSIM R2 needs it for substituting substrings in a charstring template.</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_Template_substitutetemplate" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_Template_substitutetemplate</a></td>
+<td class=SDescription>Makes the substitutions according to the dictonary given</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f_Template_subsfiletemplate" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">f_Template_subsfiletemplate</a></td>
+<td class=SDescription>Makes the substitutions in the content of the given file, according to the dictonary</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_Template_substitutetemplate"></a>f_Template_substitutetemplate</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_Template_substitutetemplate(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCSubstitutionList&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_dict,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_string</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Makes the substitutions according to the dictonary given</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_dict</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>TCCSubstitutionList</b> - dictionary</td></tr>
+<tr>
+<td class=CDLEntry>pl_string</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - string to substitute in</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>substituted string</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_Template_subsfiletemplate"></a>f_Template_subsfiletemplate</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_Template_subsfiletemplate(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCSubstitutionList&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_dict,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_file</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Makes the substitutions in the content of the given file, according to the dictonary</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pl_dict</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>TCCSubstitutionList</b> - dictionary</td></tr>
+<tr>
+<td class=CDLEntry>pl_file</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - name of the file containing the template</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>substituted string</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>From FIO</td>
+<td class=CDLDescription>in this case &ldquo;&rdquo; returns</td></tr></table>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_Template_substitutetemplate(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCSubstitutionList&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_dict,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_string</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Makes the substitutions according to the dictonary given</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_Template_subsfiletemplate(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCSubstitutionList&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_dict,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_file</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Makes the substitutions in the content of the given file, according to the dictonary</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCTitanMetadata-cc.html b/doc/apidoc/html/files/TCCTitanMetadata-cc.html
new file mode 100644
index 0000000..e3c26ba
--- /dev/null
+++ b/doc/apidoc/html/files/TCCTitanMetadata-cc.html
@@ -0,0 +1,49 @@
+<html>
+<head>
+<title>f__compilationTime - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFunction">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="f__compilationTime"></a>f__compilationTime</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the compilation time of module</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>compilation time</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCTitanMetadata_Functions-ttcn.html b/doc/apidoc/html/files/TCCTitanMetadata_Functions-ttcn.html
new file mode 100644
index 0000000..8fdf382
--- /dev/null
+++ b/doc/apidoc/html/files/TCCTitanMetadata_Functions-ttcn.html
@@ -0,0 +1,98 @@
+<html>
+<head>
+<title>TCCTitanMetadata_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCTitanMetadata_Functions"></a>TCCTitanMetadata_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module support handling of Titan related metadata</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<h4 class=CHeading>Current Owner</h4>
+<p>Akos Pernek (EAKOPER)</p>
+<h4 class=CHeading>Last Review Date</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCTitanMetadata_Functions" >TCCTitanMetadata_Functions</a></td>
+<td class=SDescription>This module support handling of Titan related metadata</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f_compilationTime" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">f_compilationTime</a></td>
+<td class=SDescription>Return the compilation time of module</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f_compilationTime"></a>f_compilationTime</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_compilationTime() return charstring</td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>Return the compilation time of module</p>
+<h4 class=CHeading>Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>charstring</td>
+<td class=CDLDescription>compilation time</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_compilationTime() return charstring</td></tr></table></blockquote>Return the compilation time of module</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCUsefulFunctions.html b/doc/apidoc/html/files/TCCUsefulFunctions.html
new file mode 100644
index 0000000..fe184fb
--- /dev/null
+++ b/doc/apidoc/html/files/TCCUsefulFunctions.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+  <title>TCCUsefulFunctions - Info</title>
+  <link rel="stylesheet" type="text/css" href="../styles/main.css">
+  <script language=JavaScript src="../javascript/main.js">
+  </script>
+</head>
+<body class=FramedIndexPage onLoad="NDOnLoad()">
+
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// -->
+</script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+<div class=CFile id=MainTopic>
+<div class=CTopic>
+  <h1 class=CTitle>TCCUsefulFunctions</h1>
+  <div class=CBody>
+     <!--START_INFO -->
+     <div class=Summary>
+     <div class=STitle>Information</div>
+     <div class=SBorder>
+     <table border=0 cellspacing=0 cellpadding=0 class=STable>
+     <tr>
+<td>
+       <b>Welcome to TCCUsefulFunctions Reference Guide pages.</b>
+     </td></tr>
+     </table>
+     </div>
+     </div>
+     </div>
+  </div>
+</div>
+</div>
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// 
+-->
+</script>
+</body>
+</html>
diff --git a/doc/apidoc/html/files/TCCXPathSupport-cc.html b/doc/apidoc/html/files/TCCXPathSupport-cc.html
new file mode 100644
index 0000000..eb81cdd
--- /dev/null
+++ b/doc/apidoc/html/files/TCCXPathSupport-cc.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<title>XPathQuery - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFunction">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="XPathQuery"></a>XPathQuery</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>apply an XPath query on an XML document</p>
+<h4 class=CHeading>Parameters</h4>
+<p>xml_doc: the XML document to be processed.&nbsp; It is modeled by a pure TTCN-3 universal charstring and passed as an input parameter to this function</p>
+<p>xpath_query: the XPath Query.&nbsp; With this technology we can access a node of the XML tree.&nbsp; It is passed to the function as a universal charstring</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>universal charstring</td>
+<td class=CDLDescription>result of the query (information about one node of the XML tree)</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/TCCXPathSupport_Functions-ttcn.html b/doc/apidoc/html/files/TCCXPathSupport_Functions-ttcn.html
new file mode 100644
index 0000000..445f10f
--- /dev/null
+++ b/doc/apidoc/html/files/TCCXPathSupport_Functions-ttcn.html
@@ -0,0 +1,129 @@
+<html>
+<head>
+<title>TCCXPathSupport_Functions - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="TCCXPathSupport_Functions"></a>TCCXPathSupport_Functions</h1>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>This module makes it possible to handle XML data throughout processing the XML data structure (tree) with in the way of handling XPath queries.</p>
+<h4 class=CHeading>Module Parameters</h4>
+<p>-</p>
+<h4 class=CHeading>Module depends on</h4>
+<p>-</p>
+<h4 class=CHeading>Current Owner</h4>
+<p>Marton Godar (EMRTGOD)</p>
+<h4 class=CHeading>Last Review Date</h4>
+<p>-</p>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#TCCXPathSupport_Functions" >TCCXPathSupport_Functions</a></td>
+<td class=SDescription>This module makes it possible to handle XML data throughout processing the XML data structure (tree) with in the way of handling XPath queries.</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#XPathQuery" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">XPathQuery</a></td>
+<td class=SDescription>apply an XPath query on an XML document</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="XPathQuery"></a>XPathQuery</h3>
+<div class=CBody>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function XPathQuery (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>xml_doc,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>xpath_query</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return universal charstring</td></tr></table></td></tr></table></blockquote>
+<h4 class=CHeading>Purpose</h4>
+<p>apply an XPath query on an XML document</p>
+<h4 class=CHeading>Parameters</h4>
+<p>xml_doc: the XML document to be processed.&nbsp; It is modeled by a pure TTCN-3 universal charstring and passed as an input parameter to this function</p>
+<p>xpath_query: the XPath Query.&nbsp; With this technology we can access a node of the XML tree.&nbsp; It is passed to the function as a universal charstring</p>
+<h4 class=CHeading>Return Value</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>universal charstring</td>
+<td class=CDLDescription>result of the query (information about one node of the XML tree)</td></tr></table>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function XPathQuery (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>xml_doc,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>xpath_query</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return universal charstring</td></tr></table></td></tr></table></blockquote>apply an XPath query on an XML document</div></div>
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/aka_algorythm_set-h.html b/doc/apidoc/html/files/aka_algorythm_set-h.html
new file mode 100644
index 0000000..66b7faf
--- /dev/null
+++ b/doc/apidoc/html/files/aka_algorythm_set-h.html
@@ -0,0 +1,441 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/aka_algorythm_set.h - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="aka_algorythm_set.h"></a>aka_algorythm_set.h</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#aka_algorythm_set.h" >aka_algorythm_set.h</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Variables" >Variables</a></td>
+<td class=SDescription></td></tr>
+<tr class="SVariable SIndent1 SMarked">
+<td class=SEntry>
+<a href="#u8" >u8</a></td>
+<td class=SDescription>type for a byte</td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f1" >f1</a></td>
+<td class=SDescription>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f2345" >f2345</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns response RES, confidentiality key CK, integrity key IK and anonymity key AK.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#f1star" >f1star</a></td>
+<td class=SDescription>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#f5star" >f5star</a></td>
+<td class=SDescription>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#ComputeOPc" >ComputeOPc</a></td>
+<td class=SDescription>Function to compute OPc from OP and K. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#RijndaelKeySchedule" >RijndaelKeySchedule</a></td>
+<td class=SDescription>Rijndael key schedule function. </td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#RijndaelEncrypt" >RijndaelEncrypt</a></td>
+<td class=SDescription>Rijndael encryption function. </td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#KeyAdd" >KeyAdd</a></td>
+<td class=SDescription>Round key addition function</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#ByteSub" >ByteSub</a></td>
+<td class=SDescription>Byte substitution transformation</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#ShiftRow" >ShiftRow</a></td>
+<td class=SDescription>Row shift transformation</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#MixColumn" >MixColumn</a></td>
+<td class=SDescription>MixColumn transformation</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Variables"></a>Variables</h3></div></div>
+
+<div class="CVariable">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="u8"></a>u8</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>type for a byte</p></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f1"></a>f1</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>sqn</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  sequence number</td></tr>
+<tr>
+<td class=CDLEntry>amf</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  authentication management field</td></tr>
+<tr>
+<td class=CDLEntry>mac_a</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>unsigned char</b> -  network authentication code</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f2345"></a>f2345</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns response RES, confidentiality key CK, integrity key IK and anonymity key AK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>res</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>unsigned char</b> -  response</td></tr>
+<tr>
+<td class=CDLEntry>ck</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>unsigned char</b> -  confidentiality key</td></tr>
+<tr>
+<td class=CDLEntry>ik</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>unsigned char</b> -  integrity key</td></tr>
+<tr>
+<td class=CDLEntry>ak</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>unsigned char</b> -  anonymity key</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f1star"></a>f1star</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>sqn</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  sequence number</td></tr>
+<tr>
+<td class=CDLEntry>amf</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  authentication management field</td></tr>
+<tr>
+<td class=CDLEntry>mac_s</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>unsigned char</b> -  resynch authentication code</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="f5star"></a>f5star</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>k</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  key</td></tr>
+<tr>
+<td class=CDLEntry>rand</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -  random challenge</td></tr>
+<tr>
+<td class=CDLEntry>ak</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>unsigned char</b> -  resynch anonymity key AK</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="ComputeOPc"></a>ComputeOPc</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Function to compute OPc from OP and K.&nbsp;  Assumes key schedule has already been performed.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>op_c</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="RijndaelKeySchedule"></a>RijndaelKeySchedule</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Rijndael key schedule function.&nbsp;  Takes 16-byte key and creates all Rijndael&rsquo;s internal subkeys ready for encryption.</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>key</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> - key</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="RijndaelEncrypt"></a>RijndaelEncrypt</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Rijndael encryption function.&nbsp;  Takes 16-byte input and creates 16-byte output (using round keys already derived from 16-byte key).</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>input</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> - input</td></tr>
+<tr>
+<td class=CDLEntry>output</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> - output</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="KeyAdd"></a>KeyAdd</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Round key addition function</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>state</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -</td></tr>
+<tr>
+<td class=CDLEntry>roundKeys</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -</td></tr>
+<tr>
+<td class=CDLEntry>round</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="ByteSub"></a>ByteSub</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Byte substitution transformation</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>state</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="ShiftRow"></a>ShiftRow</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Row shift transformation</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>state</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="MixColumn"></a>MixColumn</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>MixColumn transformation</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>state</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>unsigned char</b> -</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/digcalc-h.html b/doc/apidoc/html/files/digcalc-h.html
new file mode 100644
index 0000000..a42d15d
--- /dev/null
+++ b/doc/apidoc/html/files/digcalc-h.html
@@ -0,0 +1,208 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/digcalc.h - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="digcalc.h"></a>digcalc.h</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#digcalc.h" >digcalc.h</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#CvtHex" >CvtHex</a></td>
+<td class=SDescription>Convert hash value to hexa string</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#DigestCalcHA1" >DigestCalcHA1</a></td>
+<td class=SDescription>Calculate HA1 as defined in HTTP digest specification</td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#DigestCalcResponse" >DigestCalcResponse</a></td>
+<td class=SDescription>Calculate request-digest/response-digest as defined in HTTP Digest specification</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="CvtHex"></a>CvtHex</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Convert hash value to hexa string</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>Bin</td>
+<td class=CDLDescription>
+<b>in</b> &lt;HASH&gt; - hash value to be converted</td></tr>
+<tr>
+<td class=CDLEntry>Hex</td>
+<td class=CDLDescription>
+<b>out</b> &lt;HASHHEX&gt; - HEXA value of hash</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="DigestCalcHA1"></a>DigestCalcHA1</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate HA1 as defined in HTTP digest specification</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pszAlg</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -     a string indicating a pair of algorithms used to produce the digest and a checksum</td></tr>
+<tr>
+<td class=CDLEntry>pszUserName</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -    user name</td></tr>
+<tr>
+<td class=CDLEntry>pszRealm</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   user realm</td></tr>
+<tr>
+<td class=CDLEntry>pszPassword</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  user password</td></tr>
+<tr>
+<td class=CDLEntry>pszpwdlen</td>
+<td class=CDLDescription>
+<b>in</b> integer - lenght of the user password</td></tr>
+<tr>
+<td class=CDLEntry>pszNonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -   a server-specified data string which may be uniquely generated each time a 401 response is made</td></tr>
+<tr>
+<td class=CDLEntry>pszCNonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  client nonce</td></tr>
+<tr>
+<td class=CDLEntry>SessionKey</td>
+<td class=CDLDescription>
+<b>out</b> &lt;HASHHEX&gt; - HEXA value of hash HA1</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>HA1 = MD5(A1) = MD5(username:realm:password)</p>
+<h4 class=CHeading>If algorithm (pszAlg) is md5-sess</h4>
+<p>HA1 = MD5(HA1:nonce:cNonce)</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="DigestCalcResponse"></a>DigestCalcResponse</h3>
+<div class=CBody>
+<h4 class=CHeading>Purpose</h4>
+<p>Calculate request-digest/response-digest as defined in HTTP Digest specification</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>pszNonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  nonce</td></tr>
+<tr>
+<td class=CDLEntry>pszNonceCount</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  nonce count</td></tr>
+<tr>
+<td class=CDLEntry>pszCNonce</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  client nonce</td></tr>
+<tr>
+<td class=CDLEntry>pszQop</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> -  qop-value: &ldquo;&rdquo;, &ldquo;auth&rdquo;, &ldquo;auth-int&rdquo;</td></tr>
+<tr>
+<td class=CDLEntry>pszMethod</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - method (from the request)</td></tr>
+<tr>
+<td class=CDLEntry>pszDigestUri</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - digest URI</td></tr>
+<tr>
+<td class=CDLEntry>HEntity</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>charstring</b> - H(entity body) if qop=&rdquo;auth-int&rdquo;</td></tr>
+<tr>
+<td class=CDLEntry>Response</td>
+<td class=CDLDescription>
+<b>out</b> &lt;HASHHEX&gt; - HEXA Digest response</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>Default: HA2 = MD5(A2) = MD5(method:digestURI)</p>
+<h4 class=CHeading>If qop is &ldquo;auth-init&rdquo;</h4>
+<p>HA2 = MD5(method:digestURI:HEntity)</p>
+<p>Default: response = MD5(HA1:nonce)</p>
+<h4 class=CHeading>If Qop is not empty string</h4>
+<p>
+<b>response</b> = MD5(HA1:nonce:nonceCount:cNonce:Qop:HA2)</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/files/zuc-h.html b/doc/apidoc/html/files/zuc-h.html
new file mode 100644
index 0000000..18b4112
--- /dev/null
+++ b/doc/apidoc/html/files/zuc-h.html
@@ -0,0 +1,163 @@
+<html>
+<head>
+<title>/vobs/ttcn/TCC_Common/Libraries/TCCUsefulFunctions_CNL113472/src/zuc.h - TCCUsefulFunctions</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedContentPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content>
+<div class="CFile">
+<div class=CTopic id=MainTopic>
+<h1 class=CTitle>
+<a name="zuc.h"></a>zuc.h</h1>
+<div class=CBody>
+<!--START_ND_SUMMARY-->
+<div class=Summary>
+<div class=STitle>Summary</div>
+<div class=SBorder>
+<table border=0 cellspacing=0 cellpadding=0 class=STable>
+<tr class="SMain">
+<td class=SEntry>
+<a href="#zuc.h" >zuc.h</a></td>
+<td class=SDescription></td></tr>
+<tr class="SGroup">
+<td class=SEntry>
+<a href="#Functions" >Functions</a></td>
+<td class=SDescription></td></tr>
+<tr class="SFunction SIndent1 SMarked">
+<td class=SEntry>
+<a href="#EEA3" >EEA3</a></td>
+<td class=SDescription>Purpose: Encrypt message using the confidentiality algorithm 128-EEA3</td></tr>
+<tr class="SFunction SIndent1">
+<td class=SEntry>
+<a href="#EIA3" >EIA3</a></td>
+<td class=SDescription>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3</td></tr></table></div></div>
+<!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="EEA3"></a>EEA3</h3>
+<div class=CBody>
+<p>Purpose: Encrypt message using the confidentiality algorithm 128-EEA3</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>CK</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u8*</b>    - confidentiality key</td></tr>
+<tr>
+<td class=CDLEntry>COUNT</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32</b>    - counter</td></tr>
+<tr>
+<td class=CDLEntry>BEARER</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32</b>    - bearer identity</td></tr>
+<tr>
+<td class=CDLEntry>DIRECTION</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32</b>    - direction of transmission</td></tr>
+<tr>
+<td class=CDLEntry>LENGTH</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32</b>    - length of input bit stream</td></tr>
+<tr>
+<td class=CDLEntry>M</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32*</b>   - input bit stream (message to be encrypted)</td></tr>
+<tr>
+<td class=CDLEntry>C</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>u32*</b>  - output bit stream (encrypted message)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+<div class="CFunction">
+<div class=CTopic>
+<h3 class=CTitle>
+<a name="EIA3"></a>EIA3</h3>
+<div class=CBody>
+<p>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3</p>
+<h4 class=CHeading>Parameters</h4>
+<table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList>
+<tr>
+<td class=CDLEntry>IK</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u8*</b>   - integrity key key</td></tr>
+<tr>
+<td class=CDLEntry>COUNT</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32</b>   - counter</td></tr>
+<tr>
+<td class=CDLEntry>DIRECTION</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32</b>   - direction of transmission</td></tr>
+<tr>
+<td class=CDLEntry>BEARER</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32</b>   - bearer identity</td></tr>
+<tr>
+<td class=CDLEntry>LENGTH</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32</b>   - length of input bit stream</td></tr>
+<tr>
+<td class=CDLEntry>M</td>
+<td class=CDLDescription>
+<b>in</b>
+<b>u32*</b>  - input bit stream (the message)</td></tr>
+<tr>
+<td class=CDLEntry>MAC</td>
+<td class=CDLDescription>
+<b>out</b>
+<b>u32*</b> - message authentication code (MAC)</td></tr></table>
+<h4 class=CHeading>Return Value</h4>
+<p>-</p>
+<h4 class=CHeading>Errors</h4>
+<p>-</p>
+<h4 class=CHeading>Detailed description</h4>
+<p>-</p></div></div></div>
+
+</div>
+<!--Content-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index.html b/doc/apidoc/html/index.html
new file mode 100644
index 0000000..45487b7
--- /dev/null
+++ b/doc/apidoc/html/index.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>TCCUsefulFunctions</title></head>
+
+<!--  Copyright (c) 2015 Ericsson AB -->
+
+<frameset cols="250,*">
+  <frame name=Menu src="menu.html">
+  <frame name=Content src="files/TCCUsefulFunctions.html">
+</frameset>
+
+<noframes>
+This documentation was designed for use with frames.  However, you can still use it by <a href="menu.html">starting from the menu page</a>.
+<script language=JavaScript>
+<!--
+location.href="menu.html";
+// -->
+</script>
+</noframes>
+</html>
diff --git a/doc/apidoc/html/index.html~ b/doc/apidoc/html/index.html~
new file mode 100644
index 0000000..95dcc7c
--- /dev/null
+++ b/doc/apidoc/html/index.html~
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN" "http://www.w3.org/TR/REC-html40/frameset.dtd">
+<html>
+<head>
+<title>TCCUsefulFunctions</title></head>
+
+<!--  Copyright (c) 2015 Ericsson -->
+
+<frameset cols="250,*">
+  <frame name=Menu src="menu.html">
+  <frame name=Content src="files/TCCUsefulFunctions.html">
+</frameset>
+
+<noframes>
+This documentation was designed for use with frames.  However, you can still use it by <a href="menu.html">starting from the menu page</a>.
+<script language=JavaScript>
+<!--
+location.href="menu.html";
+// -->
+</script>
+</noframes>
+</html>
diff --git a/doc/apidoc/html/index/Constants.html b/doc/apidoc/html/index/Constants.html
new file mode 100644
index 0000000..f94e9b9
--- /dev/null
+++ b/doc/apidoc/html/index/Constants.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - Constant Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Constant Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; B &middot; <a href="#C">C</a> &middot; D &middot; E &middot; F &middot; G &middot; H &middot; I &middot; J &middot; K &middot; L &middot; M &middot; N &middot; O &middot; <a href="#P">P</a> &middot; Q &middot; R &middot; S &middot; T &middot; U &middot; V &middot; W &middot; X &middot; Y &middot; Z</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="C"></a>C</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#c_TCCIPsec_anyPort" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>c_TCCIPsec_anyPort</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#c_TCCIPsec_prefixAll" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>c_TCCIPsec_prefixAll</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="P"></a>P</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#pi" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>pi</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CConstant>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>const integer c_TCCIPsec_anyPort := 0</td></tr></table></blockquote>Provides port value representing any port</div></div>
+<div class=CToolTip id="tt2">
+<div class=CConstant>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>const integer c_TCCIPsec_prefixAll := -1</td></tr></table></blockquote>Provides port value representing any port</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt3">
+<div class=CConstant>Provide the value of pi</div></div>
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index/Files.html b/doc/apidoc/html/index/Files.html
new file mode 100644
index 0000000..282e94e
--- /dev/null
+++ b/doc/apidoc/html/index/Files.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - File Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>File Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; B &middot; C &middot; <a href="#D">D</a> &middot; E &middot; F &middot; G &middot; H &middot; I &middot; J &middot; K &middot; L &middot; M &middot; N &middot; O &middot; P &middot; Q &middot; <a href="#R">R</a> &middot; S &middot; <a href="#T">T</a> &middot; U &middot; V &middot; W &middot; X &middot; Y &middot; <a href="#Z">Z</a></div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="A"></a>A</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#aka_algorythm_set.h"  class=ISymbol>aka_algorythm_set.h</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="D"></a>D</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/digcalc-h.html#digcalc.h"  class=ISymbol>digcalc.h</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="R"></a>R</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCRegexp_Functions-ttcn.html#Regexp_Functions" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>Regexp_Functions</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="T"></a>T</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCAssertion_Functions-ttcn.html#TCCAssertion_Functions" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>TCCAssertion_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#TCCConversion.cc"  class=ISymbol>TCCConversion.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#TCCConversion_Functions" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>TCCConversion_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#TCCDateTime.cc"  class=ISymbol>TCCDateTime.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#TCCDateTime_Functions" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>TCCDateTime_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#TCCEncoding.cc"  class=ISymbol>TCCEncoding.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#TCCEncoding_Functions" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>TCCEncoding_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv-cc.html#TCCEnv.cc"  class=ISymbol>TCCEnv.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#TCCEnv_Functions" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>TCCEnv_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#TCCFileIO.cc"  class=ISymbol>TCCFileIO.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#TCCFileIO_Functions" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>TCCFileIO_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#TCCFileSystem_Functions" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>TCCFileSystem_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#TCCInterface.cc"  class=ISymbol>TCCInterface.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#TCCInterface_Functions" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>TCCInterface_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Definitions.ttcn"  class=ISymbol>TCCIPsec_Definitions.ttcn</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#TCCIPsec_Functions" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>TCCIPsec_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#TCCMaths.cc"  class=ISymbol>TCCMaths.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#TCCMaths_Functions" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>TCCMaths_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#TCCMaths_GenericTypes" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>TCCMaths_GenericTypes</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#TCCMessageHandling_Functions" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>TCCMessageHandling_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#TCCSecurity.cc"  class=ISymbol>TCCSecurity.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#TCCSecurity_Functions" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>TCCSecurity_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#TCCTemplate_Functions" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>TCCTemplate_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#TCCTitanMetadata_Functions" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>TCCTitanMetadata_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#TCCXPathSupport_Functions" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>TCCXPathSupport_Functions</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="Z"></a>Z</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/zuc-h.html#zuc.h"  class=ISymbol>zuc.h</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFile>This module provides a non TTCN regular expression handling functions</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2">
+<div class=CFile>This module supports assertion handling</div></div>
+<div class=CToolTip id="tt3">
+<div class=CFile>This module supports string conversions</div></div>
+<div class=CToolTip id="tt4">
+<div class=CFile>This module supports date and time handling</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFile>This module supports message based encoding of certain types</div></div>
+<div class=CToolTip id="tt6">
+<div class=CFile>This module supports handling of environment e.g. </div></div>
+<div class=CToolTip id="tt7">
+<div class=CFile>This module supports file I/O handling</div></div>
+<div class=CToolTip id="tt8">
+<div class=CFile>This module supports File System information</div></div>
+<div class=CToolTip id="tt9">
+<div class=CFile>This module supports network related operations</div></div>
+<div class=CToolTip id="tt10">
+<div class=CFile>This module provides access to the IPsec parameter databases: SADB and SPDB</div></div>
+<div class=CToolTip id="tt11">
+<div class=CFile>This module supports mathematics</div></div>
+<div class=CToolTip id="tt12">
+<div class=CFile>This module stores generic types for math functions</div></div>
+<div class=CToolTip id="tt13">
+<div class=CFile>This module provide message handling functions</div></div>
+<div class=CToolTip id="tt14">
+<div class=CFile>This module supports security based operations e.g. </div></div>
+<div class=CToolTip id="tt15">
+<div class=CFile>This module supports template handling Originally for TitanSIM R2 needs it for substituting substrings in a charstring template.</div></div>
+<div class=CToolTip id="tt16">
+<div class=CFile>This module support handling of Titan related metadata</div></div>
+<div class=CToolTip id="tt17">
+<div class=CFile>This module makes it possible to handle XML data throughout processing the XML data structure (tree) with in the way of handling XPath queries.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index/Functions.html b/doc/apidoc/html/index/Functions.html
new file mode 100644
index 0000000..bff803c
--- /dev/null
+++ b/doc/apidoc/html/index/Functions.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - Function Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Function Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; <a href="#B">B</a> &middot; <a href="#C">C</a> &middot; <a href="#D">D</a> &middot; <a href="#E">E</a> &middot; <a href="Functions2.html#F">F</a> &middot; G &middot; H &middot; I &middot; J &middot; <a href="Functions3.html#K">K</a> &middot; L &middot; <a href="Functions3.html#M">M</a> &middot; N &middot; O &middot; P &middot; Q &middot; <a href="Functions3.html#R">R</a> &middot; <a href="Functions3.html#S">S</a> &middot; T &middot; U &middot; V &middot; W &middot; <a href="Functions3.html#X">X</a> &middot; Y &middot; Z</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="B"></a>B</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ByteSub" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>ByteSub</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="C"></a>C</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ComputeOPc" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>ComputeOPc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/digcalc-h.html#CvtHex" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>CvtHex</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="D"></a>D</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#dec__LDIF__Base64" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>dec__LDIF__Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#dec__MIME__Base64" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>dec__MIME__Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#dec_LDIF_Base64" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>dec_LDIF_Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#dec_MIME_Base64" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>dec_MIME_Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/digcalc-h.html#DigestCalcHA1" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>DigestCalcHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/digcalc-h.html#DigestCalcResponse" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>DigestCalcResponse</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="E"></a>E</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/zuc-h.html#EEA3" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>EEA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/zuc-h.html#EIA3" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>EIA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#enc__LDIF__Base64" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>enc__LDIF__Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#enc__MIME__Base64" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>enc__MIME__Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#enc_LDIF_Base64" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>enc_LDIF_Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#enc_MIME_Base64" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>enc_MIME_Base64</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CFunction>Byte substitution transformation</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2">
+<div class=CFunction>Function to compute OPc from OP and K. </div></div>
+<div class=CToolTip id="tt3">
+<div class=CFunction>Convert hash value to hexa string</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt4">
+<div class=CFunction>Decode message from LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>Decode message from MIME Base64 format (RFC 2045)</div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function dec_LDIF_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_b64</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Decode message from LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt7">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function dec_MIME_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_b64</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Decode message from MIME Base64 format (RFC 2045)</div></div>
+<div class=CToolTip id="tt8">
+<div class=CFunction>Calculate HA1 as defined in HTTP digest specification</div></div>
+<div class=CToolTip id="tt9">
+<div class=CFunction>Calculate request-digest/response-digest as defined in HTTP Digest specification</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt10">
+<div class=CFunction>Purpose: Encrypt message using the confidentiality algorithm 128-EEA3</div></div>
+<div class=CToolTip id="tt11">
+<div class=CFunction>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3</div></div>
+<div class=CToolTip id="tt12">
+<div class=CFunction>Encode message to LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt13">
+<div class=CFunction>Encode message to MIME Base64 format (RFC 2045)</div></div>
+<div class=CToolTip id="tt14">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function enc_LDIF_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>p_msg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Encode message to LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt15">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function enc_MIME_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>p_msg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Encode message to MIME Base64 format (RFC 2045)</div></div>
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index/Functions2.html b/doc/apidoc/html/index/Functions2.html
new file mode 100644
index 0000000..b818dad
--- /dev/null
+++ b/doc/apidoc/html/index/Functions2.html
@@ -0,0 +1,3878 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - Function Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Function Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; <a href="Functions.html#B">B</a> &middot; <a href="Functions.html#C">C</a> &middot; <a href="Functions.html#D">D</a> &middot; <a href="Functions.html#E">E</a> &middot; <a href="#F">F</a> &middot; G &middot; H &middot; I &middot; J &middot; <a href="Functions3.html#K">K</a> &middot; L &middot; <a href="Functions3.html#M">M</a> &middot; N &middot; O &middot; P &middot; Q &middot; <a href="Functions3.html#R">R</a> &middot; <a href="Functions3.html#S">S</a> &middot; T &middot; U &middot; V &middot; W &middot; <a href="Functions3.html#X">X</a> &middot; Y &middot; Z</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="F"></a>F</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__acos" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>f__acos</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__addOctetstring" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>f__addOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__asin" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>f__asin</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCAssertion-cc.html#f__assert" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>f__assert</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__averageFL" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>f__averageFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__averageIL" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>f__averageIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate__HMAC__MD5" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>f__calculate__HMAC__MD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate__HMAC__SHA1" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>f__calculate__HMAC__SHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate128__EEA3" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>f__calculate128__EEA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate128__EIA3" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>f__calculate128__EIA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateDigestHA1" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>f__calculateDigestHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateDigestResponse" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>f__calculateDigestResponse</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateHMACMD5" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>f__calculateHMACMD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateMD5" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=ISymbol>f__calculateMD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__ceil" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=ISymbol>f__ceil</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTitanMetadata-cc.html#f__compilationTime" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=ISymbol>f__compilationTime</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__compOctetstring" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=ISymbol>f__compOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__cos" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=ISymbol>f__cos</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__cosVL" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=ISymbol>f__cosVL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__ctime" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=ISymbol>f__ctime</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__ctime__UTC" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=ISymbol>f__ctime__UTC</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#f__dec__TBCD" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=ISymbol>f__dec__TBCD</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__deleteIP" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=ISymbol>f__deleteIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__EAPSIM__A3A8" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')" class=ISymbol>f__EAPSIM__A3A8</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#f__enc__TBCD" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')" class=ISymbol>f__enc__TBCD</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__exp" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')" class=ISymbol>f__exp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__chdir" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')" class=ISymbol>f__FIO__chdir</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__close" id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')" class=ISymbol>f__FIO__close</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__flush" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')" class=ISymbol>f__FIO__flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__get__error__code" id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')" class=ISymbol>f__FIO__get__error__code</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__get__error__string" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')" class=ISymbol>f__FIO__get__error__string</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open" id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')" class=ISymbol>f__FIO__open</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__rdwr" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')" class=ISymbol>f__FIO__open__append__rdwr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__rdwr__excl" id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')" class=ISymbol>f__FIO__open__append__rdwr__excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__wronly" id=link50 onMouseOver="ShowTip(event, 'tt50', 'link50')" onMouseOut="HideTip('tt50')" class=ISymbol>f__FIO__open__append__wronly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__wronly__excl" id=link51 onMouseOver="ShowTip(event, 'tt51', 'link51')" onMouseOut="HideTip('tt51')" class=ISymbol>f__FIO__open__append__wronly__excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__rdonly" id=link52 onMouseOver="ShowTip(event, 'tt52', 'link52')" onMouseOut="HideTip('tt52')" class=ISymbol>f__FIO__open__rdonly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__rdwr" id=link53 onMouseOver="ShowTip(event, 'tt53', 'link53')" onMouseOut="HideTip('tt53')" class=ISymbol>f__FIO__open__trunc__rdwr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__rdwr__excl" id=link54 onMouseOver="ShowTip(event, 'tt54', 'link54')" onMouseOut="HideTip('tt54')" class=ISymbol>f__FIO__open__trunc__rdwr__excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__wronly" id=link55 onMouseOver="ShowTip(event, 'tt55', 'link55')" onMouseOut="HideTip('tt55')" class=ISymbol>f__FIO__open__trunc__wronly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__wronly__excl" id=link56 onMouseOver="ShowTip(event, 'tt56', 'link56')" onMouseOut="HideTip('tt56')" class=ISymbol>f__FIO__open__trunc__wronly__excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__opened" id=link57 onMouseOver="ShowTip(event, 'tt57', 'link57')" onMouseOut="HideTip('tt57')" class=ISymbol>f__FIO__opened</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read" id=link58 onMouseOver="ShowTip(event, 'tt58', 'link58')" onMouseOut="HideTip('tt58')" class=ISymbol>f__FIO__read</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data" id=link59 onMouseOver="ShowTip(event, 'tt59', 'link59')" onMouseOut="HideTip('tt59')" class=ISymbol>f__FIO__read__data</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data__TLV" id=link60 onMouseOver="ShowTip(event, 'tt60', 'link60')" onMouseOut="HideTip('tt60')" class=ISymbol>f__FIO__read__data__TLV</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data__until" id=link61 onMouseOver="ShowTip(event, 'tt61', 'link61')" onMouseOut="HideTip('tt61')" class=ISymbol>f__FIO__read__data__until</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__text" id=link62 onMouseOver="ShowTip(event, 'tt62', 'link62')" onMouseOut="HideTip('tt62')" class=ISymbol>f__FIO__read__text</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__text__until" id=link63 onMouseOver="ShowTip(event, 'tt63', 'link63')" onMouseOut="HideTip('tt63')" class=ISymbol>f__FIO__read__text__until</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__realize__error" id=link64 onMouseOver="ShowTip(event, 'tt64', 'link64')" onMouseOut="HideTip('tt64')" class=ISymbol>f__FIO__realize__error</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__backward" id=link65 onMouseOver="ShowTip(event, 'tt65', 'link65')" onMouseOut="HideTip('tt65')" class=ISymbol>f__FIO__seek__backward</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__end" id=link66 onMouseOver="ShowTip(event, 'tt66', 'link66')" onMouseOut="HideTip('tt66')" class=ISymbol>f__FIO__seek__end</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__forward" id=link67 onMouseOver="ShowTip(event, 'tt67', 'link67')" onMouseOut="HideTip('tt67')" class=ISymbol>f__FIO__seek__forward</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__home" id=link68 onMouseOver="ShowTip(event, 'tt68', 'link68')" onMouseOut="HideTip('tt68')" class=ISymbol>f__FIO__seek__home</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__set__filedescriptor__previousline" id=link69 onMouseOver="ShowTip(event, 'tt69', 'link69')" onMouseOut="HideTip('tt69')" class=ISymbol>f__FIO__set__filedescriptor__previousline</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write" id=link70 onMouseOver="ShowTip(event, 'tt70', 'link70')" onMouseOut="HideTip('tt70')" class=ISymbol>f__FIO__write</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__data" id=link71 onMouseOver="ShowTip(event, 'tt71', 'link71')" onMouseOut="HideTip('tt71')" class=ISymbol>f__FIO__write__data</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__data__flush" id=link72 onMouseOver="ShowTip(event, 'tt72', 'link72')" onMouseOut="HideTip('tt72')" class=ISymbol>f__FIO__write__data__flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__text" id=link73 onMouseOver="ShowTip(event, 'tt73', 'link73')" onMouseOut="HideTip('tt73')" class=ISymbol>f__FIO__write__text</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__text__flush" id=link74 onMouseOver="ShowTip(event, 'tt74', 'link74')" onMouseOut="HideTip('tt74')" class=ISymbol>f__FIO__write__text__flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__floor" id=link75 onMouseOver="ShowTip(event, 'tt75', 'link75')" onMouseOut="HideTip('tt75')" class=ISymbol>f__floor</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getCurrentDateWithOffset" id=link76 onMouseOver="ShowTip(event, 'tt76', 'link76')" onMouseOut="HideTip('tt76')" class=ISymbol>f__getCurrentDateWithOffset</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getCurrentGMTDate" id=link77 onMouseOver="ShowTip(event, 'tt77', 'link77')" onMouseOut="HideTip('tt77')" class=ISymbol>f__getCurrentGMTDate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv-cc.html#f__GetEnv" id=link78 onMouseOver="ShowTip(event, 'tt78', 'link78')" onMouseOut="HideTip('tt78')" class=ISymbol>f__GetEnv</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getHostName" id=link79 onMouseOver="ShowTip(event, 'tt79', 'link79')" onMouseOut="HideTip('tt79')" class=ISymbol>f__getHostName</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getIP" id=link80 onMouseOver="ShowTip(event, 'tt80', 'link80')" onMouseOut="HideTip('tt80')" class=ISymbol>f__getIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getIpAddr" id=link81 onMouseOver="ShowTip(event, 'tt81', 'link81')" onMouseOut="HideTip('tt81')" class=ISymbol>f__getIpAddr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getTimeFormatted" id=link82 onMouseOver="ShowTip(event, 'tt82', 'link82')" onMouseOut="HideTip('tt82')" class=ISymbol>f__getTimeFormatted</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__calculateAUTN" id=link83 onMouseOver="ShowTip(event, 'tt83', 'link83')" onMouseOut="HideTip('tt83')" class=ISymbol>f__IMSAKA__calculateAUTN</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f1" id=link84 onMouseOver="ShowTip(event, 'tt84', 'link84')" onMouseOut="HideTip('tt84')" class=ISymbol>f__IMSAKA__f1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f1star" id=link85 onMouseOver="ShowTip(event, 'tt85', 'link85')" onMouseOut="HideTip('tt85')" class=ISymbol>f__IMSAKA__f1star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f2" id=link86 onMouseOver="ShowTip(event, 'tt86', 'link86')" onMouseOut="HideTip('tt86')" class=ISymbol>f__IMSAKA__f2</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f2345" id=link87 onMouseOver="ShowTip(event, 'tt87', 'link87')" onMouseOut="HideTip('tt87')" class=ISymbol>f__IMSAKA__f2345</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f3" id=link88 onMouseOver="ShowTip(event, 'tt88', 'link88')" onMouseOut="HideTip('tt88')" class=ISymbol>f__IMSAKA__f3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f4" id=link89 onMouseOver="ShowTip(event, 'tt89', 'link89')" onMouseOut="HideTip('tt89')" class=ISymbol>f__IMSAKA__f4</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f5" id=link90 onMouseOver="ShowTip(event, 'tt90', 'link90')" onMouseOut="HideTip('tt90')" class=ISymbol>f__IMSAKA__f5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f5star" id=link91 onMouseOver="ShowTip(event, 'tt91', 'link91')" onMouseOut="HideTip('tt91')" class=ISymbol>f__IMSAKA__f5star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__log" id=link92 onMouseOver="ShowTip(event, 'tt92', 'link92')" onMouseOut="HideTip('tt92')" class=ISymbol>f__log</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__maxFL" id=link93 onMouseOver="ShowTip(event, 'tt93', 'link93')" onMouseOut="HideTip('tt93')" class=ISymbol>f__maxFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__maxIL" id=link94 onMouseOver="ShowTip(event, 'tt94', 'link94')" onMouseOut="HideTip('tt94')" class=ISymbol>f__maxIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__minFL" id=link95 onMouseOver="ShowTip(event, 'tt95', 'link95')" onMouseOut="HideTip('tt95')" class=ISymbol>f__minFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__minIL" id=link96 onMouseOver="ShowTip(event, 'tt96', 'link96')" onMouseOut="HideTip('tt96')" class=ISymbol>f__minIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powFF" id=link97 onMouseOver="ShowTip(event, 'tt97', 'link97')" onMouseOut="HideTip('tt97')" class=ISymbol>f__powFF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powFI" id=link98 onMouseOver="ShowTip(event, 'tt98', 'link98')" onMouseOut="HideTip('tt98')" class=ISymbol>f__powFI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powIF" id=link99 onMouseOver="ShowTip(event, 'tt99', 'link99')" onMouseOut="HideTip('tt99')" class=ISymbol>f__powIF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powII" id=link100 onMouseOver="ShowTip(event, 'tt100', 'link100')" onMouseOut="HideTip('tt100')" class=ISymbol>f__powII</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv-cc.html#f__PutEnv" id=link101 onMouseOver="ShowTip(event, 'tt101', 'link101')" onMouseOut="HideTip('tt101')" class=ISymbol>f__PutEnv</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__putInLowercase" id=link102 onMouseOver="ShowTip(event, 'tt102', 'link102')" onMouseOut="HideTip('tt102')" class=ISymbol>f__putInLowercase</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__putInUppercase" id=link103 onMouseOver="ShowTip(event, 'tt103', 'link103')" onMouseOut="HideTip('tt103')" class=ISymbol>f__putInUppercase</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setInterfaceDown" id=link104 onMouseOver="ShowTip(event, 'tt104', 'link104')" onMouseOut="HideTip('tt104')" class=ISymbol>f__setInterfaceDown</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setInterfaceUp" id=link105 onMouseOver="ShowTip(event, 'tt105', 'link105')" onMouseOut="HideTip('tt105')" class=ISymbol>f__setInterfaceUp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setIP" id=link106 onMouseOver="ShowTip(event, 'tt106', 'link106')" onMouseOut="HideTip('tt106')" class=ISymbol>f__setIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sin" id=link107 onMouseOver="ShowTip(event, 'tt107', 'link107')" onMouseOut="HideTip('tt107')" class=ISymbol>f__sin</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sinVL" id=link108 onMouseOver="ShowTip(event, 'tt108', 'link108')" onMouseOut="HideTip('tt108')" class=ISymbol>f__sinVL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrF" id=link109 onMouseOver="ShowTip(event, 'tt109', 'link109')" onMouseOut="HideTip('tt109')" class=ISymbol>f__sqrF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrI" id=link110 onMouseOver="ShowTip(event, 'tt110', 'link110')" onMouseOut="HideTip('tt110')" class=ISymbol>f__sqrI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrtF" id=link111 onMouseOver="ShowTip(event, 'tt111', 'link111')" onMouseOut="HideTip('tt111')" class=ISymbol>f__sqrtF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrtI" id=link112 onMouseOver="ShowTip(event, 'tt112', 'link112')" onMouseOut="HideTip('tt112')" class=ISymbol>f__sqrtI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdFL" id=link113 onMouseOver="ShowTip(event, 'tt113', 'link113')" onMouseOut="HideTip('tt113')" class=ISymbol>f__stdFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdFLL" id=link114 onMouseOver="ShowTip(event, 'tt114', 'link114')" onMouseOut="HideTip('tt114')" class=ISymbol>f__stdFLL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdIL" id=link115 onMouseOver="ShowTip(event, 'tt115', 'link115')" onMouseOut="HideTip('tt115')" class=ISymbol>f__stdIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdILL" id=link116 onMouseOver="ShowTip(event, 'tt116', 'link116')" onMouseOut="HideTip('tt116')" class=ISymbol>f__stdILL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__subOctetstring" id=link117 onMouseOver="ShowTip(event, 'tt117', 'link117')" onMouseOut="HideTip('tt117')" class=ISymbol>f__subOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f__TCCSecurity__hex2char</span>
+<div class=ISubIndex>
+<a href="../files/TCCSecurity-cc.html#f__TCCSecurity__hex2char" id=link118 onMouseOver="ShowTip(event, 'tt118', 'link118')" onMouseOut="HideTip('tt118')" class=IFile>TCCSecurity.cc</a>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f__TCCSecurity__hex2char" id=link119 onMouseOver="ShowTip(event, 'tt118', 'link119')" onMouseOut="HideTip('tt118')" class=IFile>TCCSecurity_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__tic" id=link120 onMouseOver="ShowTip(event, 'tt119', 'link120')" onMouseOut="HideTip('tt119')" class=ISymbol>f__tic</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time" id=link121 onMouseOver="ShowTip(event, 'tt120', 'link121')" onMouseOut="HideTip('tt120')" class=ISymbol>f__time</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time2sec" id=link122 onMouseOver="ShowTip(event, 'tt121', 'link122')" onMouseOut="HideTip('tt121')" class=ISymbol>f__time2sec</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time2sec__UTC" id=link123 onMouseOver="ShowTip(event, 'tt122', 'link123')" onMouseOut="HideTip('tt122')" class=ISymbol>f__time2sec__UTC</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__timeDiff" id=link124 onMouseOver="ShowTip(event, 'tt123', 'link124')" onMouseOut="HideTip('tt123')" class=ISymbol>f__timeDiff</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__toc" id=link125 onMouseOver="ShowTip(event, 'tt124', 'link125')" onMouseOut="HideTip('tt124')" class=ISymbol>f__toc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__updateFL" id=link126 onMouseOver="ShowTip(event, 'tt125', 'link126')" onMouseOut="HideTip('tt125')" class=ISymbol>f__updateFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__updateIL" id=link127 onMouseOver="ShowTip(event, 'tt126', 'link127')" onMouseOut="HideTip('tt126')" class=ISymbol>f__updateIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_acos" id=link128 onMouseOver="ShowTip(event, 'tt127', 'link128')" onMouseOut="HideTip('tt127')" class=ISymbol>f_acos</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_addOctetstring" id=link129 onMouseOver="ShowTip(event, 'tt128', 'link129')" onMouseOut="HideTip('tt128')" class=ISymbol>f_addOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_asin" id=link130 onMouseOver="ShowTip(event, 'tt129', 'link130')" onMouseOut="HideTip('tt129')" class=ISymbol>f_asin</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCAssertion_Functions-ttcn.html#f_assert" id=link131 onMouseOver="ShowTip(event, 'tt130', 'link131')" onMouseOut="HideTip('tt130')" class=ISymbol>f_assert</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_averageFL" id=link132 onMouseOver="ShowTip(event, 'tt131', 'link132')" onMouseOut="HideTip('tt131')" class=ISymbol>f_averageFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_averageIL" id=link133 onMouseOver="ShowTip(event, 'tt132', 'link133')" onMouseOut="HideTip('tt132')" class=ISymbol>f_averageIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate_HMAC_MD5" id=link134 onMouseOver="ShowTip(event, 'tt133', 'link134')" onMouseOut="HideTip('tt133')" class=ISymbol>f_calculate_HMAC_MD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate_HMAC_SHA1" id=link135 onMouseOver="ShowTip(event, 'tt134', 'link135')" onMouseOut="HideTip('tt134')" class=ISymbol>f_calculate_HMAC_SHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate128_EEA3" id=link136 onMouseOver="ShowTip(event, 'tt135', 'link136')" onMouseOut="HideTip('tt135')" class=ISymbol>f_calculate128_EEA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate128_EIA3" id=link137 onMouseOver="ShowTip(event, 'tt136', 'link137')" onMouseOut="HideTip('tt136')" class=ISymbol>f_calculate128_EIA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateDigestHA1" id=link138 onMouseOver="ShowTip(event, 'tt137', 'link138')" onMouseOut="HideTip('tt137')" class=ISymbol>f_calculateDigestHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateDigestResponse" id=link139 onMouseOver="ShowTip(event, 'tt138', 'link139')" onMouseOut="HideTip('tt138')" class=ISymbol>f_calculateDigestResponse</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateHMACMD5" id=link140 onMouseOver="ShowTip(event, 'tt139', 'link140')" onMouseOut="HideTip('tt139')" class=ISymbol>f_calculateHMACMD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateMD5" id=link141 onMouseOver="ShowTip(event, 'tt140', 'link141')" onMouseOut="HideTip('tt140')" class=ISymbol>f_calculateMD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_ceil" id=link142 onMouseOver="ShowTip(event, 'tt141', 'link142')" onMouseOut="HideTip('tt141')" class=ISymbol>f_ceil</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_charstr2unichar" id=link143 onMouseOver="ShowTip(event, 'tt142', 'link143')" onMouseOut="HideTip('tt142')" class=ISymbol>f_charstr2unichar</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#f_compilationTime" id=link144 onMouseOver="ShowTip(event, 'tt143', 'link144')" onMouseOut="HideTip('tt143')" class=ISymbol>f_compilationTime</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_compOctetstring" id=link145 onMouseOver="ShowTip(event, 'tt144', 'link145')" onMouseOut="HideTip('tt144')" class=ISymbol>f_compOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_convertIPAddrToBinary</span>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_convertIPAddrToBinary" id=link146 onMouseOver="ShowTip(event, 'tt145', 'link146')" onMouseOut="HideTip('tt145')" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_convertIPAddrToBinary" id=link147 onMouseOver="ShowTip(event, 'tt145', 'link147')" onMouseOut="HideTip('tt145')" class=IFile>TCCConversion_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_cos" id=link148 onMouseOver="ShowTip(event, 'tt146', 'link148')" onMouseOut="HideTip('tt146')" class=ISymbol>f_cos</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_cosVL" id=link149 onMouseOver="ShowTip(event, 'tt147', 'link149')" onMouseOut="HideTip('tt147')" class=ISymbol>f_cosVL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_ctime" id=link150 onMouseOver="ShowTip(event, 'tt148', 'link150')" onMouseOut="HideTip('tt148')" class=ISymbol>f_ctime</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_ctime_UTC" id=link151 onMouseOver="ShowTip(event, 'tt149', 'link151')" onMouseOut="HideTip('tt149')" class=ISymbol>f_ctime_UTC</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_dec_TBCD" id=link152 onMouseOver="ShowTip(event, 'tt150', 'link152')" onMouseOut="HideTip('tt150')" class=ISymbol>f_dec_TBCD</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_decGSM7bit" id=link153 onMouseOver="ShowTip(event, 'tt151', 'link153')" onMouseOut="HideTip('tt151')" class=ISymbol>f_decGSM7bit</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_deleteIP" id=link154 onMouseOver="ShowTip(event, 'tt152', 'link154')" onMouseOut="HideTip('tt152')" class=ISymbol>f_deleteIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_delIP_ip</span>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_delIP_ip" id=link155 onMouseOver="ShowTip(event, 'tt153', 'link155')" onMouseOut="HideTip('tt153')" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_delIP_ip" id=link156 onMouseOver="ShowTip(event, 'tt153', 'link156')" onMouseOut="HideTip('tt153')" class=IFile>TCCInterface_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_EAPSIM_A3A8" id=link157 onMouseOver="ShowTip(event, 'tt154', 'link157')" onMouseOut="HideTip('tt154')" class=ISymbol>f_EAPSIM_A3A8</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_enc_TBCD" id=link158 onMouseOver="ShowTip(event, 'tt155', 'link158')" onMouseOut="HideTip('tt155')" class=ISymbol>f_enc_TBCD</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_encGSM7bit" id=link159 onMouseOver="ShowTip(event, 'tt156', 'link159')" onMouseOut="HideTip('tt156')" class=ISymbol>f_encGSM7bit</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_exp" id=link160 onMouseOver="ShowTip(event, 'tt157', 'link160')" onMouseOut="HideTip('tt157')" class=ISymbol>f_exp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_chdir" id=link161 onMouseOver="ShowTip(event, 'tt158', 'link161')" onMouseOut="HideTip('tt158')" class=ISymbol>f_FIO_chdir</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_chmod</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_chmod" id=link162 onMouseOver="ShowTip(event, 'tt159', 'link162')" onMouseOut="HideTip('tt159')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_chmod" id=link163 onMouseOver="ShowTip(event, 'tt159', 'link163')" onMouseOut="HideTip('tt159')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_close" id=link164 onMouseOver="ShowTip(event, 'tt160', 'link164')" onMouseOut="HideTip('tt160')" class=ISymbol>f_FIO_close</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_fileOrDirExists</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_fileOrDirExists" id=link165 onMouseOver="ShowTip(event, 'tt161', 'link165')" onMouseOut="HideTip('tt161')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_fileOrDirExists" id=link166 onMouseOver="ShowTip(event, 'tt161', 'link166')" onMouseOut="HideTip('tt161')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_flush" id=link167 onMouseOver="ShowTip(event, 'tt162', 'link167')" onMouseOut="HideTip('tt162')" class=ISymbol>f_FIO_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_get_error_code" id=link168 onMouseOver="ShowTip(event, 'tt163', 'link168')" onMouseOut="HideTip('tt163')" class=ISymbol>f_FIO_get_error_code</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_get_error_string" id=link169 onMouseOver="ShowTip(event, 'tt164', 'link169')" onMouseOut="HideTip('tt164')" class=ISymbol>f_FIO_get_error_string</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_mkdir</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_mkdir" id=link170 onMouseOver="ShowTip(event, 'tt165', 'link170')" onMouseOut="HideTip('tt165')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_mkdir" id=link171 onMouseOver="ShowTip(event, 'tt165', 'link171')" onMouseOut="HideTip('tt165')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_rdwr" id=link172 onMouseOver="ShowTip(event, 'tt166', 'link172')" onMouseOut="HideTip('tt166')" class=ISymbol>f_FIO_open_append_rdwr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_rdwr_excl" id=link173 onMouseOver="ShowTip(event, 'tt167', 'link173')" onMouseOut="HideTip('tt167')" class=ISymbol>f_FIO_open_append_rdwr_excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_wronly" id=link174 onMouseOver="ShowTip(event, 'tt168', 'link174')" onMouseOut="HideTip('tt168')" class=ISymbol>f_FIO_open_append_wronly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_wronly_excl" id=link175 onMouseOver="ShowTip(event, 'tt169', 'link175')" onMouseOut="HideTip('tt169')" class=ISymbol>f_FIO_open_append_wronly_excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_rdonly" id=link176 onMouseOver="ShowTip(event, 'tt170', 'link176')" onMouseOut="HideTip('tt170')" class=ISymbol>f_FIO_open_rdonly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_rdwr" id=link177 onMouseOver="ShowTip(event, 'tt171', 'link177')" onMouseOut="HideTip('tt171')" class=ISymbol>f_FIO_open_trunc_rdwr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_rdwr_excl" id=link178 onMouseOver="ShowTip(event, 'tt172', 'link178')" onMouseOut="HideTip('tt172')" class=ISymbol>f_FIO_open_trunc_rdwr_excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_wronly" id=link179 onMouseOver="ShowTip(event, 'tt173', 'link179')" onMouseOut="HideTip('tt173')" class=ISymbol>f_FIO_open_trunc_wronly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_wronly_excl" id=link180 onMouseOver="ShowTip(event, 'tt174', 'link180')" onMouseOut="HideTip('tt174')" class=ISymbol>f_FIO_open_trunc_wronly_excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data" id=link181 onMouseOver="ShowTip(event, 'tt175', 'link181')" onMouseOut="HideTip('tt175')" class=ISymbol>f_FIO_read_data</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data_TLV" id=link182 onMouseOver="ShowTip(event, 'tt176', 'link182')" onMouseOut="HideTip('tt176')" class=ISymbol>f_FIO_read_data_TLV</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data_until" id=link183 onMouseOver="ShowTip(event, 'tt177', 'link183')" onMouseOut="HideTip('tt177')" class=ISymbol>f_FIO_read_data_until</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_text" id=link184 onMouseOver="ShowTip(event, 'tt178', 'link184')" onMouseOut="HideTip('tt178')" class=ISymbol>f_FIO_read_text</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_text_until" id=link185 onMouseOver="ShowTip(event, 'tt179', 'link185')" onMouseOut="HideTip('tt179')" class=ISymbol>f_FIO_read_text_until</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_rmdir</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_rmdir" id=link186 onMouseOver="ShowTip(event, 'tt180', 'link186')" onMouseOut="HideTip('tt180')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_rmdir" id=link187 onMouseOver="ShowTip(event, 'tt180', 'link187')" onMouseOut="HideTip('tt180')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_backward" id=link188 onMouseOver="ShowTip(event, 'tt181', 'link188')" onMouseOut="HideTip('tt181')" class=ISymbol>f_FIO_seek_backward</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_end" id=link189 onMouseOver="ShowTip(event, 'tt182', 'link189')" onMouseOut="HideTip('tt182')" class=ISymbol>f_FIO_seek_end</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_forward" id=link190 onMouseOver="ShowTip(event, 'tt183', 'link190')" onMouseOut="HideTip('tt183')" class=ISymbol>f_FIO_seek_forward</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_home" id=link191 onMouseOver="ShowTip(event, 'tt184', 'link191')" onMouseOut="HideTip('tt184')" class=ISymbol>f_FIO_seek_home</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_set_filedescriptor_previousline" id=link192 onMouseOver="ShowTip(event, 'tt185', 'link192')" onMouseOut="HideTip('tt185')" class=ISymbol>f_FIO_set_filedescriptor_previousline</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_stat</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_stat" id=link193 onMouseOver="ShowTip(event, 'tt186', 'link193')" onMouseOut="HideTip('tt186')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_stat" id=link194 onMouseOver="ShowTip(event, 'tt186', 'link194')" onMouseOut="HideTip('tt186')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_data" id=link195 onMouseOver="ShowTip(event, 'tt187', 'link195')" onMouseOut="HideTip('tt187')" class=ISymbol>f_FIO_write_data</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_data_flush" id=link196 onMouseOver="ShowTip(event, 'tt188', 'link196')" onMouseOut="HideTip('tt188')" class=ISymbol>f_FIO_write_data_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_text" id=link197 onMouseOver="ShowTip(event, 'tt189', 'link197')" onMouseOut="HideTip('tt189')" class=ISymbol>f_FIO_write_text</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_text_flush" id=link198 onMouseOver="ShowTip(event, 'tt190', 'link198')" onMouseOut="HideTip('tt190')" class=ISymbol>f_FIO_write_text_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_floor" id=link199 onMouseOver="ShowTip(event, 'tt191', 'link199')" onMouseOut="HideTip('tt191')" class=ISymbol>f_floor</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_bfree" id=link200 onMouseOver="ShowTip(event, 'tt192', 'link200')" onMouseOut="HideTip('tt192')" class=ISymbol>f_FS_bfree</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_blocks" id=link201 onMouseOver="ShowTip(event, 'tt193', 'link201')" onMouseOut="HideTip('tt193')" class=ISymbol>f_FS_blocks</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_bsize" id=link202 onMouseOver="ShowTip(event, 'tt194', 'link202')" onMouseOut="HideTip('tt194')" class=ISymbol>f_FS_bsize</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_dspacerate" id=link203 onMouseOver="ShowTip(event, 'tt195', 'link203')" onMouseOut="HideTip('tt195')" class=ISymbol>f_FS_dspacerate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_gen_Exponential_Distribution(in_float_p_lambda)return_float" id=link204 onMouseOver="ShowTip(event, 'tt196', 'link204')" onMouseOut="HideTip('tt196')" class=ISymbol>f_gen_Exponential_Distribution(in float p_lambda)return float</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_generate_poissonTable" id=link205 onMouseOver="ShowTip(event, 'tt197', 'link205')" onMouseOut="HideTip('tt197')" class=ISymbol>f_generate_poissonTable</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getCurrentDateWithOffset" id=link206 onMouseOver="ShowTip(event, 'tt198', 'link206')" onMouseOut="HideTip('tt198')" class=ISymbol>f_getCurrentDateWithOffset</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getCurrentGMTDate" id=link207 onMouseOver="ShowTip(event, 'tt199', 'link207')" onMouseOut="HideTip('tt199')" class=ISymbol>f_getCurrentGMTDate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#f_GetEnv" id=link208 onMouseOver="ShowTip(event, 'tt200', 'link208')" onMouseOut="HideTip('tt200')" class=ISymbol>f_GetEnv</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getHostName" id=link209 onMouseOver="ShowTip(event, 'tt201', 'link209')" onMouseOut="HideTip('tt201')" class=ISymbol>f_getHostName</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIP" id=link210 onMouseOver="ShowTip(event, 'tt202', 'link210')" onMouseOut="HideTip('tt202')" class=ISymbol>f_getIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIpAddr" id=link211 onMouseOver="ShowTip(event, 'tt203', 'link211')" onMouseOut="HideTip('tt203')" class=ISymbol>f_getIpAddr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_getIpAddresses</span>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_getIpAddresses" id=link212 onMouseOver="ShowTip(event, 'tt204', 'link212')" onMouseOut="HideTip('tt204')" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIpAddresses" id=link213 onMouseOver="ShowTip(event, 'tt204', 'link213')" onMouseOut="HideTip('tt204')" class=IFile>TCCInterface_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_getNext_poissonValue" id=link214 onMouseOver="ShowTip(event, 'tt205', 'link214')" onMouseOut="HideTip('tt205')" class=ISymbol>f_getNext_poissonValue</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getTimeFormatted" id=link215 onMouseOver="ShowTip(event, 'tt206', 'link215')" onMouseOut="HideTip('tt206')" class=ISymbol>f_getTimeFormatted</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_calculateAUTN" id=link216 onMouseOver="ShowTip(event, 'tt207', 'link216')" onMouseOut="HideTip('tt207')" class=ISymbol>f_IMSAKA_calculateAUTN</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f1" id=link217 onMouseOver="ShowTip(event, 'tt208', 'link217')" onMouseOut="HideTip('tt208')" class=ISymbol>f_IMSAKA_f1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f1star" id=link218 onMouseOver="ShowTip(event, 'tt209', 'link218')" onMouseOut="HideTip('tt209')" class=ISymbol>f_IMSAKA_f1star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f2" id=link219 onMouseOver="ShowTip(event, 'tt210', 'link219')" onMouseOut="HideTip('tt210')" class=ISymbol>f_IMSAKA_f2</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f2345" id=link220 onMouseOver="ShowTip(event, 'tt211', 'link220')" onMouseOut="HideTip('tt211')" class=ISymbol>f_IMSAKA_f2345</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f3" id=link221 onMouseOver="ShowTip(event, 'tt212', 'link221')" onMouseOut="HideTip('tt212')" class=ISymbol>f_IMSAKA_f3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f4" id=link222 onMouseOver="ShowTip(event, 'tt213', 'link222')" onMouseOut="HideTip('tt213')" class=ISymbol>f_IMSAKA_f4</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f5" id=link223 onMouseOver="ShowTip(event, 'tt214', 'link223')" onMouseOut="HideTip('tt214')" class=ISymbol>f_IMSAKA_f5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f5star" id=link224 onMouseOver="ShowTip(event, 'tt215', 'link224')" onMouseOut="HideTip('tt215')" class=ISymbol>f_IMSAKA_f5star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_add" id=link225 onMouseOver="ShowTip(event, 'tt216', 'link225')" onMouseOut="HideTip('tt216')" class=ISymbol>f_IPsec_SADB_add</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_delete" id=link226 onMouseOver="ShowTip(event, 'tt217', 'link226')" onMouseOut="HideTip('tt217')" class=ISymbol>f_IPsec_SADB_delete</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_flush" id=link227 onMouseOver="ShowTip(event, 'tt218', 'link227')" onMouseOut="HideTip('tt218')" class=ISymbol>f_IPsec_SADB_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_add" id=link228 onMouseOver="ShowTip(event, 'tt219', 'link228')" onMouseOut="HideTip('tt219')" class=ISymbol>f_IPsec_SPDB_add</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_delete" id=link229 onMouseOver="ShowTip(event, 'tt220', 'link229')" onMouseOut="HideTip('tt220')" class=ISymbol>f_IPsec_SPDB_delete</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_flush" id=link230 onMouseOver="ShowTip(event, 'tt221', 'link230')" onMouseOut="HideTip('tt221')" class=ISymbol>f_IPsec_SPDB_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_log" id=link231 onMouseOver="ShowTip(event, 'tt222', 'link231')" onMouseOut="HideTip('tt222')" class=ISymbol>f_log</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_maxFL" id=link232 onMouseOver="ShowTip(event, 'tt223', 'link232')" onMouseOut="HideTip('tt223')" class=ISymbol>f_maxFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_maxIL" id=link233 onMouseOver="ShowTip(event, 'tt224', 'link233')" onMouseOut="HideTip('tt224')" class=ISymbol>f_maxIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_minFL" id=link234 onMouseOver="ShowTip(event, 'tt225', 'link234')" onMouseOut="HideTip('tt225')" class=ISymbol>f_minFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_minIL" id=link235 onMouseOver="ShowTip(event, 'tt226', 'link235')" onMouseOut="HideTip('tt226')" class=ISymbol>f_minIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_oct2char_safe</span>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_oct2char_safe" id=link236 onMouseOver="ShowTip(event, 'tt227', 'link236')" onMouseOut="HideTip('tt227')" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_oct2char_safe" id=link237 onMouseOver="ShowTip(event, 'tt227', 'link237')" onMouseOut="HideTip('tt227')" class=IFile>TCCConversion_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_OctetIpv4" id=link238 onMouseOver="ShowTip(event, 'tt228', 'link238')" onMouseOut="HideTip('tt228')" class=ISymbol>f_OctetIpv4</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCRegexp_Functions-ttcn.html#f_pcre_regexp" id=link239 onMouseOver="ShowTip(event, 'tt229', 'link239')" onMouseOut="HideTip('tt229')" class=ISymbol>f_pcre_regexp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powFF" id=link240 onMouseOver="ShowTip(event, 'tt230', 'link240')" onMouseOut="HideTip('tt230')" class=ISymbol>f_powFF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powFI" id=link241 onMouseOver="ShowTip(event, 'tt231', 'link241')" onMouseOut="HideTip('tt231')" class=ISymbol>f_powFI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powIF" id=link242 onMouseOver="ShowTip(event, 'tt232', 'link242')" onMouseOut="HideTip('tt232')" class=ISymbol>f_powIF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powII" id=link243 onMouseOver="ShowTip(event, 'tt233', 'link243')" onMouseOut="HideTip('tt233')" class=ISymbol>f_powII</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#f_PutEnv" id=link244 onMouseOver="ShowTip(event, 'tt234', 'link244')" onMouseOut="HideTip('tt234')" class=ISymbol>f_PutEnv</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_putInLowercase" id=link245 onMouseOver="ShowTip(event, 'tt235', 'link245')" onMouseOut="HideTip('tt235')" class=ISymbol>f_putInLowercase</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_putInUppercase" id=link246 onMouseOver="ShowTip(event, 'tt236', 'link246')" onMouseOut="HideTip('tt236')" class=ISymbol>f_putInUppercase</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceEveryOccurenceOfPattern" id=link247 onMouseOver="ShowTip(event, 'tt237', 'link247')" onMouseOut="HideTip('tt237')" class=ISymbol>f_replaceEveryOccurenceOfPattern</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceEveryOccurenceOfSubstring" id=link248 onMouseOver="ShowTip(event, 'tt238', 'link248')" onMouseOut="HideTip('tt238')" class=ISymbol>f_replaceEveryOccurenceOfSubstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceFirstOccurenceOfPattern" id=link249 onMouseOver="ShowTip(event, 'tt239', 'link249')" onMouseOut="HideTip('tt239')" class=ISymbol>f_replaceFirstOccurenceOfPattern</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceFirstOccurenceOfSubstring" id=link250 onMouseOver="ShowTip(event, 'tt240', 'link250')" onMouseOut="HideTip('tt240')" class=ISymbol>f_replaceFirstOccurenceOfSubstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setInterfaceDown" id=link251 onMouseOver="ShowTip(event, 'tt241', 'link251')" onMouseOut="HideTip('tt241')" class=ISymbol>f_setInterfaceDown</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setInterfaceUp" id=link252 onMouseOver="ShowTip(event, 'tt242', 'link252')" onMouseOut="HideTip('tt242')" class=ISymbol>f_setInterfaceUp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setIP" id=link253 onMouseOver="ShowTip(event, 'tt243', 'link253')" onMouseOut="HideTip('tt243')" class=ISymbol>f_setIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_setIP_ip</span>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_setIP_ip" id=link254 onMouseOver="ShowTip(event, 'tt244', 'link254')" onMouseOut="HideTip('tt244')" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setIP_ip" id=link255 onMouseOver="ShowTip(event, 'tt244', 'link255')" onMouseOut="HideTip('tt244')" class=IFile>TCCInterface_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sin" id=link256 onMouseOver="ShowTip(event, 'tt245', 'link256')" onMouseOut="HideTip('tt245')" class=ISymbol>f_sin</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sinVL" id=link257 onMouseOver="ShowTip(event, 'tt246', 'link257')" onMouseOut="HideTip('tt246')" class=ISymbol>f_sinVL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrF" id=link258 onMouseOver="ShowTip(event, 'tt247', 'link258')" onMouseOut="HideTip('tt247')" class=ISymbol>f_sqrF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrI" id=link259 onMouseOver="ShowTip(event, 'tt248', 'link259')" onMouseOut="HideTip('tt248')" class=ISymbol>f_sqrI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrtF" id=link260 onMouseOver="ShowTip(event, 'tt249', 'link260')" onMouseOut="HideTip('tt249')" class=ISymbol>f_sqrtF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrtI" id=link261 onMouseOver="ShowTip(event, 'tt250', 'link261')" onMouseOut="HideTip('tt250')" class=ISymbol>f_sqrtI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdFL" id=link262 onMouseOver="ShowTip(event, 'tt251', 'link262')" onMouseOut="HideTip('tt251')" class=ISymbol>f_stdFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdFLL" id=link263 onMouseOver="ShowTip(event, 'tt252', 'link263')" onMouseOut="HideTip('tt252')" class=ISymbol>f_stdFLL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdIL" id=link264 onMouseOver="ShowTip(event, 'tt253', 'link264')" onMouseOut="HideTip('tt253')" class=ISymbol>f_stdIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdILL" id=link265 onMouseOver="ShowTip(event, 'tt254', 'link265')" onMouseOut="HideTip('tt254')" class=ISymbol>f_stdILL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_strstr</span>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_strstr" id=link266 onMouseOver="ShowTip(event, 'tt255', 'link266')" onMouseOut="HideTip('tt255')" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_strstr" id=link267 onMouseOver="ShowTip(event, 'tt255', 'link267')" onMouseOut="HideTip('tt255')" class=IFile>TCCConversion_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_subOctetstring" id=link268 onMouseOver="ShowTip(event, 'tt256', 'link268')" onMouseOut="HideTip('tt256')" class=ISymbol>f_subOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_substr_token</span>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_substr_token" id=link269 onMouseOver="ShowTip(event, 'tt257', 'link269')" onMouseOut="HideTip('tt257')" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_substr_token" id=link270 onMouseOver="ShowTip(event, 'tt257', 'link270')" onMouseOut="HideTip('tt257')" class=IFile>TCCConversion_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_SYS_getpid</span>
+<div class=ISubIndex>
+<a href="../files/TCCSystem-cc.html#f_SYS_getpid" id=link271 onMouseOver="ShowTip(event, 'tt258', 'link271')" onMouseOut="HideTip('tt258')" class=IFile>TCCSystem.cc</a>
+<a href="../files/TCCSystem_Functions-ttcn.html#f_SYS_getpid" id=link272 onMouseOver="ShowTip(event, 'tt258', 'link272')" onMouseOut="HideTip('tt258')" class=IFile>TCCSystem_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength" id=link273 onMouseOver="ShowTip(event, 'tt259', 'link273')" onMouseOut="HideTip('tt259')" class=ISymbol>f_TCCMessageHandling_getMessageLength</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength4Diameter" id=link274 onMouseOver="ShowTip(event, 'tt260', 'link274')" onMouseOut="HideTip('tt260')" class=ISymbol>f_TCCMessageHandling_getMessageLength4Diameter</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength4Radius" id=link275 onMouseOver="ShowTip(event, 'tt261', 'link275')" onMouseOut="HideTip('tt261')" class=ISymbol>f_TCCMessageHandling_getMessageLength4Radius</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#f_Template_subsfiletemplate" id=link276 onMouseOver="ShowTip(event, 'tt262', 'link276')" onMouseOut="HideTip('tt262')" class=ISymbol>f_Template_subsfiletemplate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#f_Template_substitutetemplate" id=link277 onMouseOver="ShowTip(event, 'tt263', 'link277')" onMouseOut="HideTip('tt263')" class=ISymbol>f_Template_substitutetemplate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_tic" id=link278 onMouseOver="ShowTip(event, 'tt264', 'link278')" onMouseOut="HideTip('tt264')" class=ISymbol>f_tic</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time" id=link279 onMouseOver="ShowTip(event, 'tt265', 'link279')" onMouseOut="HideTip('tt265')" class=ISymbol>f_time</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time2sec" id=link280 onMouseOver="ShowTip(event, 'tt266', 'link280')" onMouseOut="HideTip('tt266')" class=ISymbol>f_time2sec</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time2sec_UTC" id=link281 onMouseOver="ShowTip(event, 'tt267', 'link281')" onMouseOut="HideTip('tt267')" class=ISymbol>f_time2sec_UTC</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_timeDiff" id=link282 onMouseOver="ShowTip(event, 'tt268', 'link282')" onMouseOut="HideTip('tt268')" class=ISymbol>f_timeDiff</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_toc" id=link283 onMouseOver="ShowTip(event, 'tt269', 'link283')" onMouseOut="HideTip('tt269')" class=ISymbol>f_toc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_unichar2charstr" id=link284 onMouseOver="ShowTip(event, 'tt270', 'link284')" onMouseOut="HideTip('tt270')" class=ISymbol>f_unichar2charstr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_updateFL" id=link285 onMouseOver="ShowTip(event, 'tt271', 'link285')" onMouseOut="HideTip('tt271')" class=ISymbol>f_updateFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_updateIL" id=link286 onMouseOver="ShowTip(event, 'tt272', 'link286')" onMouseOut="HideTip('tt272')" class=ISymbol>f_updateIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f1" id=link287 onMouseOver="ShowTip(event, 'tt273', 'link287')" onMouseOut="HideTip('tt273')" class=ISymbol>f1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f1star" id=link288 onMouseOver="ShowTip(event, 'tt274', 'link288')" onMouseOut="HideTip('tt274')" class=ISymbol>f1star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f2345" id=link289 onMouseOver="ShowTip(event, 'tt275', 'link289')" onMouseOut="HideTip('tt275')" class=ISymbol>f2345</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f5star" id=link290 onMouseOver="ShowTip(event, 'tt276', 'link290')" onMouseOut="HideTip('tt276')" class=ISymbol>f5star</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt16">
+<div class=CFunction>Return the arc cosine of value in [0, pi]</div></div>
+<div class=CToolTip id="tt17">
+<div class=CFunction>Add two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt18">
+<div class=CFunction>Return the arc sine of value in [-pi/2, +pi/2]</div></div>
+<div class=CToolTip id="tt19">
+<div class=CFunction>Implement TTCN assertion.</div></div>
+<div class=CToolTip id="tt20">
+<div class=CFunction>Return the average of flist</div></div>
+<div class=CToolTip id="tt21">
+<div class=CFunction>Return the average of ilist</div></div>
+<div class=CToolTip id="tt22">
+<div class=CFunction>Calculate the HMAC MD5 value of a message with specified key.</div></div>
+<div class=CToolTip id="tt23">
+<div class=CFunction>Calculate the HMAC SHA1 value of a message with specified key.</div></div>
+<div class=CToolTip id="tt24">
+<div class=CFunction>Purpose: Encrypt TTCN-3 message using the confidentiality algorithm 128-EEA3</div></div>
+<div class=CToolTip id="tt25">
+<div class=CFunction>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3 for TTCN-3 message</div></div>
+<div class=CToolTip id="tt26">
+<div class=CFunction>Calculate digest H(A1) hash</div></div>
+<div class=CToolTip id="tt27">
+<div class=CFunction>Calculate digest response</div></div>
+<div class=CToolTip id="tt28">
+<div class=CFunction>Calculate the HMAC MD5 value of a message with specified 64 bit key.</div></div>
+<div class=CToolTip id="tt29">
+<div class=CFunction>Compute MD5 hash value</div></div>
+<div class=CToolTip id="tt30">
+<div class=CFunction>Return the smallest integer value that is not less then value</div></div>
+<div class=CToolTip id="tt31">
+<div class=CFunction>Return the compilation time of module</div></div>
+<div class=CToolTip id="tt32">
+<div class=CFunction>Compare two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt33">
+<div class=CFunction>Return the cosine of angle radians</div></div>
+<div class=CToolTip id="tt34">
+<div class=CFunction>Return the values of the cos function</div></div>
+<div class=CToolTip id="tt35">
+<div class=CFunction>Convert a time value in seconds to human readable string. </div></div>
+<div class=CToolTip id="tt36">
+<div class=CFunction>Convert a time value in seconds to human readable string. </div></div>
+<div class=CToolTip id="tt37">
+<div class=CFunction>Decode octetstring from TBCD encoding</div></div>
+<div class=CToolTip id="tt38">
+<div class=CFunction>Delete IP address from a network inteface</div></div>
+<div class=CToolTip id="tt39">
+<div class=CFunction>Takes key Ki and random challenge RAND, and returns Kc and SRES keys</div></div>
+<div class=CToolTip id="tt40">
+<div class=CFunction>Encode charstring to TBCD</div></div>
+<div class=CToolTip id="tt41">
+<div class=CFunction>Return the exponential value of the argument</div></div>
+<div class=CToolTip id="tt42">
+<div class=CFunction>It changes the current directory.</div></div>
+<div class=CToolTip id="tt43">
+<div class=CFunction>Closes a file associated with the given file descriptor.</div></div>
+<div class=CToolTip id="tt44">
+<div class=CFunction>Transfers (&ldquo;flushes&rdquo;) all modified in-core data of the file referred to by the file descriptor to the disk device.</div></div>
+<div class=CToolTip id="tt45">
+<div class=CFunction>Returns the actual error code.</div></div>
+<div class=CToolTip id="tt46">
+<div class=CFunction>Returns the actual error message.</div></div>
+<div class=CToolTip id="tt47">
+<div class=CFunction>Opens a file with the given name in the given mode. </div></div>
+<div class=CToolTip id="tt48">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt49">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt50">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt51">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt52">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt53">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt54">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt55">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt56">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt57">
+<div class=CFunction>Checks if the file with the given name is already opened. </div></div>
+<div class=CToolTip id="tt58">
+<div class=CFunction>Reads a given number of bytes to a given buffer from a file associated with the given file descriptor. </div></div>
+<div class=CToolTip id="tt59">
+<div class=CFunction>A wrapper function for f__FIO__read. </div></div>
+<div class=CToolTip id="tt60">
+<div class=CFunction>It reads binary data until a full ASN.1 TLV structure is read.</div></div>
+<div class=CToolTip id="tt61">
+<div class=CFunction>It reads binary data until a given pattern is matched.</div></div>
+<div class=CToolTip id="tt62">
+<div class=CFunction>A wrapper function for f__FIO__read. </div></div>
+<div class=CToolTip id="tt63">
+<div class=CFunction>It reads textual data until a given pattern is matched.</div></div>
+<div class=CToolTip id="tt64">
+<div class=CFunction>Builds the error message. </div></div>
+<div class=CToolTip id="tt65">
+<div class=CFunction>Moves the file pointer backward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt66">
+<div class=CFunction>Moves the file pointer to the end of the file.</div></div>
+<div class=CToolTip id="tt67">
+<div class=CFunction>Moves the file pointer forward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt68">
+<div class=CFunction>Moves the file pointer to the beginning of the file.</div></div>
+<div class=CToolTip id="tt69">
+<div class=CFunction>It sets the file descriptor to the begin of the previous line.</div></div>
+<div class=CToolTip id="tt70">
+<div class=CFunction>Writes the given data to the file associated with the given file descriptor. </div></div>
+<div class=CToolTip id="tt71">
+<div class=CFunction>A wrapper function for f__FIO__write. </div></div>
+<div class=CToolTip id="tt72">
+<div class=CFunction>A wrapper function for f__FIO__write. </div></div>
+<div class=CToolTip id="tt73">
+<div class=CFunction>A wrapper function for f__FIO__write. </div></div>
+<div class=CToolTip id="tt74">
+<div class=CFunction>A wrapper function for f__FIO__write. </div></div>
+<div class=CToolTip id="tt75">
+<div class=CFunction>Return the largest integer value that is not greater then value</div></div>
+<div class=CToolTip id="tt76">
+<div class=CFunction>Generate a date from the actual date and time plus the parameter in seconds e.g. </div></div>
+<div class=CToolTip id="tt77">
+<div class=CFunction>Return the current GMT date in format RFC 1123-Date e.g.:Sat, 13 Nov 2010 23:30:02 GMT</div></div>
+<div class=CToolTip id="tt78">
+<div class=CFunction>Return the environment variable specified via p_env_name</div></div>
+<div class=CToolTip id="tt79">
+<div class=CFunction>Get name of host</div></div>
+<div class=CToolTip id="tt80">
+<div class=CFunction>Get IP address, subnet mask and broadcast address from a network inteface</div></div>
+<div class=CToolTip id="tt81">
+<div class=CFunction>Get IP address of host</div></div>
+<div class=CToolTip id="tt82">
+<div class=CFunction>Return the current calendar time in a formatted way</div></div>
+<div class=CToolTip id="tt83">
+<div class=CFunction>Computes authentication token AUTN from anonymity key AK, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt84">
+<div class=CFunction>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt85">
+<div class=CFunction>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt86">
+<div class=CFunction>Takes key K and random challenge RAND, and returns response RES.</div></div>
+<div class=CToolTip id="tt87">
+<div class=CFunction>Takes key K and random challenge RAND, and returns AK, CK, RES</div></div>
+<div class=CToolTip id="tt88">
+<div class=CFunction>Takes key K and random challenge RAND, and returns confidentiality key CK.</div></div>
+<div class=CToolTip id="tt89">
+<div class=CFunction>Takes key K and random challenge RAND, and returns integrity key IK.</div></div>
+<div class=CToolTip id="tt90">
+<div class=CFunction>Takes key K and random challenge RAND, and returns anonymity key AK.</div></div>
+<div class=CToolTip id="tt91">
+<div class=CFunction>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</div></div>
+<div class=CToolTip id="tt92">
+<div class=CFunction>Return the natural logarithm of the argument</div></div>
+<div class=CToolTip id="tt93">
+<div class=CFunction>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt94">
+<div class=CFunction>Return an IntegerList with the highest number found at index 0 and the index of ilist where it&rsquo;s found at index 1</div></div>
+<div class=CToolTip id="tt95">
+<div class=CFunction>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt96">
+<div class=CFunction>Return an IntegerList with the lowest number found at index 0 and the index of ilist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt97">
+<div class=CFunction>Raise to power (float to float power)</div></div>
+<div class=CToolTip id="tt98">
+<div class=CFunction>Raise to power (float to integer power)</div></div>
+<div class=CToolTip id="tt99">
+<div class=CFunction>Raise to power (integer to float power)</div></div>
+<div class=CToolTip id="tt100">
+<div class=CFunction>Raise to power (integer to integer power)</div></div>
+<div class=CToolTip id="tt101">
+<div class=CFunction>Set the environment variable p_env_name to p_env_value.</div></div>
+<div class=CToolTip id="tt102">
+<div class=CFunction>Put charstring to lowercase</div></div>
+<div class=CToolTip id="tt103">
+<div class=CFunction>Put charstring to uppercase</div></div>
+<div class=CToolTip id="tt104">
+<div class=CFunction>Set down a network interface</div></div>
+<div class=CToolTip id="tt105">
+<div class=CFunction>Set up a network interface</div></div>
+<div class=CToolTip id="tt106">
+<div class=CFunction>Set IP address, subnet mask and broadcast address in a network inteface If number is set, a range of virtual interfaces are set up with continuous IP address (no subnet mask, broadcast checking)</div></div>
+<div class=CToolTip id="tt107">
+<div class=CFunction>Return the sine of angle radians</div></div>
+<div class=CToolTip id="tt108">
+<div class=CFunction>Return the values of the sin function</div></div>
+<div class=CToolTip id="tt109">
+<div class=CFunction>Raise a float value to square</div></div>
+<div class=CToolTip id="tt110">
+<div class=CFunction>Raise an integer value to square</div></div>
+<div class=CToolTip id="tt111">
+<div class=CFunction>Square root of float value</div></div>
+<div class=CToolTip id="tt112">
+<div class=CFunction>Square root of integer value</div></div>
+<div class=CToolTip id="tt113">
+<div class=CFunction>Return the normalized standard deviation of float list (so the average square distance from the center of elements in the list)</div></div>
+<div class=CToolTip id="tt114">
+<div class=CFunction>Return the normalized standard deviation of float list  using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt115">
+<div class=CFunction>Return the normalized standard deviation of integer list (so the average square distance from the center of points)</div></div>
+<div class=CToolTip id="tt116">
+<div class=CFunction>Return the normalized standard deviation of integer list using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt117">
+<div class=CFunction>Substract two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt118">
+<div class=CFunction>Computes the 8 bit ASCII representation of an hexstring</div></div>
+<div class=CToolTip id="tt119">
+<div class=CFunction>Return the number of clock ticks used by the application since the program was launched</div></div>
+<div class=CToolTip id="tt120">
+<div class=CFunction>Current calendar time of the system in seconds</div></div>
+<div class=CToolTip id="tt121">
+<div class=CFunction>Function to convert a formated time value to seconds. </div></div>
+<div class=CToolTip id="tt122">
+<div class=CFunction>Function to convert a formated time value to seconds. </div></div>
+<div class=CToolTip id="tt123">
+<div class=CFunction>Difference between two time</div></div>
+<div class=CToolTip id="tt124">
+<div class=CFunction>Elapsed seconds since time t (only when f__tic() returns the number of clock ticks elapsed since the program was launched)</div></div>
+<div class=CToolTip id="tt125">
+<div class=CFunction>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt126">
+<div class=CFunction>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt127">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_acos(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the arc cosine of value in [0, pi]</div></div>
+<div class=CToolTip id="tt128">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_addOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Add two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt129">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_asin(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the arc sine of value in [-pi/2, +pi/2]</div></div>
+<div class=CToolTip id="tt130">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_assert(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_assertMessage,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>boolean&nbsp;</td>
+<td class=PParameter nowrap>pl_predicate</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Implement TTCN assertion.</div></div>
+<div class=CToolTip id="tt131">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_averageFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the average of flist</div></div>
+<div class=CToolTip id="tt132">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_averageIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the average of ilist</div></div>
+<div class=CToolTip id="tt133">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_calculate_HMAC_MD5(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_key,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_input,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_length</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>Calculate the HMAC MD5 value of a message with specified key.</div></div>
+<div class=CToolTip id="tt134">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_calculate_HMAC_SHA1(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_key,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_input,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_length</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>Calculate the HMAC SHA1 value of a message with specified key.</div></div>
+<div class=CToolTip id="tt135">
+<div class=CFunction>Purpose: Encrypt message using the confidentiality algorithm 128-EEA3</div></div>
+<div class=CToolTip id="tt136">
+<div class=CFunction>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3</div></div>
+<div class=CToolTip id="tt137">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateDigestHA1(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>nonce,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>cnonce,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>user,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>realm,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>passwd,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>alg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Calculate digest H(A1) hash</div></div>
+<div class=CToolTip id="tt138">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=3>external function f_calculateDigestResponse(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>nonce,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>cnonce,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>user,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>realm,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>passwd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>alg,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>nonceCount,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>method,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>qop,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>URI,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>HEntity</td></tr>
+<tr>
+<td class=PAfterParameters colspan=3>) return charstring</td></tr></table></td></tr></table></blockquote>Calculate digest response</div></div>
+<div class=CToolTip id="tt139">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateHMACMD5(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>msg,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_64&nbsp;</td>
+<td class=PParameter nowrap>key</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Calculate the 128 bit HMAC MD5 value of a message with specified 64 bit key.</div></div>
+<div class=CToolTip id="tt140">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateMD5(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pszHashInput</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Compute MD5 hash value</div></div>
+<div class=CToolTip id="tt141">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ceil(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Return the smallest integer value that is not less then value</div></div>
+<div class=CToolTip id="tt142">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_charstr2unichar (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_char</td>
+<td class=PAfterParameters nowrap>) return universal charstring</td></tr></table></td></tr></table></blockquote>Convert charstring 2 universal charstring</div></div>
+<div class=CToolTip id="tt143">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_compilationTime() return charstring</td></tr></table></blockquote>Return the compilation time of module</div></div>
+<div class=CToolTip id="tt144">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_compOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Compare two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt145">
+<div class=CFunction>Converts an IPv4 and IPv6 address to its hex representation. </div></div>
+<div class=CToolTip id="tt146">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_cos(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>angle</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the cosine of angle radILns</div></div>
+<div class=CToolTip id="tt147">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_cosVL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>freq,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>altitude,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>start_val,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>len,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>step</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return the values of the cosine function</div></div>
+<div class=CToolTip id="tt148">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ctime(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Convert a time value in seconds to human readable string The time represented as local time</div></div>
+<div class=CToolTip id="tt149">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ctime_UTC(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Convert a time value in seconds to human readable string The time represented as UTC</div></div>
+<div class=CToolTip id="tt150">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_dec_TBCD(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_oct</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Decode octetstring from TBCD encoding</div></div>
+<div class=CToolTip id="tt151">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_decGSM7bit(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_gsm7bit</td>
+<td class=PAfterParameters nowrap>) return universal charstring</td></tr></table></td></tr></table></blockquote>GSM 7-bit decoding (GSM 03.38)</div></div>
+<div class=CToolTip id="tt152">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_deleteIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Delete IP address from a network inteface</div></div>
+<div class=CToolTip id="tt153">
+<div class=CFunction>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</div></div>
+<div class=CToolTip id="tt154">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_EAPSIM_A3A8(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_16&nbsp;</td>
+<td class=PParameter nowrap>Ki,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap></td>
+<td class=PType nowrap>OCT_16&nbsp;</td>
+<td class=PParameter nowrap>rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>sres,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>Kc</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Takes key Ki and random challenge RAND, and returns Kc and SRES keys</div></div>
+<div class=CToolTip id="tt155">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_enc_TBCD(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_char</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Encode charstring to TBCD</div></div>
+<div class=CToolTip id="tt156">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_encGSM7bit(</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_str</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>GSM 7-bit encoding (GSM 03.38)</div></div>
+<div class=CToolTip id="tt157">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_exp(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the exponential value of the argument</div></div>
+<div class=CToolTip id="tt158">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_chdir (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_chdir. </div></div>
+<div class=CToolTip id="tt159">
+<div class=CFunction>Change the permissions of the file or directory.</div></div>
+<div class=CToolTip id="tt160">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_close (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Closes a file associated with the given file descriptor.</div></div>
+<div class=CToolTip id="tt161">
+<div class=CFunction>Checks the existence of files and directories.</div></div>
+<div class=CToolTip id="tt162">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_flush (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Transfers (&ldquo;flushes&rdquo;) all modified in-core data of the file referred to by the file descriptor to the disk device.</div></div>
+<div class=CToolTip id="tt163">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_FIO_get_error_code () return integer</td></tr></table></blockquote>Returns the actual error code.</div></div>
+<div class=CToolTip id="tt164">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_FIO_get_error_string () return charstring</td></tr></table></blockquote>Returns the actual error message.</div></div>
+<div class=CToolTip id="tt165">
+<div class=CFunction>Create a new directory</div></div>
+<div class=CToolTip id="tt166">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_append_rdwr (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt167">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_rdwr_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt168">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_wronly (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt169">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_wronly_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt170">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_rdonly (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt171">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_trunc_rdwr (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt172">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_rdwr_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt173">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_wronly (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt174">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_wronly_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt175">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_read_data (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_data,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read. </div></div>
+<div class=CToolTip id="tt176">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_data_TLV (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read. </div></div>
+<div class=CToolTip id="tt177">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_data_until (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_separator</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read_until. </div></div>
+<div class=CToolTip id="tt178">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_read_text (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read. </div></div>
+<div class=CToolTip id="tt179">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_text_until (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_text,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_separator</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read_until. </div></div>
+<div class=CToolTip id="tt180">
+<div class=CFunction>Removes a directory</div></div>
+<div class=CToolTip id="tt181">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_backward (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer backward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt182">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_end (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer to the end of the file.</div></div>
+<div class=CToolTip id="tt183">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_forward (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer forward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt184">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_home (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer to the beginning of the file.</div></div>
+<div class=CToolTip id="tt185">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_set_filedescriptor_previousline (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>If there was no problem, then the return value will be 1.</div></div>
+<div class=CToolTip id="tt186">
+<div class=CFunction>Query the permissions of the file or directory.</div></div>
+<div class=CToolTip id="tt187">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_data (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_data</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt188">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_write_data_flush (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt189">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_text (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt190">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_text_flush (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt191">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_floor(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Return the largest integer value that is not greater then value</div></div>
+<div class=CToolTip id="tt192">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_bfree (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Query the total number of free blocks.</div></div>
+<div class=CToolTip id="tt193">
+<div class=CFunction>Query the total number of blocks.</div></div>
+<div class=CToolTip id="tt194">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_bsize (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Query the file system block size.</div></div>
+<div class=CToolTip id="tt195">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_dspacerate (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Query the free space rate.</div></div>
+<div class=CToolTip id="tt196">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_gen_Exponential_Distribution(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Returns with the exponential random variable for a given lambda</div></div>
+<div class=CToolTip id="tt197">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_generate_poissonTable(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>t_Poisson_Table&nbsp;</td>
+<td class=PParameter nowrap>p_pTable</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Returns with an initialized poisson table which is a cumulative probability distribution list for a given lambda.</div></div>
+<div class=CToolTip id="tt198">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getCurrentDateWithOffset(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Generate a date from the actual date and time plus the parameter in seconds e.g. </div></div>
+<div class=CToolTip id="tt199">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_getCurrentGMTDate() return charstring</td></tr></table></blockquote>Return the current GMT date in format RFC 1123-Date ex :Sat, 13 Nov 2010 23:30:02 GMT</div></div>
+<div class=CToolTip id="tt200">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_GetEnv(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_name</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Return the environment variable specified via p_env_name</div></div>
+<div class=CToolTip id="tt201">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_getHostName() return charstring</td></tr></table></blockquote>Get name of host</div></div>
+<div class=CToolTip id="tt202">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ip,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>netmask,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>broadcast,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get IP address, subnet mask and broadcast address from a network inteface</div></div>
+<div class=CToolTip id="tt203">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_getIpAddr(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>hostname,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return charstring</td></tr></table></td></tr></table></blockquote>Get IP address of host</div></div>
+<div class=CToolTip id="tt204">
+<div class=CFunction>Get both IPv4 and IPv6 addresses of the given host</div></div>
+<div class=CToolTip id="tt205">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_getNext_poissonValue(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>t_Poisson_Table&nbsp;</td>
+<td class=PParameter nowrap>p_pTable,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>boolean&nbsp;</td>
+<td class=PParameter nowrap>p_sucess</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Returns with a random poisson value by the given poisson table and lambda poisson variance.</div></div>
+<div class=CToolTip id="tt206">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getTimeFormatted(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_format</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Return the current calendar time in a formatted way</div></div>
+<div class=CToolTip id="tt207">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_calculateAUTN(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_6&nbsp;</td>
+<td class=PParameter nowrap>SQN,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_6&nbsp;</td>
+<td class=PParameter nowrap>AK,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_2&nbsp;</td>
+<td class=PParameter nowrap>AMF,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_8&nbsp;</td>
+<td class=PParameter nowrap>MAC</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Computes authentication token AUTN from anonymity key AK, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt208">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f1(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_sqn,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_amf</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt209">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f1star (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_sqn,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_amf</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt210">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f2 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns response RES.</div></div>
+<div class=CToolTip id="tt211">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_IMSAKA_f2345 (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_OP,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_k,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_rand</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return TCCSecurity_Keys</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns AK, CK, RES</div></div>
+<div class=CToolTip id="tt212">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f3 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns confidentiality key CK.</div></div>
+<div class=CToolTip id="tt213">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f4 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns integrity key IK.</div></div>
+<div class=CToolTip id="tt214">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f5 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns anonymity key AK.</div></div>
+<div class=CToolTip id="tt215">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f5star (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</div></div>
+<div class=CToolTip id="tt216">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SADB_add (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Protocol&nbsp;</td>
+<td class=PParameter nowrap>protocol,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>spi,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_ExtensionList&nbsp;</td>
+<td class=PType nowrap>extensionList&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> {},</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Algorithm&nbsp;</td>
+<td class=PParameter nowrap>alg,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in boolean&nbsp;</td>
+<td class=PType nowrap>setparitybit&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> false,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_IPsecMode&nbsp;</td>
+<td class=PType nowrap>ipSecMode&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyMode</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Adds a Security Association to the database (SADB)</div></div>
+<div class=CToolTip id="tt217">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_IPsec_SADB_delete (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>srcAddress,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>dstAddress,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Protocol&nbsp;</td>
+<td class=PParameter nowrap width=100%>protocol,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>spi</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Deletes a Security Association from the database (SADB)</div></div>
+<div class=CToolTip id="tt218">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_IPsec_SADB_flush () return TCCIPsec_Result</td></tr></table></blockquote>Deletes all Security Associations from the database (SADB)</div></div>
+<div class=CToolTip id="tt219">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SPDB_add (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_TranspProto&nbsp;</td>
+<td class=PType nowrap>transpProto&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyTranspProto,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyDirection&nbsp;</td>
+<td class=PParameter nowrap>dir,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyRule&nbsp;</td>
+<td class=PParameter nowrap>rule</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Adds a Security Policy to the database (SPDB)</div></div>
+<div class=CToolTip id="tt220">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SPDB_delete (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_TranspProto&nbsp;</td>
+<td class=PType nowrap>transpProto&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyTranspProto,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyDirection&nbsp;</td>
+<td class=PParameter nowrap>dir</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Deletes a Security Policy from the database (SPD)</div></div>
+<div class=CToolTip id="tt221">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_IPsec_SPDB_flush () return TCCIPsec_Result</td></tr></table></blockquote>Deletes all Security Policies from the database (SPD)</div></div>
+<div class=CToolTip id="tt222">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_log(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the natural logarithm of the argument</div></div>
+<div class=CToolTip id="tt223">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_maxFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt224">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_maxIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return IntegerList</td></tr></table></td></tr></table></blockquote>Return an IntegerList with the highest number found at index 0 and the index of ilist where it&rsquo;s found at index 1</div></div>
+<div class=CToolTip id="tt225">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_minFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt226">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_minIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return IntegerList</td></tr></table></td></tr></table></blockquote>Return an IntegerList with the lowest number found at index 0 and the index of ilist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt227">
+<div class=CFunction>Fault tolerant version of the oct2str Titan built-in function.</div></div>
+<div class=CToolTip id="tt228">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_OctetIpv4(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_ip</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>convertes an IPv4 address given in dotted notation to its hex representation</div></div>
+<div class=CToolTip id="tt229">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_pcre_regexp(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>instr,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>expression,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>groupno</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Evaulate a Perl compatible regular expression</div></div>
+<div class=CToolTip id="tt230">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powFF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise to power (float to float power)</div></div>
+<div class=CToolTip id="tt231">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powFI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise to power (float to integer power)</div></div>
+<div class=CToolTip id="tt232">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powIF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise to power (integer to float power)</div></div>
+<div class=CToolTip id="tt233">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powII(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Raise to power (integer to integer power)</div></div>
+<div class=CToolTip id="tt234">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_PutEnv(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_name,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_value</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Set the environment variable p_env_name to p_env_value.</div></div>
+<div class=CToolTip id="tt235">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_putInLowercase(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_string</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Put charstring to lowercase</div></div>
+<div class=CToolTip id="tt236">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_putInUppercase(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_string</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Put charstring to uppercase</div></div>
+<div class=CToolTip id="tt237">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceEveryOccurenceOfPattern(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace every occurance of pattern parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt238">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceEveryOccurenceOfSubstring(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace every occurance of parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt239">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceFirstOccurenceOfPattern(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace first occurance of pattern parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt240">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceFirstOccurenceOfSubstring(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in charstring&nbsp;</td>
+<td class=PType nowrap>parInStr&nbsp;</td>
+<td class=PParameter nowrap width=100%>,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace first occurance of parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt241">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_setInterfaceDown(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>)</td></tr></table></td></tr></table></blockquote>Set down a network interface</div></div>
+<div class=CToolTip id="tt242">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_setInterfaceUp(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>)</td></tr></table></td></tr></table></blockquote>Set up a network interface</div></div>
+<div class=CToolTip id="tt243">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_setIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ipaddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>subnetmask,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>broadcast,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>number&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 1</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set IP address, subnet mask and broadcast address in a network inteface If number is set, a range of virtual interfaces are set up with continuous IP address (no subnet mask, broadcast checking)</div></div>
+<div class=CToolTip id="tt244">
+<div class=CFunction>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</div></div>
+<div class=CToolTip id="tt245">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sin(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>angle</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the sine of angle radILns</div></div>
+<div class=CToolTip id="tt246">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sinVL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>freq,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>altitude,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>start_val,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>len,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>step</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return the values of the sine function</div></div>
+<div class=CToolTip id="tt247">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise a float value to square</div></div>
+<div class=CToolTip id="tt248">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Raise an integer value to square</div></div>
+<div class=CToolTip id="tt249">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrtF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Square root of float value</div></div>
+<div class=CToolTip id="tt250">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrtI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Square root of integer value</div></div>
+<div class=CToolTip id="tt251">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of float list (so the average square distance from the center of elements in the list)</div></div>
+<div class=CToolTip id="tt252">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdFLL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>u</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of float list  using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt253">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of integer list (so the average square distance from the center of points)</div></div>
+<div class=CToolTip id="tt254">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdILL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>u</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of integer list using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt255">
+<div class=CFunction>The f_strstr function locates the first  occurrence  of  the string  s2 in string s1 and returns an index of starting pont of the located string, or  -1 if the string is not found. </div></div>
+<div class=CToolTip id="tt256">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_subOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Substract two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt257">
+<div class=CFunction>The function returns a substring from a value. </div></div>
+<div class=CToolTip id="tt258">
+<div class=CFunction>Returns the pid of the process</div></div>
+<div class=CToolTip id="tt259">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>Function to get the length of the received message.</div></div>
+<div class=CToolTip id="tt260">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength4Diameter(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>Function to get the length of the received message.</div></div>
+<div class=CToolTip id="tt261">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength4Radius(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>Function to get the length of the received message.</div></div>
+<div class=CToolTip id="tt262">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_Template_subsfiletemplate(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCSubstitutionList&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_dict,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_file</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Makes the substitutions in the content of the given file, according to the dictonary</div></div>
+<div class=CToolTip id="tt263">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_Template_substitutetemplate(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCSubstitutionList&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_dict,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_string</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Makes the substitutions according to the dictonary given</div></div>
+<div class=CToolTip id="tt264">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_tic() return integer</td></tr></table></blockquote>Return the number of clock ticks used by the application since the program was launched</div></div>
+<div class=CToolTip id="tt265">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_time() return integer</td></tr></table></blockquote>Current calendar time of the system in seconds</div></div>
+<div class=CToolTip id="tt266">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_time2sec(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_year,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_mon,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_day,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_hour,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_min,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>function to convert a formated time value to seconds The time represented as local time</div></div>
+<div class=CToolTip id="tt267">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_time2sec_UTC(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_year,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_mon,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_day,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_hour,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_min,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>function to convert a formated time value to seconds The time represented as UTC</div></div>
+<div class=CToolTip id="tt268">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_timeDiff(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t_stop,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t_start</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Difference between two time</div></div>
+<div class=CToolTip id="tt269">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_toc(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Elapsed seconds since time t (only when f_tic() returns the number of clock ticks elapsed since the program was launched)</div></div>
+<div class=CToolTip id="tt270">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_unichar2charstr (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>p_unichar</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Convert universal charstring 2 charstring</div></div>
+<div class=CToolTip id="tt271">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_updateFL(</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>head,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>tail</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt272">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_updateIL(</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>head,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>tail</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt273">
+<div class=CFunction>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt274">
+<div class=CFunction>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt275">
+<div class=CFunction>Takes key K and random challenge RAND, and returns response RES, confidentiality key CK, integrity key IK and anonymity key AK.</div></div>
+<div class=CToolTip id="tt276">
+<div class=CFunction>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index/Functions3.html b/doc/apidoc/html/index/Functions3.html
new file mode 100644
index 0000000..e515fda
--- /dev/null
+++ b/doc/apidoc/html/index/Functions3.html
@@ -0,0 +1,112 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - Function Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Function Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; <a href="Functions.html#B">B</a> &middot; <a href="Functions.html#C">C</a> &middot; <a href="Functions.html#D">D</a> &middot; <a href="Functions.html#E">E</a> &middot; <a href="Functions2.html#F">F</a> &middot; G &middot; H &middot; I &middot; J &middot; <a href="#K">K</a> &middot; L &middot; <a href="#M">M</a> &middot; N &middot; O &middot; P &middot; Q &middot; <a href="#R">R</a> &middot; <a href="#S">S</a> &middot; T &middot; U &middot; V &middot; W &middot; <a href="#X">X</a> &middot; Y &middot; Z</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="K"></a>K</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#KeyAdd" id=link291 onMouseOver="ShowTip(event, 'tt277', 'link291')" onMouseOut="HideTip('tt277')" class=ISymbol>KeyAdd</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="M"></a>M</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#MixColumn" id=link292 onMouseOver="ShowTip(event, 'tt278', 'link292')" onMouseOut="HideTip('tt278')" class=ISymbol>MixColumn</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="R"></a>R</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#RijndaelEncrypt" id=link293 onMouseOver="ShowTip(event, 'tt279', 'link293')" onMouseOut="HideTip('tt279')" class=ISymbol>RijndaelEncrypt</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#RijndaelKeySchedule" id=link294 onMouseOver="ShowTip(event, 'tt280', 'link294')" onMouseOut="HideTip('tt280')" class=ISymbol>RijndaelKeySchedule</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="S"></a>S</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ShiftRow" id=link295 onMouseOver="ShowTip(event, 'tt281', 'link295')" onMouseOut="HideTip('tt281')" class=ISymbol>ShiftRow</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="X"></a>X</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>XPathQuery</span>
+<div class=ISubIndex>
+<a href="../files/TCCXPathSupport-cc.html#XPathQuery" id=link296 onMouseOver="ShowTip(event, 'tt282', 'link296')" onMouseOut="HideTip('tt282')" class=IFile>TCCXPathSupport.cc</a>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#XPathQuery" id=link297 onMouseOver="ShowTip(event, 'tt282', 'link297')" onMouseOut="HideTip('tt282')" class=IFile>TCCXPathSupport_Functions.ttcn</a></div></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt277">
+<div class=CFunction>Round key addition function</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt278">
+<div class=CFunction>MixColumn transformation</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt279">
+<div class=CFunction>Rijndael encryption function. </div></div>
+<div class=CToolTip id="tt280">
+<div class=CFunction>Rijndael key schedule function. </div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt281">
+<div class=CFunction>Row shift transformation</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt282">
+<div class=CFunction>apply an XPath query on an XML document</div></div>
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index/General.html b/doc/apidoc/html/index/General.html
new file mode 100644
index 0000000..6e7cf58
--- /dev/null
+++ b/doc/apidoc/html/index/General.html
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="#A">A</a> &middot; <a href="#B">B</a> &middot; <a href="#C">C</a> &middot; <a href="#D">D</a> &middot; <a href="#E">E</a> &middot; <a href="General2.html#F">F</a> &middot; G &middot; H &middot; <a href="General3.html#I">I</a> &middot; J &middot; <a href="General3.html#K">K</a> &middot; L &middot; <a href="General3.html#M">M</a> &middot; N &middot; <a href="General3.html#O">O</a> &middot; <a href="General3.html#P">P</a> &middot; Q &middot; <a href="General3.html#R">R</a> &middot; <a href="General3.html#S">S</a> &middot; <a href="General3.html#T">T</a> &middot; <a href="General3.html#U">U</a> &middot; <a href="General3.html#V">V</a> &middot; W &middot; <a href="General3.html#X">X</a> &middot; Y &middot; <a href="General3.html#Z">Z</a></div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="A"></a>A</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#aka_algorythm_set.h"  class=ISymbol>aka_algorythm_set.h</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="B"></a>B</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#BooleanList" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>BooleanList</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ByteSub" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>ByteSub</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="C"></a>C</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#c_TCCIPsec_anyPort" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>c_TCCIPsec_anyPort</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#c_TCCIPsec_prefixAll" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>c_TCCIPsec_prefixAll</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ComputeOPc" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>ComputeOPc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#Constants"  class=ISymbol>Constants</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/digcalc-h.html#CvtHex" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>CvtHex</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="D"></a>D</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#dec__LDIF__Base64" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>dec__LDIF__Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#dec__MIME__Base64" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>dec__MIME__Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#dec_LDIF_Base64" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>dec_LDIF_Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#dec_MIME_Base64" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>dec_MIME_Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/digcalc-h.html#digcalc.h"  class=ISymbol>digcalc.h</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/digcalc-h.html#DigestCalcHA1" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>DigestCalcHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/digcalc-h.html#DigestCalcResponse" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>DigestCalcResponse</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="E"></a>E</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/zuc-h.html#EEA3" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>EEA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/zuc-h.html#EIA3" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>EIA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#enc__LDIF__Base64" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>enc__LDIF__Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#enc__MIME__Base64" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>enc__MIME__Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#enc_LDIF_Base64" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>enc_LDIF_Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#enc_MIME_Base64" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>enc_MIME_Base64</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#Enumerations"  class=ISymbol>Enumerations</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of boolean BooleanList</td></tr></table></blockquote>List of boolean</div></div>
+<div class=CToolTip id="tt2">
+<div class=CFunction>Byte substitution transformation</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt3">
+<div class=CConstant>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>const integer c_TCCIPsec_anyPort := 0</td></tr></table></blockquote>Provides port value representing any port</div></div>
+<div class=CToolTip id="tt4">
+<div class=CConstant>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>const integer c_TCCIPsec_prefixAll := -1</td></tr></table></blockquote>Provides port value representing any port</div></div>
+<div class=CToolTip id="tt5">
+<div class=CFunction>Function to compute OPc from OP and K. </div></div>
+<div class=CToolTip id="tt6">
+<div class=CFunction>Convert hash value to hexa string</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt7">
+<div class=CFunction>Decode message from LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt8">
+<div class=CFunction>Decode message from MIME Base64 format (RFC 2045)</div></div>
+<div class=CToolTip id="tt9">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function dec_LDIF_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_b64</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Decode message from LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt10">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function dec_MIME_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_b64</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Decode message from MIME Base64 format (RFC 2045)</div></div>
+<div class=CToolTip id="tt11">
+<div class=CFunction>Calculate HA1 as defined in HTTP digest specification</div></div>
+<div class=CToolTip id="tt12">
+<div class=CFunction>Calculate request-digest/response-digest as defined in HTTP Digest specification</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt13">
+<div class=CFunction>Purpose: Encrypt message using the confidentiality algorithm 128-EEA3</div></div>
+<div class=CToolTip id="tt14">
+<div class=CFunction>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3</div></div>
+<div class=CToolTip id="tt15">
+<div class=CFunction>Encode message to LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt16">
+<div class=CFunction>Encode message to MIME Base64 format (RFC 2045)</div></div>
+<div class=CToolTip id="tt17">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function enc_LDIF_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>p_msg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Encode message to LDIF Base64 format (RFC 2849)</div></div>
+<div class=CToolTip id="tt18">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function enc_MIME_Base64(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>p_msg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Encode message to MIME Base64 format (RFC 2045)</div></div>
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index/General2.html b/doc/apidoc/html/index/General2.html
new file mode 100644
index 0000000..a197ca0
--- /dev/null
+++ b/doc/apidoc/html/index/General2.html
@@ -0,0 +1,3920 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General.html#C">C</a> &middot; <a href="General.html#D">D</a> &middot; <a href="General.html#E">E</a> &middot; <a href="#F">F</a> &middot; G &middot; H &middot; <a href="General3.html#I">I</a> &middot; J &middot; <a href="General3.html#K">K</a> &middot; L &middot; <a href="General3.html#M">M</a> &middot; N &middot; <a href="General3.html#O">O</a> &middot; <a href="General3.html#P">P</a> &middot; Q &middot; <a href="General3.html#R">R</a> &middot; <a href="General3.html#S">S</a> &middot; <a href="General3.html#T">T</a> &middot; <a href="General3.html#U">U</a> &middot; <a href="General3.html#V">V</a> &middot; W &middot; <a href="General3.html#X">X</a> &middot; Y &middot; <a href="General3.html#Z">Z</a></div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="F"></a>F</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__acos" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>f__acos</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__addOctetstring" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>f__addOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__asin" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>f__asin</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCAssertion-cc.html#f__assert" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>f__assert</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__averageFL" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>f__averageFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__averageIL" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>f__averageIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate__HMAC__MD5" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>f__calculate__HMAC__MD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate__HMAC__SHA1" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>f__calculate__HMAC__SHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate128__EEA3" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>f__calculate128__EEA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate128__EIA3" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>f__calculate128__EIA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateDigestHA1" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')" class=ISymbol>f__calculateDigestHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateDigestResponse" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')" class=ISymbol>f__calculateDigestResponse</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateHMACMD5" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')" class=ISymbol>f__calculateHMACMD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateMD5" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')" class=ISymbol>f__calculateMD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__ceil" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')" class=ISymbol>f__ceil</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTitanMetadata-cc.html#f__compilationTime" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')" class=ISymbol>f__compilationTime</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__compOctetstring" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')" class=ISymbol>f__compOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__cos" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')" class=ISymbol>f__cos</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__cosVL" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')" class=ISymbol>f__cosVL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__ctime" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')" class=ISymbol>f__ctime</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__ctime__UTC" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')" class=ISymbol>f__ctime__UTC</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#f__dec__TBCD" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')" class=ISymbol>f__dec__TBCD</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__deleteIP" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')" class=ISymbol>f__deleteIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__EAPSIM__A3A8" id=link42 onMouseOver="ShowTip(event, 'tt42', 'link42')" onMouseOut="HideTip('tt42')" class=ISymbol>f__EAPSIM__A3A8</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#f__enc__TBCD" id=link43 onMouseOver="ShowTip(event, 'tt43', 'link43')" onMouseOut="HideTip('tt43')" class=ISymbol>f__enc__TBCD</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__exp" id=link44 onMouseOver="ShowTip(event, 'tt44', 'link44')" onMouseOut="HideTip('tt44')" class=ISymbol>f__exp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__chdir" id=link45 onMouseOver="ShowTip(event, 'tt45', 'link45')" onMouseOut="HideTip('tt45')" class=ISymbol>f__FIO__chdir</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__close" id=link46 onMouseOver="ShowTip(event, 'tt46', 'link46')" onMouseOut="HideTip('tt46')" class=ISymbol>f__FIO__close</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__flush" id=link47 onMouseOver="ShowTip(event, 'tt47', 'link47')" onMouseOut="HideTip('tt47')" class=ISymbol>f__FIO__flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__get__error__code" id=link48 onMouseOver="ShowTip(event, 'tt48', 'link48')" onMouseOut="HideTip('tt48')" class=ISymbol>f__FIO__get__error__code</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__get__error__string" id=link49 onMouseOver="ShowTip(event, 'tt49', 'link49')" onMouseOut="HideTip('tt49')" class=ISymbol>f__FIO__get__error__string</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open" id=link50 onMouseOver="ShowTip(event, 'tt50', 'link50')" onMouseOut="HideTip('tt50')" class=ISymbol>f__FIO__open</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__rdwr" id=link51 onMouseOver="ShowTip(event, 'tt51', 'link51')" onMouseOut="HideTip('tt51')" class=ISymbol>f__FIO__open__append__rdwr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__rdwr__excl" id=link52 onMouseOver="ShowTip(event, 'tt52', 'link52')" onMouseOut="HideTip('tt52')" class=ISymbol>f__FIO__open__append__rdwr__excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__wronly" id=link53 onMouseOver="ShowTip(event, 'tt53', 'link53')" onMouseOut="HideTip('tt53')" class=ISymbol>f__FIO__open__append__wronly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__wronly__excl" id=link54 onMouseOver="ShowTip(event, 'tt54', 'link54')" onMouseOut="HideTip('tt54')" class=ISymbol>f__FIO__open__append__wronly__excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__rdonly" id=link55 onMouseOver="ShowTip(event, 'tt55', 'link55')" onMouseOut="HideTip('tt55')" class=ISymbol>f__FIO__open__rdonly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__rdwr" id=link56 onMouseOver="ShowTip(event, 'tt56', 'link56')" onMouseOut="HideTip('tt56')" class=ISymbol>f__FIO__open__trunc__rdwr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__rdwr__excl" id=link57 onMouseOver="ShowTip(event, 'tt57', 'link57')" onMouseOut="HideTip('tt57')" class=ISymbol>f__FIO__open__trunc__rdwr__excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__wronly" id=link58 onMouseOver="ShowTip(event, 'tt58', 'link58')" onMouseOut="HideTip('tt58')" class=ISymbol>f__FIO__open__trunc__wronly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__wronly__excl" id=link59 onMouseOver="ShowTip(event, 'tt59', 'link59')" onMouseOut="HideTip('tt59')" class=ISymbol>f__FIO__open__trunc__wronly__excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__opened" id=link60 onMouseOver="ShowTip(event, 'tt60', 'link60')" onMouseOut="HideTip('tt60')" class=ISymbol>f__FIO__opened</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read" id=link61 onMouseOver="ShowTip(event, 'tt61', 'link61')" onMouseOut="HideTip('tt61')" class=ISymbol>f__FIO__read</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data" id=link62 onMouseOver="ShowTip(event, 'tt62', 'link62')" onMouseOut="HideTip('tt62')" class=ISymbol>f__FIO__read__data</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data__TLV" id=link63 onMouseOver="ShowTip(event, 'tt63', 'link63')" onMouseOut="HideTip('tt63')" class=ISymbol>f__FIO__read__data__TLV</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data__until" id=link64 onMouseOver="ShowTip(event, 'tt64', 'link64')" onMouseOut="HideTip('tt64')" class=ISymbol>f__FIO__read__data__until</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__text" id=link65 onMouseOver="ShowTip(event, 'tt65', 'link65')" onMouseOut="HideTip('tt65')" class=ISymbol>f__FIO__read__text</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__text__until" id=link66 onMouseOver="ShowTip(event, 'tt66', 'link66')" onMouseOut="HideTip('tt66')" class=ISymbol>f__FIO__read__text__until</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__realize__error" id=link67 onMouseOver="ShowTip(event, 'tt67', 'link67')" onMouseOut="HideTip('tt67')" class=ISymbol>f__FIO__realize__error</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__backward" id=link68 onMouseOver="ShowTip(event, 'tt68', 'link68')" onMouseOut="HideTip('tt68')" class=ISymbol>f__FIO__seek__backward</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__end" id=link69 onMouseOver="ShowTip(event, 'tt69', 'link69')" onMouseOut="HideTip('tt69')" class=ISymbol>f__FIO__seek__end</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__forward" id=link70 onMouseOver="ShowTip(event, 'tt70', 'link70')" onMouseOut="HideTip('tt70')" class=ISymbol>f__FIO__seek__forward</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__home" id=link71 onMouseOver="ShowTip(event, 'tt71', 'link71')" onMouseOut="HideTip('tt71')" class=ISymbol>f__FIO__seek__home</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__set__filedescriptor__previousline" id=link72 onMouseOver="ShowTip(event, 'tt72', 'link72')" onMouseOut="HideTip('tt72')" class=ISymbol>f__FIO__set__filedescriptor__previousline</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write" id=link73 onMouseOver="ShowTip(event, 'tt73', 'link73')" onMouseOut="HideTip('tt73')" class=ISymbol>f__FIO__write</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__data" id=link74 onMouseOver="ShowTip(event, 'tt74', 'link74')" onMouseOut="HideTip('tt74')" class=ISymbol>f__FIO__write__data</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__data__flush" id=link75 onMouseOver="ShowTip(event, 'tt75', 'link75')" onMouseOut="HideTip('tt75')" class=ISymbol>f__FIO__write__data__flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__text" id=link76 onMouseOver="ShowTip(event, 'tt76', 'link76')" onMouseOut="HideTip('tt76')" class=ISymbol>f__FIO__write__text</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__text__flush" id=link77 onMouseOver="ShowTip(event, 'tt77', 'link77')" onMouseOut="HideTip('tt77')" class=ISymbol>f__FIO__write__text__flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__floor" id=link78 onMouseOver="ShowTip(event, 'tt78', 'link78')" onMouseOut="HideTip('tt78')" class=ISymbol>f__floor</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getCurrentDateWithOffset" id=link79 onMouseOver="ShowTip(event, 'tt79', 'link79')" onMouseOut="HideTip('tt79')" class=ISymbol>f__getCurrentDateWithOffset</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getCurrentGMTDate" id=link80 onMouseOver="ShowTip(event, 'tt80', 'link80')" onMouseOut="HideTip('tt80')" class=ISymbol>f__getCurrentGMTDate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv-cc.html#f__GetEnv" id=link81 onMouseOver="ShowTip(event, 'tt81', 'link81')" onMouseOut="HideTip('tt81')" class=ISymbol>f__GetEnv</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getHostName" id=link82 onMouseOver="ShowTip(event, 'tt82', 'link82')" onMouseOut="HideTip('tt82')" class=ISymbol>f__getHostName</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getIP" id=link83 onMouseOver="ShowTip(event, 'tt83', 'link83')" onMouseOut="HideTip('tt83')" class=ISymbol>f__getIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getIpAddr" id=link84 onMouseOver="ShowTip(event, 'tt84', 'link84')" onMouseOut="HideTip('tt84')" class=ISymbol>f__getIpAddr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getTimeFormatted" id=link85 onMouseOver="ShowTip(event, 'tt85', 'link85')" onMouseOut="HideTip('tt85')" class=ISymbol>f__getTimeFormatted</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__calculateAUTN" id=link86 onMouseOver="ShowTip(event, 'tt86', 'link86')" onMouseOut="HideTip('tt86')" class=ISymbol>f__IMSAKA__calculateAUTN</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f1" id=link87 onMouseOver="ShowTip(event, 'tt87', 'link87')" onMouseOut="HideTip('tt87')" class=ISymbol>f__IMSAKA__f1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f1star" id=link88 onMouseOver="ShowTip(event, 'tt88', 'link88')" onMouseOut="HideTip('tt88')" class=ISymbol>f__IMSAKA__f1star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f2" id=link89 onMouseOver="ShowTip(event, 'tt89', 'link89')" onMouseOut="HideTip('tt89')" class=ISymbol>f__IMSAKA__f2</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f2345" id=link90 onMouseOver="ShowTip(event, 'tt90', 'link90')" onMouseOut="HideTip('tt90')" class=ISymbol>f__IMSAKA__f2345</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f3" id=link91 onMouseOver="ShowTip(event, 'tt91', 'link91')" onMouseOut="HideTip('tt91')" class=ISymbol>f__IMSAKA__f3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f4" id=link92 onMouseOver="ShowTip(event, 'tt92', 'link92')" onMouseOut="HideTip('tt92')" class=ISymbol>f__IMSAKA__f4</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f5" id=link93 onMouseOver="ShowTip(event, 'tt93', 'link93')" onMouseOut="HideTip('tt93')" class=ISymbol>f__IMSAKA__f5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f5star" id=link94 onMouseOver="ShowTip(event, 'tt94', 'link94')" onMouseOut="HideTip('tt94')" class=ISymbol>f__IMSAKA__f5star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__log" id=link95 onMouseOver="ShowTip(event, 'tt95', 'link95')" onMouseOut="HideTip('tt95')" class=ISymbol>f__log</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__maxFL" id=link96 onMouseOver="ShowTip(event, 'tt96', 'link96')" onMouseOut="HideTip('tt96')" class=ISymbol>f__maxFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__maxIL" id=link97 onMouseOver="ShowTip(event, 'tt97', 'link97')" onMouseOut="HideTip('tt97')" class=ISymbol>f__maxIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__minFL" id=link98 onMouseOver="ShowTip(event, 'tt98', 'link98')" onMouseOut="HideTip('tt98')" class=ISymbol>f__minFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__minIL" id=link99 onMouseOver="ShowTip(event, 'tt99', 'link99')" onMouseOut="HideTip('tt99')" class=ISymbol>f__minIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powFF" id=link100 onMouseOver="ShowTip(event, 'tt100', 'link100')" onMouseOut="HideTip('tt100')" class=ISymbol>f__powFF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powFI" id=link101 onMouseOver="ShowTip(event, 'tt101', 'link101')" onMouseOut="HideTip('tt101')" class=ISymbol>f__powFI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powIF" id=link102 onMouseOver="ShowTip(event, 'tt102', 'link102')" onMouseOut="HideTip('tt102')" class=ISymbol>f__powIF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powII" id=link103 onMouseOver="ShowTip(event, 'tt103', 'link103')" onMouseOut="HideTip('tt103')" class=ISymbol>f__powII</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv-cc.html#f__PutEnv" id=link104 onMouseOver="ShowTip(event, 'tt104', 'link104')" onMouseOut="HideTip('tt104')" class=ISymbol>f__PutEnv</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__putInLowercase" id=link105 onMouseOver="ShowTip(event, 'tt105', 'link105')" onMouseOut="HideTip('tt105')" class=ISymbol>f__putInLowercase</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__putInUppercase" id=link106 onMouseOver="ShowTip(event, 'tt106', 'link106')" onMouseOut="HideTip('tt106')" class=ISymbol>f__putInUppercase</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setInterfaceDown" id=link107 onMouseOver="ShowTip(event, 'tt107', 'link107')" onMouseOut="HideTip('tt107')" class=ISymbol>f__setInterfaceDown</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setInterfaceUp" id=link108 onMouseOver="ShowTip(event, 'tt108', 'link108')" onMouseOut="HideTip('tt108')" class=ISymbol>f__setInterfaceUp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setIP" id=link109 onMouseOver="ShowTip(event, 'tt109', 'link109')" onMouseOut="HideTip('tt109')" class=ISymbol>f__setIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sin" id=link110 onMouseOver="ShowTip(event, 'tt110', 'link110')" onMouseOut="HideTip('tt110')" class=ISymbol>f__sin</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sinVL" id=link111 onMouseOver="ShowTip(event, 'tt111', 'link111')" onMouseOut="HideTip('tt111')" class=ISymbol>f__sinVL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrF" id=link112 onMouseOver="ShowTip(event, 'tt112', 'link112')" onMouseOut="HideTip('tt112')" class=ISymbol>f__sqrF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrI" id=link113 onMouseOver="ShowTip(event, 'tt113', 'link113')" onMouseOut="HideTip('tt113')" class=ISymbol>f__sqrI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrtF" id=link114 onMouseOver="ShowTip(event, 'tt114', 'link114')" onMouseOut="HideTip('tt114')" class=ISymbol>f__sqrtF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrtI" id=link115 onMouseOver="ShowTip(event, 'tt115', 'link115')" onMouseOut="HideTip('tt115')" class=ISymbol>f__sqrtI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdFL" id=link116 onMouseOver="ShowTip(event, 'tt116', 'link116')" onMouseOut="HideTip('tt116')" class=ISymbol>f__stdFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdFLL" id=link117 onMouseOver="ShowTip(event, 'tt117', 'link117')" onMouseOut="HideTip('tt117')" class=ISymbol>f__stdFLL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdIL" id=link118 onMouseOver="ShowTip(event, 'tt118', 'link118')" onMouseOut="HideTip('tt118')" class=ISymbol>f__stdIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdILL" id=link119 onMouseOver="ShowTip(event, 'tt119', 'link119')" onMouseOut="HideTip('tt119')" class=ISymbol>f__stdILL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__subOctetstring" id=link120 onMouseOver="ShowTip(event, 'tt120', 'link120')" onMouseOut="HideTip('tt120')" class=ISymbol>f__subOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f__TCCSecurity__hex2char</span>
+<div class=ISubIndex>
+<a href="../files/TCCSecurity-cc.html#f__TCCSecurity__hex2char" id=link121 onMouseOver="ShowTip(event, 'tt121', 'link121')" onMouseOut="HideTip('tt121')" class=IFile>TCCSecurity.cc</a>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f__TCCSecurity__hex2char" id=link122 onMouseOver="ShowTip(event, 'tt121', 'link122')" onMouseOut="HideTip('tt121')" class=IFile>TCCSecurity_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__tic" id=link123 onMouseOver="ShowTip(event, 'tt122', 'link123')" onMouseOut="HideTip('tt122')" class=ISymbol>f__tic</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time" id=link124 onMouseOver="ShowTip(event, 'tt123', 'link124')" onMouseOut="HideTip('tt123')" class=ISymbol>f__time</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time2sec" id=link125 onMouseOver="ShowTip(event, 'tt124', 'link125')" onMouseOut="HideTip('tt124')" class=ISymbol>f__time2sec</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time2sec__UTC" id=link126 onMouseOver="ShowTip(event, 'tt125', 'link126')" onMouseOut="HideTip('tt125')" class=ISymbol>f__time2sec__UTC</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__timeDiff" id=link127 onMouseOver="ShowTip(event, 'tt126', 'link127')" onMouseOut="HideTip('tt126')" class=ISymbol>f__timeDiff</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__toc" id=link128 onMouseOver="ShowTip(event, 'tt127', 'link128')" onMouseOut="HideTip('tt127')" class=ISymbol>f__toc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__updateFL" id=link129 onMouseOver="ShowTip(event, 'tt128', 'link129')" onMouseOut="HideTip('tt128')" class=ISymbol>f__updateFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__updateIL" id=link130 onMouseOver="ShowTip(event, 'tt129', 'link130')" onMouseOut="HideTip('tt129')" class=ISymbol>f__updateIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_acos" id=link131 onMouseOver="ShowTip(event, 'tt130', 'link131')" onMouseOut="HideTip('tt130')" class=ISymbol>f_acos</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_addOctetstring" id=link132 onMouseOver="ShowTip(event, 'tt131', 'link132')" onMouseOut="HideTip('tt131')" class=ISymbol>f_addOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_asin" id=link133 onMouseOver="ShowTip(event, 'tt132', 'link133')" onMouseOut="HideTip('tt132')" class=ISymbol>f_asin</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCAssertion_Functions-ttcn.html#f_assert" id=link134 onMouseOver="ShowTip(event, 'tt133', 'link134')" onMouseOut="HideTip('tt133')" class=ISymbol>f_assert</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_averageFL" id=link135 onMouseOver="ShowTip(event, 'tt134', 'link135')" onMouseOut="HideTip('tt134')" class=ISymbol>f_averageFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_averageIL" id=link136 onMouseOver="ShowTip(event, 'tt135', 'link136')" onMouseOut="HideTip('tt135')" class=ISymbol>f_averageIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate_HMAC_MD5" id=link137 onMouseOver="ShowTip(event, 'tt136', 'link137')" onMouseOut="HideTip('tt136')" class=ISymbol>f_calculate_HMAC_MD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate_HMAC_SHA1" id=link138 onMouseOver="ShowTip(event, 'tt137', 'link138')" onMouseOut="HideTip('tt137')" class=ISymbol>f_calculate_HMAC_SHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate128_EEA3" id=link139 onMouseOver="ShowTip(event, 'tt138', 'link139')" onMouseOut="HideTip('tt138')" class=ISymbol>f_calculate128_EEA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate128_EIA3" id=link140 onMouseOver="ShowTip(event, 'tt139', 'link140')" onMouseOut="HideTip('tt139')" class=ISymbol>f_calculate128_EIA3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateDigestHA1" id=link141 onMouseOver="ShowTip(event, 'tt140', 'link141')" onMouseOut="HideTip('tt140')" class=ISymbol>f_calculateDigestHA1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateDigestResponse" id=link142 onMouseOver="ShowTip(event, 'tt141', 'link142')" onMouseOut="HideTip('tt141')" class=ISymbol>f_calculateDigestResponse</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateHMACMD5" id=link143 onMouseOver="ShowTip(event, 'tt142', 'link143')" onMouseOut="HideTip('tt142')" class=ISymbol>f_calculateHMACMD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateMD5" id=link144 onMouseOver="ShowTip(event, 'tt143', 'link144')" onMouseOut="HideTip('tt143')" class=ISymbol>f_calculateMD5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_ceil" id=link145 onMouseOver="ShowTip(event, 'tt144', 'link145')" onMouseOut="HideTip('tt144')" class=ISymbol>f_ceil</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_charstr2unichar" id=link146 onMouseOver="ShowTip(event, 'tt145', 'link146')" onMouseOut="HideTip('tt145')" class=ISymbol>f_charstr2unichar</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#f_compilationTime" id=link147 onMouseOver="ShowTip(event, 'tt146', 'link147')" onMouseOut="HideTip('tt146')" class=ISymbol>f_compilationTime</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_compOctetstring" id=link148 onMouseOver="ShowTip(event, 'tt147', 'link148')" onMouseOut="HideTip('tt147')" class=ISymbol>f_compOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_convertIPAddrToBinary</span>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_convertIPAddrToBinary" id=link149 onMouseOver="ShowTip(event, 'tt148', 'link149')" onMouseOut="HideTip('tt148')" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_convertIPAddrToBinary" id=link150 onMouseOver="ShowTip(event, 'tt148', 'link150')" onMouseOut="HideTip('tt148')" class=IFile>TCCConversion_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_cos" id=link151 onMouseOver="ShowTip(event, 'tt149', 'link151')" onMouseOut="HideTip('tt149')" class=ISymbol>f_cos</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_cosVL" id=link152 onMouseOver="ShowTip(event, 'tt150', 'link152')" onMouseOut="HideTip('tt150')" class=ISymbol>f_cosVL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_ctime" id=link153 onMouseOver="ShowTip(event, 'tt151', 'link153')" onMouseOut="HideTip('tt151')" class=ISymbol>f_ctime</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_ctime_UTC" id=link154 onMouseOver="ShowTip(event, 'tt152', 'link154')" onMouseOut="HideTip('tt152')" class=ISymbol>f_ctime_UTC</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_dec_TBCD" id=link155 onMouseOver="ShowTip(event, 'tt153', 'link155')" onMouseOut="HideTip('tt153')" class=ISymbol>f_dec_TBCD</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_decGSM7bit" id=link156 onMouseOver="ShowTip(event, 'tt154', 'link156')" onMouseOut="HideTip('tt154')" class=ISymbol>f_decGSM7bit</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_deleteIP" id=link157 onMouseOver="ShowTip(event, 'tt155', 'link157')" onMouseOut="HideTip('tt155')" class=ISymbol>f_deleteIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_delIP_ip</span>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_delIP_ip" id=link158 onMouseOver="ShowTip(event, 'tt156', 'link158')" onMouseOut="HideTip('tt156')" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_delIP_ip" id=link159 onMouseOver="ShowTip(event, 'tt156', 'link159')" onMouseOut="HideTip('tt156')" class=IFile>TCCInterface_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_EAPSIM_A3A8" id=link160 onMouseOver="ShowTip(event, 'tt157', 'link160')" onMouseOut="HideTip('tt157')" class=ISymbol>f_EAPSIM_A3A8</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_enc_TBCD" id=link161 onMouseOver="ShowTip(event, 'tt158', 'link161')" onMouseOut="HideTip('tt158')" class=ISymbol>f_enc_TBCD</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_encGSM7bit" id=link162 onMouseOver="ShowTip(event, 'tt159', 'link162')" onMouseOut="HideTip('tt159')" class=ISymbol>f_encGSM7bit</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_exp" id=link163 onMouseOver="ShowTip(event, 'tt160', 'link163')" onMouseOut="HideTip('tt160')" class=ISymbol>f_exp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_chdir" id=link164 onMouseOver="ShowTip(event, 'tt161', 'link164')" onMouseOut="HideTip('tt161')" class=ISymbol>f_FIO_chdir</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_chmod</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_chmod" id=link165 onMouseOver="ShowTip(event, 'tt162', 'link165')" onMouseOut="HideTip('tt162')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_chmod" id=link166 onMouseOver="ShowTip(event, 'tt162', 'link166')" onMouseOut="HideTip('tt162')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_close" id=link167 onMouseOver="ShowTip(event, 'tt163', 'link167')" onMouseOut="HideTip('tt163')" class=ISymbol>f_FIO_close</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_fileOrDirExists</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_fileOrDirExists" id=link168 onMouseOver="ShowTip(event, 'tt164', 'link168')" onMouseOut="HideTip('tt164')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_fileOrDirExists" id=link169 onMouseOver="ShowTip(event, 'tt164', 'link169')" onMouseOut="HideTip('tt164')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_flush" id=link170 onMouseOver="ShowTip(event, 'tt165', 'link170')" onMouseOut="HideTip('tt165')" class=ISymbol>f_FIO_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_get_error_code" id=link171 onMouseOver="ShowTip(event, 'tt166', 'link171')" onMouseOut="HideTip('tt166')" class=ISymbol>f_FIO_get_error_code</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_get_error_string" id=link172 onMouseOver="ShowTip(event, 'tt167', 'link172')" onMouseOut="HideTip('tt167')" class=ISymbol>f_FIO_get_error_string</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_mkdir</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_mkdir" id=link173 onMouseOver="ShowTip(event, 'tt168', 'link173')" onMouseOut="HideTip('tt168')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_mkdir" id=link174 onMouseOver="ShowTip(event, 'tt168', 'link174')" onMouseOut="HideTip('tt168')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_rdwr" id=link175 onMouseOver="ShowTip(event, 'tt169', 'link175')" onMouseOut="HideTip('tt169')" class=ISymbol>f_FIO_open_append_rdwr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_rdwr_excl" id=link176 onMouseOver="ShowTip(event, 'tt170', 'link176')" onMouseOut="HideTip('tt170')" class=ISymbol>f_FIO_open_append_rdwr_excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_wronly" id=link177 onMouseOver="ShowTip(event, 'tt171', 'link177')" onMouseOut="HideTip('tt171')" class=ISymbol>f_FIO_open_append_wronly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_wronly_excl" id=link178 onMouseOver="ShowTip(event, 'tt172', 'link178')" onMouseOut="HideTip('tt172')" class=ISymbol>f_FIO_open_append_wronly_excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_rdonly" id=link179 onMouseOver="ShowTip(event, 'tt173', 'link179')" onMouseOut="HideTip('tt173')" class=ISymbol>f_FIO_open_rdonly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_rdwr" id=link180 onMouseOver="ShowTip(event, 'tt174', 'link180')" onMouseOut="HideTip('tt174')" class=ISymbol>f_FIO_open_trunc_rdwr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_rdwr_excl" id=link181 onMouseOver="ShowTip(event, 'tt175', 'link181')" onMouseOut="HideTip('tt175')" class=ISymbol>f_FIO_open_trunc_rdwr_excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_wronly" id=link182 onMouseOver="ShowTip(event, 'tt176', 'link182')" onMouseOut="HideTip('tt176')" class=ISymbol>f_FIO_open_trunc_wronly</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_wronly_excl" id=link183 onMouseOver="ShowTip(event, 'tt177', 'link183')" onMouseOut="HideTip('tt177')" class=ISymbol>f_FIO_open_trunc_wronly_excl</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data" id=link184 onMouseOver="ShowTip(event, 'tt178', 'link184')" onMouseOut="HideTip('tt178')" class=ISymbol>f_FIO_read_data</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data_TLV" id=link185 onMouseOver="ShowTip(event, 'tt179', 'link185')" onMouseOut="HideTip('tt179')" class=ISymbol>f_FIO_read_data_TLV</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data_until" id=link186 onMouseOver="ShowTip(event, 'tt180', 'link186')" onMouseOut="HideTip('tt180')" class=ISymbol>f_FIO_read_data_until</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_text" id=link187 onMouseOver="ShowTip(event, 'tt181', 'link187')" onMouseOut="HideTip('tt181')" class=ISymbol>f_FIO_read_text</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_text_until" id=link188 onMouseOver="ShowTip(event, 'tt182', 'link188')" onMouseOut="HideTip('tt182')" class=ISymbol>f_FIO_read_text_until</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_rmdir</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_rmdir" id=link189 onMouseOver="ShowTip(event, 'tt183', 'link189')" onMouseOut="HideTip('tt183')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_rmdir" id=link190 onMouseOver="ShowTip(event, 'tt183', 'link190')" onMouseOut="HideTip('tt183')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_backward" id=link191 onMouseOver="ShowTip(event, 'tt184', 'link191')" onMouseOut="HideTip('tt184')" class=ISymbol>f_FIO_seek_backward</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_end" id=link192 onMouseOver="ShowTip(event, 'tt185', 'link192')" onMouseOut="HideTip('tt185')" class=ISymbol>f_FIO_seek_end</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_forward" id=link193 onMouseOver="ShowTip(event, 'tt186', 'link193')" onMouseOut="HideTip('tt186')" class=ISymbol>f_FIO_seek_forward</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_home" id=link194 onMouseOver="ShowTip(event, 'tt187', 'link194')" onMouseOut="HideTip('tt187')" class=ISymbol>f_FIO_seek_home</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_set_filedescriptor_previousline" id=link195 onMouseOver="ShowTip(event, 'tt188', 'link195')" onMouseOut="HideTip('tt188')" class=ISymbol>f_FIO_set_filedescriptor_previousline</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_FIO_stat</span>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_stat" id=link196 onMouseOver="ShowTip(event, 'tt189', 'link196')" onMouseOut="HideTip('tt189')" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_stat" id=link197 onMouseOver="ShowTip(event, 'tt189', 'link197')" onMouseOut="HideTip('tt189')" class=IFile>TCCFileIO_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_data" id=link198 onMouseOver="ShowTip(event, 'tt190', 'link198')" onMouseOut="HideTip('tt190')" class=ISymbol>f_FIO_write_data</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_data_flush" id=link199 onMouseOver="ShowTip(event, 'tt191', 'link199')" onMouseOut="HideTip('tt191')" class=ISymbol>f_FIO_write_data_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_text" id=link200 onMouseOver="ShowTip(event, 'tt192', 'link200')" onMouseOut="HideTip('tt192')" class=ISymbol>f_FIO_write_text</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_text_flush" id=link201 onMouseOver="ShowTip(event, 'tt193', 'link201')" onMouseOut="HideTip('tt193')" class=ISymbol>f_FIO_write_text_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_floor" id=link202 onMouseOver="ShowTip(event, 'tt194', 'link202')" onMouseOut="HideTip('tt194')" class=ISymbol>f_floor</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_bfree" id=link203 onMouseOver="ShowTip(event, 'tt195', 'link203')" onMouseOut="HideTip('tt195')" class=ISymbol>f_FS_bfree</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_blocks" id=link204 onMouseOver="ShowTip(event, 'tt196', 'link204')" onMouseOut="HideTip('tt196')" class=ISymbol>f_FS_blocks</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_bsize" id=link205 onMouseOver="ShowTip(event, 'tt197', 'link205')" onMouseOut="HideTip('tt197')" class=ISymbol>f_FS_bsize</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_dspacerate" id=link206 onMouseOver="ShowTip(event, 'tt198', 'link206')" onMouseOut="HideTip('tt198')" class=ISymbol>f_FS_dspacerate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_gen_Exponential_Distribution(in_float_p_lambda)return_float" id=link207 onMouseOver="ShowTip(event, 'tt199', 'link207')" onMouseOut="HideTip('tt199')" class=ISymbol>f_gen_Exponential_Distribution(in float p_lambda)return float</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_generate_poissonTable" id=link208 onMouseOver="ShowTip(event, 'tt200', 'link208')" onMouseOut="HideTip('tt200')" class=ISymbol>f_generate_poissonTable</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getCurrentDateWithOffset" id=link209 onMouseOver="ShowTip(event, 'tt201', 'link209')" onMouseOut="HideTip('tt201')" class=ISymbol>f_getCurrentDateWithOffset</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getCurrentGMTDate" id=link210 onMouseOver="ShowTip(event, 'tt202', 'link210')" onMouseOut="HideTip('tt202')" class=ISymbol>f_getCurrentGMTDate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#f_GetEnv" id=link211 onMouseOver="ShowTip(event, 'tt203', 'link211')" onMouseOut="HideTip('tt203')" class=ISymbol>f_GetEnv</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getHostName" id=link212 onMouseOver="ShowTip(event, 'tt204', 'link212')" onMouseOut="HideTip('tt204')" class=ISymbol>f_getHostName</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIP" id=link213 onMouseOver="ShowTip(event, 'tt205', 'link213')" onMouseOut="HideTip('tt205')" class=ISymbol>f_getIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIpAddr" id=link214 onMouseOver="ShowTip(event, 'tt206', 'link214')" onMouseOut="HideTip('tt206')" class=ISymbol>f_getIpAddr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_getIpAddresses</span>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_getIpAddresses" id=link215 onMouseOver="ShowTip(event, 'tt207', 'link215')" onMouseOut="HideTip('tt207')" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIpAddresses" id=link216 onMouseOver="ShowTip(event, 'tt207', 'link216')" onMouseOut="HideTip('tt207')" class=IFile>TCCInterface_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_getNext_poissonValue" id=link217 onMouseOver="ShowTip(event, 'tt208', 'link217')" onMouseOut="HideTip('tt208')" class=ISymbol>f_getNext_poissonValue</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getTimeFormatted" id=link218 onMouseOver="ShowTip(event, 'tt209', 'link218')" onMouseOut="HideTip('tt209')" class=ISymbol>f_getTimeFormatted</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_calculateAUTN" id=link219 onMouseOver="ShowTip(event, 'tt210', 'link219')" onMouseOut="HideTip('tt210')" class=ISymbol>f_IMSAKA_calculateAUTN</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f1" id=link220 onMouseOver="ShowTip(event, 'tt211', 'link220')" onMouseOut="HideTip('tt211')" class=ISymbol>f_IMSAKA_f1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f1star" id=link221 onMouseOver="ShowTip(event, 'tt212', 'link221')" onMouseOut="HideTip('tt212')" class=ISymbol>f_IMSAKA_f1star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f2" id=link222 onMouseOver="ShowTip(event, 'tt213', 'link222')" onMouseOut="HideTip('tt213')" class=ISymbol>f_IMSAKA_f2</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f2345" id=link223 onMouseOver="ShowTip(event, 'tt214', 'link223')" onMouseOut="HideTip('tt214')" class=ISymbol>f_IMSAKA_f2345</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f3" id=link224 onMouseOver="ShowTip(event, 'tt215', 'link224')" onMouseOut="HideTip('tt215')" class=ISymbol>f_IMSAKA_f3</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f4" id=link225 onMouseOver="ShowTip(event, 'tt216', 'link225')" onMouseOut="HideTip('tt216')" class=ISymbol>f_IMSAKA_f4</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f5" id=link226 onMouseOver="ShowTip(event, 'tt217', 'link226')" onMouseOut="HideTip('tt217')" class=ISymbol>f_IMSAKA_f5</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f5star" id=link227 onMouseOver="ShowTip(event, 'tt218', 'link227')" onMouseOut="HideTip('tt218')" class=ISymbol>f_IMSAKA_f5star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_add" id=link228 onMouseOver="ShowTip(event, 'tt219', 'link228')" onMouseOut="HideTip('tt219')" class=ISymbol>f_IPsec_SADB_add</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_delete" id=link229 onMouseOver="ShowTip(event, 'tt220', 'link229')" onMouseOut="HideTip('tt220')" class=ISymbol>f_IPsec_SADB_delete</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_flush" id=link230 onMouseOver="ShowTip(event, 'tt221', 'link230')" onMouseOut="HideTip('tt221')" class=ISymbol>f_IPsec_SADB_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_add" id=link231 onMouseOver="ShowTip(event, 'tt222', 'link231')" onMouseOut="HideTip('tt222')" class=ISymbol>f_IPsec_SPDB_add</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_delete" id=link232 onMouseOver="ShowTip(event, 'tt223', 'link232')" onMouseOut="HideTip('tt223')" class=ISymbol>f_IPsec_SPDB_delete</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_flush" id=link233 onMouseOver="ShowTip(event, 'tt224', 'link233')" onMouseOut="HideTip('tt224')" class=ISymbol>f_IPsec_SPDB_flush</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_log" id=link234 onMouseOver="ShowTip(event, 'tt225', 'link234')" onMouseOut="HideTip('tt225')" class=ISymbol>f_log</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_maxFL" id=link235 onMouseOver="ShowTip(event, 'tt226', 'link235')" onMouseOut="HideTip('tt226')" class=ISymbol>f_maxFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_maxIL" id=link236 onMouseOver="ShowTip(event, 'tt227', 'link236')" onMouseOut="HideTip('tt227')" class=ISymbol>f_maxIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_minFL" id=link237 onMouseOver="ShowTip(event, 'tt228', 'link237')" onMouseOut="HideTip('tt228')" class=ISymbol>f_minFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_minIL" id=link238 onMouseOver="ShowTip(event, 'tt229', 'link238')" onMouseOut="HideTip('tt229')" class=ISymbol>f_minIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_oct2char_safe</span>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_oct2char_safe" id=link239 onMouseOver="ShowTip(event, 'tt230', 'link239')" onMouseOut="HideTip('tt230')" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_oct2char_safe" id=link240 onMouseOver="ShowTip(event, 'tt230', 'link240')" onMouseOut="HideTip('tt230')" class=IFile>TCCConversion_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_OctetIpv4" id=link241 onMouseOver="ShowTip(event, 'tt231', 'link241')" onMouseOut="HideTip('tt231')" class=ISymbol>f_OctetIpv4</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCRegexp_Functions-ttcn.html#f_pcre_regexp" id=link242 onMouseOver="ShowTip(event, 'tt232', 'link242')" onMouseOut="HideTip('tt232')" class=ISymbol>f_pcre_regexp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powFF" id=link243 onMouseOver="ShowTip(event, 'tt233', 'link243')" onMouseOut="HideTip('tt233')" class=ISymbol>f_powFF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powFI" id=link244 onMouseOver="ShowTip(event, 'tt234', 'link244')" onMouseOut="HideTip('tt234')" class=ISymbol>f_powFI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powIF" id=link245 onMouseOver="ShowTip(event, 'tt235', 'link245')" onMouseOut="HideTip('tt235')" class=ISymbol>f_powIF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powII" id=link246 onMouseOver="ShowTip(event, 'tt236', 'link246')" onMouseOut="HideTip('tt236')" class=ISymbol>f_powII</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#f_PutEnv" id=link247 onMouseOver="ShowTip(event, 'tt237', 'link247')" onMouseOut="HideTip('tt237')" class=ISymbol>f_PutEnv</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_putInLowercase" id=link248 onMouseOver="ShowTip(event, 'tt238', 'link248')" onMouseOut="HideTip('tt238')" class=ISymbol>f_putInLowercase</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_putInUppercase" id=link249 onMouseOver="ShowTip(event, 'tt239', 'link249')" onMouseOut="HideTip('tt239')" class=ISymbol>f_putInUppercase</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceEveryOccurenceOfPattern" id=link250 onMouseOver="ShowTip(event, 'tt240', 'link250')" onMouseOut="HideTip('tt240')" class=ISymbol>f_replaceEveryOccurenceOfPattern</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceEveryOccurenceOfSubstring" id=link251 onMouseOver="ShowTip(event, 'tt241', 'link251')" onMouseOut="HideTip('tt241')" class=ISymbol>f_replaceEveryOccurenceOfSubstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceFirstOccurenceOfPattern" id=link252 onMouseOver="ShowTip(event, 'tt242', 'link252')" onMouseOut="HideTip('tt242')" class=ISymbol>f_replaceFirstOccurenceOfPattern</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceFirstOccurenceOfSubstring" id=link253 onMouseOver="ShowTip(event, 'tt243', 'link253')" onMouseOut="HideTip('tt243')" class=ISymbol>f_replaceFirstOccurenceOfSubstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setInterfaceDown" id=link254 onMouseOver="ShowTip(event, 'tt244', 'link254')" onMouseOut="HideTip('tt244')" class=ISymbol>f_setInterfaceDown</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setInterfaceUp" id=link255 onMouseOver="ShowTip(event, 'tt245', 'link255')" onMouseOut="HideTip('tt245')" class=ISymbol>f_setInterfaceUp</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setIP" id=link256 onMouseOver="ShowTip(event, 'tt246', 'link256')" onMouseOut="HideTip('tt246')" class=ISymbol>f_setIP</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_setIP_ip</span>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_setIP_ip" id=link257 onMouseOver="ShowTip(event, 'tt247', 'link257')" onMouseOut="HideTip('tt247')" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setIP_ip" id=link258 onMouseOver="ShowTip(event, 'tt247', 'link258')" onMouseOut="HideTip('tt247')" class=IFile>TCCInterface_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sin" id=link259 onMouseOver="ShowTip(event, 'tt248', 'link259')" onMouseOut="HideTip('tt248')" class=ISymbol>f_sin</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sinVL" id=link260 onMouseOver="ShowTip(event, 'tt249', 'link260')" onMouseOut="HideTip('tt249')" class=ISymbol>f_sinVL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrF" id=link261 onMouseOver="ShowTip(event, 'tt250', 'link261')" onMouseOut="HideTip('tt250')" class=ISymbol>f_sqrF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrI" id=link262 onMouseOver="ShowTip(event, 'tt251', 'link262')" onMouseOut="HideTip('tt251')" class=ISymbol>f_sqrI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrtF" id=link263 onMouseOver="ShowTip(event, 'tt252', 'link263')" onMouseOut="HideTip('tt252')" class=ISymbol>f_sqrtF</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrtI" id=link264 onMouseOver="ShowTip(event, 'tt253', 'link264')" onMouseOut="HideTip('tt253')" class=ISymbol>f_sqrtI</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdFL" id=link265 onMouseOver="ShowTip(event, 'tt254', 'link265')" onMouseOut="HideTip('tt254')" class=ISymbol>f_stdFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdFLL" id=link266 onMouseOver="ShowTip(event, 'tt255', 'link266')" onMouseOut="HideTip('tt255')" class=ISymbol>f_stdFLL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdIL" id=link267 onMouseOver="ShowTip(event, 'tt256', 'link267')" onMouseOut="HideTip('tt256')" class=ISymbol>f_stdIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdILL" id=link268 onMouseOver="ShowTip(event, 'tt257', 'link268')" onMouseOut="HideTip('tt257')" class=ISymbol>f_stdILL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_strstr</span>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_strstr" id=link269 onMouseOver="ShowTip(event, 'tt258', 'link269')" onMouseOut="HideTip('tt258')" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_strstr" id=link270 onMouseOver="ShowTip(event, 'tt258', 'link270')" onMouseOut="HideTip('tt258')" class=IFile>TCCConversion_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_subOctetstring" id=link271 onMouseOver="ShowTip(event, 'tt259', 'link271')" onMouseOut="HideTip('tt259')" class=ISymbol>f_subOctetstring</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_substr_token</span>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_substr_token" id=link272 onMouseOver="ShowTip(event, 'tt260', 'link272')" onMouseOut="HideTip('tt260')" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_substr_token" id=link273 onMouseOver="ShowTip(event, 'tt260', 'link273')" onMouseOut="HideTip('tt260')" class=IFile>TCCConversion_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>f_SYS_getpid</span>
+<div class=ISubIndex>
+<a href="../files/TCCSystem-cc.html#f_SYS_getpid" id=link274 onMouseOver="ShowTip(event, 'tt261', 'link274')" onMouseOut="HideTip('tt261')" class=IFile>TCCSystem.cc</a>
+<a href="../files/TCCSystem_Functions-ttcn.html#f_SYS_getpid" id=link275 onMouseOver="ShowTip(event, 'tt261', 'link275')" onMouseOut="HideTip('tt261')" class=IFile>TCCSystem_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength" id=link276 onMouseOver="ShowTip(event, 'tt262', 'link276')" onMouseOut="HideTip('tt262')" class=ISymbol>f_TCCMessageHandling_getMessageLength</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength4Diameter" id=link277 onMouseOver="ShowTip(event, 'tt263', 'link277')" onMouseOut="HideTip('tt263')" class=ISymbol>f_TCCMessageHandling_getMessageLength4Diameter</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength4Radius" id=link278 onMouseOver="ShowTip(event, 'tt264', 'link278')" onMouseOut="HideTip('tt264')" class=ISymbol>f_TCCMessageHandling_getMessageLength4Radius</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#f_Template_subsfiletemplate" id=link279 onMouseOver="ShowTip(event, 'tt265', 'link279')" onMouseOut="HideTip('tt265')" class=ISymbol>f_Template_subsfiletemplate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#f_Template_substitutetemplate" id=link280 onMouseOver="ShowTip(event, 'tt266', 'link280')" onMouseOut="HideTip('tt266')" class=ISymbol>f_Template_substitutetemplate</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_tic" id=link281 onMouseOver="ShowTip(event, 'tt267', 'link281')" onMouseOut="HideTip('tt267')" class=ISymbol>f_tic</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time" id=link282 onMouseOver="ShowTip(event, 'tt268', 'link282')" onMouseOut="HideTip('tt268')" class=ISymbol>f_time</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time2sec" id=link283 onMouseOver="ShowTip(event, 'tt269', 'link283')" onMouseOut="HideTip('tt269')" class=ISymbol>f_time2sec</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time2sec_UTC" id=link284 onMouseOver="ShowTip(event, 'tt270', 'link284')" onMouseOut="HideTip('tt270')" class=ISymbol>f_time2sec_UTC</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_timeDiff" id=link285 onMouseOver="ShowTip(event, 'tt271', 'link285')" onMouseOut="HideTip('tt271')" class=ISymbol>f_timeDiff</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_toc" id=link286 onMouseOver="ShowTip(event, 'tt272', 'link286')" onMouseOut="HideTip('tt272')" class=ISymbol>f_toc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_unichar2charstr" id=link287 onMouseOver="ShowTip(event, 'tt273', 'link287')" onMouseOut="HideTip('tt273')" class=ISymbol>f_unichar2charstr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_updateFL" id=link288 onMouseOver="ShowTip(event, 'tt274', 'link288')" onMouseOut="HideTip('tt274')" class=ISymbol>f_updateFL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_updateIL" id=link289 onMouseOver="ShowTip(event, 'tt275', 'link289')" onMouseOut="HideTip('tt275')" class=ISymbol>f_updateIL</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f1" id=link290 onMouseOver="ShowTip(event, 'tt276', 'link290')" onMouseOut="HideTip('tt276')" class=ISymbol>f1</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f1star" id=link291 onMouseOver="ShowTip(event, 'tt277', 'link291')" onMouseOut="HideTip('tt277')" class=ISymbol>f1star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f2345" id=link292 onMouseOver="ShowTip(event, 'tt278', 'link292')" onMouseOut="HideTip('tt278')" class=ISymbol>f2345</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f5star" id=link293 onMouseOver="ShowTip(event, 'tt279', 'link293')" onMouseOut="HideTip('tt279')" class=ISymbol>f5star</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#FloatList" id=link294 onMouseOver="ShowTip(event, 'tt280', 'link294')" onMouseOut="HideTip('tt280')" class=ISymbol>FloatList</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>Functions</span>
+<div class=ISubIndex>
+<a href="../files/aka_algorythm_set-h.html#Functions"  class=IFile>aka_algorythm_set.h</a>
+<a href="../files/digcalc-h.html#Functions"  class=IFile>digcalc.h</a>
+<a href="../files/TCCAssertion_Functions-ttcn.html#Functions"  class=IFile>TCCAssertion_Functions.ttcn</a>
+<a href="../files/TCCConversion-cc.html#Functions"  class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#Functions"  class=IFile>TCCConversion_Functions.ttcn</a>
+<a href="../files/TCCDateTime-cc.html#Functions"  class=IFile>TCCDateTime.cc</a>
+<a href="../files/TCCDateTime_Functions-ttcn.html#Functions"  class=IFile>TCCDateTime_Functions.ttcn</a>
+<a href="../files/TCCEncoding-cc.html#Functions"  class=IFile>TCCEncoding.cc</a>
+<a href="../files/TCCEncoding_Functions-ttcn.html#Functions"  class=IFile>TCCEncoding_Functions.ttcn</a>
+<a href="../files/TCCEnv-cc.html#Functions"  class=IFile>TCCEnv.cc</a>
+<a href="../files/TCCEnv_Functions-ttcn.html#Functions"  class=IFile>TCCEnv_Functions.ttcn</a>
+<a href="../files/TCCFileIO-cc.html#Functions"  class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#Functions"  class=IFile>TCCFileIO_Functions.ttcn</a>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#Functions"  class=IFile>TCCFileSystem_Functions.ttcn</a>
+<a href="../files/TCCInterface-cc.html#Functions"  class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#Functions"  class=IFile>TCCInterface_Functions.ttcn</a>
+<a href="../files/TCCIPsec_Functions-ttcn.html#Functions"  class=IFile>TCCIPsec_Functions.ttcn</a>
+<a href="../files/TCCMaths-cc.html#Functions"  class=IFile>TCCMaths.cc</a>
+<a href="../files/TCCMaths_Functions-ttcn.html#Functions"  class=IFile>TCCMaths_Functions.ttcn</a>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#Functions"  class=IFile>TCCMessageHandling_Functions.ttcn</a>
+<a href="../files/TCCRegexp_Functions-ttcn.html#Functions"  class=IFile>TCCRegexp_Functions.ttcn</a>
+<a href="../files/TCCSecurity-cc.html#Functions"  class=IFile>TCCSecurity.cc</a>
+<a href="../files/TCCSecurity_Functions-ttcn.html#Functions"  class=IFile>TCCSecurity_Functions.ttcn</a>
+<a href="../files/TCCTemplate_Functions-ttcn.html#Functions"  class=IFile>TCCTemplate_Functions.ttcn</a>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#Functions"  class=IFile>TCCTitanMetadata_Functions.ttcn</a>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#Functions"  class=IFile>TCCXPathSupport_Functions.ttcn</a>
+<a href="../files/zuc-h.html#Functions"  class=IFile>zuc.h</a></div></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt19">
+<div class=CFunction>Return the arc cosine of value in [0, pi]</div></div>
+<div class=CToolTip id="tt20">
+<div class=CFunction>Add two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt21">
+<div class=CFunction>Return the arc sine of value in [-pi/2, +pi/2]</div></div>
+<div class=CToolTip id="tt22">
+<div class=CFunction>Implement TTCN assertion.</div></div>
+<div class=CToolTip id="tt23">
+<div class=CFunction>Return the average of flist</div></div>
+<div class=CToolTip id="tt24">
+<div class=CFunction>Return the average of ilist</div></div>
+<div class=CToolTip id="tt25">
+<div class=CFunction>Calculate the HMAC MD5 value of a message with specified key.</div></div>
+<div class=CToolTip id="tt26">
+<div class=CFunction>Calculate the HMAC SHA1 value of a message with specified key.</div></div>
+<div class=CToolTip id="tt27">
+<div class=CFunction>Purpose: Encrypt TTCN-3 message using the confidentiality algorithm 128-EEA3</div></div>
+<div class=CToolTip id="tt28">
+<div class=CFunction>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3 for TTCN-3 message</div></div>
+<div class=CToolTip id="tt29">
+<div class=CFunction>Calculate digest H(A1) hash</div></div>
+<div class=CToolTip id="tt30">
+<div class=CFunction>Calculate digest response</div></div>
+<div class=CToolTip id="tt31">
+<div class=CFunction>Calculate the HMAC MD5 value of a message with specified 64 bit key.</div></div>
+<div class=CToolTip id="tt32">
+<div class=CFunction>Compute MD5 hash value</div></div>
+<div class=CToolTip id="tt33">
+<div class=CFunction>Return the smallest integer value that is not less then value</div></div>
+<div class=CToolTip id="tt34">
+<div class=CFunction>Return the compilation time of module</div></div>
+<div class=CToolTip id="tt35">
+<div class=CFunction>Compare two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt36">
+<div class=CFunction>Return the cosine of angle radians</div></div>
+<div class=CToolTip id="tt37">
+<div class=CFunction>Return the values of the cos function</div></div>
+<div class=CToolTip id="tt38">
+<div class=CFunction>Convert a time value in seconds to human readable string. </div></div>
+<div class=CToolTip id="tt39">
+<div class=CFunction>Convert a time value in seconds to human readable string. </div></div>
+<div class=CToolTip id="tt40">
+<div class=CFunction>Decode octetstring from TBCD encoding</div></div>
+<div class=CToolTip id="tt41">
+<div class=CFunction>Delete IP address from a network inteface</div></div>
+<div class=CToolTip id="tt42">
+<div class=CFunction>Takes key Ki and random challenge RAND, and returns Kc and SRES keys</div></div>
+<div class=CToolTip id="tt43">
+<div class=CFunction>Encode charstring to TBCD</div></div>
+<div class=CToolTip id="tt44">
+<div class=CFunction>Return the exponential value of the argument</div></div>
+<div class=CToolTip id="tt45">
+<div class=CFunction>It changes the current directory.</div></div>
+<div class=CToolTip id="tt46">
+<div class=CFunction>Closes a file associated with the given file descriptor.</div></div>
+<div class=CToolTip id="tt47">
+<div class=CFunction>Transfers (&ldquo;flushes&rdquo;) all modified in-core data of the file referred to by the file descriptor to the disk device.</div></div>
+<div class=CToolTip id="tt48">
+<div class=CFunction>Returns the actual error code.</div></div>
+<div class=CToolTip id="tt49">
+<div class=CFunction>Returns the actual error message.</div></div>
+<div class=CToolTip id="tt50">
+<div class=CFunction>Opens a file with the given name in the given mode. </div></div>
+<div class=CToolTip id="tt51">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt52">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt53">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt54">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt55">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt56">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt57">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt58">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt59">
+<div class=CFunction>A wrapper function for f__FIO__open. </div></div>
+<div class=CToolTip id="tt60">
+<div class=CFunction>Checks if the file with the given name is already opened. </div></div>
+<div class=CToolTip id="tt61">
+<div class=CFunction>Reads a given number of bytes to a given buffer from a file associated with the given file descriptor. </div></div>
+<div class=CToolTip id="tt62">
+<div class=CFunction>A wrapper function for f__FIO__read. </div></div>
+<div class=CToolTip id="tt63">
+<div class=CFunction>It reads binary data until a full ASN.1 TLV structure is read.</div></div>
+<div class=CToolTip id="tt64">
+<div class=CFunction>It reads binary data until a given pattern is matched.</div></div>
+<div class=CToolTip id="tt65">
+<div class=CFunction>A wrapper function for f__FIO__read. </div></div>
+<div class=CToolTip id="tt66">
+<div class=CFunction>It reads textual data until a given pattern is matched.</div></div>
+<div class=CToolTip id="tt67">
+<div class=CFunction>Builds the error message. </div></div>
+<div class=CToolTip id="tt68">
+<div class=CFunction>Moves the file pointer backward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt69">
+<div class=CFunction>Moves the file pointer to the end of the file.</div></div>
+<div class=CToolTip id="tt70">
+<div class=CFunction>Moves the file pointer forward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt71">
+<div class=CFunction>Moves the file pointer to the beginning of the file.</div></div>
+<div class=CToolTip id="tt72">
+<div class=CFunction>It sets the file descriptor to the begin of the previous line.</div></div>
+<div class=CToolTip id="tt73">
+<div class=CFunction>Writes the given data to the file associated with the given file descriptor. </div></div>
+<div class=CToolTip id="tt74">
+<div class=CFunction>A wrapper function for f__FIO__write. </div></div>
+<div class=CToolTip id="tt75">
+<div class=CFunction>A wrapper function for f__FIO__write. </div></div>
+<div class=CToolTip id="tt76">
+<div class=CFunction>A wrapper function for f__FIO__write. </div></div>
+<div class=CToolTip id="tt77">
+<div class=CFunction>A wrapper function for f__FIO__write. </div></div>
+<div class=CToolTip id="tt78">
+<div class=CFunction>Return the largest integer value that is not greater then value</div></div>
+<div class=CToolTip id="tt79">
+<div class=CFunction>Generate a date from the actual date and time plus the parameter in seconds e.g. </div></div>
+<div class=CToolTip id="tt80">
+<div class=CFunction>Return the current GMT date in format RFC 1123-Date e.g.:Sat, 13 Nov 2010 23:30:02 GMT</div></div>
+<div class=CToolTip id="tt81">
+<div class=CFunction>Return the environment variable specified via p_env_name</div></div>
+<div class=CToolTip id="tt82">
+<div class=CFunction>Get name of host</div></div>
+<div class=CToolTip id="tt83">
+<div class=CFunction>Get IP address, subnet mask and broadcast address from a network inteface</div></div>
+<div class=CToolTip id="tt84">
+<div class=CFunction>Get IP address of host</div></div>
+<div class=CToolTip id="tt85">
+<div class=CFunction>Return the current calendar time in a formatted way</div></div>
+<div class=CToolTip id="tt86">
+<div class=CFunction>Computes authentication token AUTN from anonymity key AK, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt87">
+<div class=CFunction>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt88">
+<div class=CFunction>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt89">
+<div class=CFunction>Takes key K and random challenge RAND, and returns response RES.</div></div>
+<div class=CToolTip id="tt90">
+<div class=CFunction>Takes key K and random challenge RAND, and returns AK, CK, RES</div></div>
+<div class=CToolTip id="tt91">
+<div class=CFunction>Takes key K and random challenge RAND, and returns confidentiality key CK.</div></div>
+<div class=CToolTip id="tt92">
+<div class=CFunction>Takes key K and random challenge RAND, and returns integrity key IK.</div></div>
+<div class=CToolTip id="tt93">
+<div class=CFunction>Takes key K and random challenge RAND, and returns anonymity key AK.</div></div>
+<div class=CToolTip id="tt94">
+<div class=CFunction>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</div></div>
+<div class=CToolTip id="tt95">
+<div class=CFunction>Return the natural logarithm of the argument</div></div>
+<div class=CToolTip id="tt96">
+<div class=CFunction>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt97">
+<div class=CFunction>Return an IntegerList with the highest number found at index 0 and the index of ilist where it&rsquo;s found at index 1</div></div>
+<div class=CToolTip id="tt98">
+<div class=CFunction>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt99">
+<div class=CFunction>Return an IntegerList with the lowest number found at index 0 and the index of ilist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt100">
+<div class=CFunction>Raise to power (float to float power)</div></div>
+<div class=CToolTip id="tt101">
+<div class=CFunction>Raise to power (float to integer power)</div></div>
+<div class=CToolTip id="tt102">
+<div class=CFunction>Raise to power (integer to float power)</div></div>
+<div class=CToolTip id="tt103">
+<div class=CFunction>Raise to power (integer to integer power)</div></div>
+<div class=CToolTip id="tt104">
+<div class=CFunction>Set the environment variable p_env_name to p_env_value.</div></div>
+<div class=CToolTip id="tt105">
+<div class=CFunction>Put charstring to lowercase</div></div>
+<div class=CToolTip id="tt106">
+<div class=CFunction>Put charstring to uppercase</div></div>
+<div class=CToolTip id="tt107">
+<div class=CFunction>Set down a network interface</div></div>
+<div class=CToolTip id="tt108">
+<div class=CFunction>Set up a network interface</div></div>
+<div class=CToolTip id="tt109">
+<div class=CFunction>Set IP address, subnet mask and broadcast address in a network inteface If number is set, a range of virtual interfaces are set up with continuous IP address (no subnet mask, broadcast checking)</div></div>
+<div class=CToolTip id="tt110">
+<div class=CFunction>Return the sine of angle radians</div></div>
+<div class=CToolTip id="tt111">
+<div class=CFunction>Return the values of the sin function</div></div>
+<div class=CToolTip id="tt112">
+<div class=CFunction>Raise a float value to square</div></div>
+<div class=CToolTip id="tt113">
+<div class=CFunction>Raise an integer value to square</div></div>
+<div class=CToolTip id="tt114">
+<div class=CFunction>Square root of float value</div></div>
+<div class=CToolTip id="tt115">
+<div class=CFunction>Square root of integer value</div></div>
+<div class=CToolTip id="tt116">
+<div class=CFunction>Return the normalized standard deviation of float list (so the average square distance from the center of elements in the list)</div></div>
+<div class=CToolTip id="tt117">
+<div class=CFunction>Return the normalized standard deviation of float list  using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt118">
+<div class=CFunction>Return the normalized standard deviation of integer list (so the average square distance from the center of points)</div></div>
+<div class=CToolTip id="tt119">
+<div class=CFunction>Return the normalized standard deviation of integer list using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt120">
+<div class=CFunction>Substract two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt121">
+<div class=CFunction>Computes the 8 bit ASCII representation of an hexstring</div></div>
+<div class=CToolTip id="tt122">
+<div class=CFunction>Return the number of clock ticks used by the application since the program was launched</div></div>
+<div class=CToolTip id="tt123">
+<div class=CFunction>Current calendar time of the system in seconds</div></div>
+<div class=CToolTip id="tt124">
+<div class=CFunction>Function to convert a formated time value to seconds. </div></div>
+<div class=CToolTip id="tt125">
+<div class=CFunction>Function to convert a formated time value to seconds. </div></div>
+<div class=CToolTip id="tt126">
+<div class=CFunction>Difference between two time</div></div>
+<div class=CToolTip id="tt127">
+<div class=CFunction>Elapsed seconds since time t (only when f__tic() returns the number of clock ticks elapsed since the program was launched)</div></div>
+<div class=CToolTip id="tt128">
+<div class=CFunction>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt129">
+<div class=CFunction>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt130">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_acos(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the arc cosine of value in [0, pi]</div></div>
+<div class=CToolTip id="tt131">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_addOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Add two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt132">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_asin(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the arc sine of value in [-pi/2, +pi/2]</div></div>
+<div class=CToolTip id="tt133">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_assert(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_assertMessage,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>boolean&nbsp;</td>
+<td class=PParameter nowrap>pl_predicate</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Implement TTCN assertion.</div></div>
+<div class=CToolTip id="tt134">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_averageFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the average of flist</div></div>
+<div class=CToolTip id="tt135">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_averageIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the average of ilist</div></div>
+<div class=CToolTip id="tt136">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_calculate_HMAC_MD5(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_key,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_input,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_length</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>Calculate the HMAC MD5 value of a message with specified key.</div></div>
+<div class=CToolTip id="tt137">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_calculate_HMAC_SHA1(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_key,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_input,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_length</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return octetstring</td></tr></table></td></tr></table></blockquote>Calculate the HMAC SHA1 value of a message with specified key.</div></div>
+<div class=CToolTip id="tt138">
+<div class=CFunction>Purpose: Encrypt message using the confidentiality algorithm 128-EEA3</div></div>
+<div class=CToolTip id="tt139">
+<div class=CFunction>Purpose: Calculate 32 bit message authentication code (MAC) using integrity algorithm 128-EIA3</div></div>
+<div class=CToolTip id="tt140">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateDigestHA1(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>nonce,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>cnonce,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>user,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>realm,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>passwd,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>alg</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Calculate digest H(A1) hash</div></div>
+<div class=CToolTip id="tt141">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=3>external function f_calculateDigestResponse(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>nonce,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>cnonce,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>user,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>realm,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>passwd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>alg,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>nonceCount,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>method,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>qop,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>URI,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>HEntity</td></tr>
+<tr>
+<td class=PAfterParameters colspan=3>) return charstring</td></tr></table></td></tr></table></blockquote>Calculate digest response</div></div>
+<div class=CToolTip id="tt142">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateHMACMD5(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>msg,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_64&nbsp;</td>
+<td class=PParameter nowrap>key</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Calculate the 128 bit HMAC MD5 value of a message with specified 64 bit key.</div></div>
+<div class=CToolTip id="tt143">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_calculateMD5(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pszHashInput</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Compute MD5 hash value</div></div>
+<div class=CToolTip id="tt144">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ceil(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Return the smallest integer value that is not less then value</div></div>
+<div class=CToolTip id="tt145">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_charstr2unichar (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_char</td>
+<td class=PAfterParameters nowrap>) return universal charstring</td></tr></table></td></tr></table></blockquote>Convert charstring 2 universal charstring</div></div>
+<div class=CToolTip id="tt146">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_compilationTime() return charstring</td></tr></table></blockquote>Return the compilation time of module</div></div>
+<div class=CToolTip id="tt147">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_compOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Compare two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt148">
+<div class=CFunction>Converts an IPv4 and IPv6 address to its hex representation. </div></div>
+<div class=CToolTip id="tt149">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_cos(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>angle</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the cosine of angle radILns</div></div>
+<div class=CToolTip id="tt150">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_cosVL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>freq,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>altitude,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>start_val,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>len,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>step</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return the values of the cosine function</div></div>
+<div class=CToolTip id="tt151">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ctime(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Convert a time value in seconds to human readable string The time represented as local time</div></div>
+<div class=CToolTip id="tt152">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_ctime_UTC(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Convert a time value in seconds to human readable string The time represented as UTC</div></div>
+<div class=CToolTip id="tt153">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_dec_TBCD(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_oct</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Decode octetstring from TBCD encoding</div></div>
+<div class=CToolTip id="tt154">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_decGSM7bit(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_gsm7bit</td>
+<td class=PAfterParameters nowrap>) return universal charstring</td></tr></table></td></tr></table></blockquote>GSM 7-bit decoding (GSM 03.38)</div></div>
+<div class=CToolTip id="tt155">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_deleteIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Delete IP address from a network inteface</div></div>
+<div class=CToolTip id="tt156">
+<div class=CFunction>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</div></div>
+<div class=CToolTip id="tt157">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_EAPSIM_A3A8(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_16&nbsp;</td>
+<td class=PParameter nowrap>Ki,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap></td>
+<td class=PType nowrap>OCT_16&nbsp;</td>
+<td class=PParameter nowrap>rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>sres,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>Kc</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Takes key Ki and random challenge RAND, and returns Kc and SRES keys</div></div>
+<div class=CToolTip id="tt158">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_enc_TBCD(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_char</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Encode charstring to TBCD</div></div>
+<div class=CToolTip id="tt159">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_encGSM7bit(</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_str</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>GSM 7-bit encoding (GSM 03.38)</div></div>
+<div class=CToolTip id="tt160">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_exp(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the exponential value of the argument</div></div>
+<div class=CToolTip id="tt161">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_chdir (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_chdir. </div></div>
+<div class=CToolTip id="tt162">
+<div class=CFunction>Change the permissions of the file or directory.</div></div>
+<div class=CToolTip id="tt163">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_close (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Closes a file associated with the given file descriptor.</div></div>
+<div class=CToolTip id="tt164">
+<div class=CFunction>Checks the existence of files and directories.</div></div>
+<div class=CToolTip id="tt165">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_flush (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Transfers (&ldquo;flushes&rdquo;) all modified in-core data of the file referred to by the file descriptor to the disk device.</div></div>
+<div class=CToolTip id="tt166">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_FIO_get_error_code () return integer</td></tr></table></blockquote>Returns the actual error code.</div></div>
+<div class=CToolTip id="tt167">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_FIO_get_error_string () return charstring</td></tr></table></blockquote>Returns the actual error message.</div></div>
+<div class=CToolTip id="tt168">
+<div class=CFunction>Create a new directory</div></div>
+<div class=CToolTip id="tt169">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_append_rdwr (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt170">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_rdwr_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt171">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_wronly (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt172">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_append_wronly_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt173">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_rdonly (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt174">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_open_trunc_rdwr (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt175">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_rdwr_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt176">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_wronly (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt177">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_open_trunc_wronly_excl (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_name</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_open. </div></div>
+<div class=CToolTip id="tt178">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_read_data (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_data,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read. </div></div>
+<div class=CToolTip id="tt179">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_data_TLV (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read. </div></div>
+<div class=CToolTip id="tt180">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_data_until (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_separator</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read_until. </div></div>
+<div class=CToolTip id="tt181">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_read_text (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read. </div></div>
+<div class=CToolTip id="tt182">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_read_text_until (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_text,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_separator</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_read_until. </div></div>
+<div class=CToolTip id="tt183">
+<div class=CFunction>Removes a directory</div></div>
+<div class=CToolTip id="tt184">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_backward (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer backward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt185">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_end (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer to the end of the file.</div></div>
+<div class=CToolTip id="tt186">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_forward (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_bytes</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer forward with a given number of bytes from the current position.</div></div>
+<div class=CToolTip id="tt187">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_seek_home (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Moves the file pointer to the beginning of the file.</div></div>
+<div class=CToolTip id="tt188">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_set_filedescriptor_previousline (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>If there was no problem, then the return value will be 1.</div></div>
+<div class=CToolTip id="tt189">
+<div class=CFunction>Query the permissions of the file or directory.</div></div>
+<div class=CToolTip id="tt190">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_data (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_data</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt191">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_FIO_write_data_flush (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_fd,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_data</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt192">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_text (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt193">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FIO_write_text_flush (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_fd,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_text</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>A wrapper function for f_FIO_write. </div></div>
+<div class=CToolTip id="tt194">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_floor(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Return the largest integer value that is not greater then value</div></div>
+<div class=CToolTip id="tt195">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_bfree (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Query the total number of free blocks.</div></div>
+<div class=CToolTip id="tt196">
+<div class=CFunction>Query the total number of blocks.</div></div>
+<div class=CToolTip id="tt197">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_bsize (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Query the file system block size.</div></div>
+<div class=CToolTip id="tt198">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_FS_dspacerate (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_name</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Query the free space rate.</div></div>
+<div class=CToolTip id="tt199">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_gen_Exponential_Distribution(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Returns with the exponential random variable for a given lambda</div></div>
+<div class=CToolTip id="tt200">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_generate_poissonTable(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>t_Poisson_Table&nbsp;</td>
+<td class=PParameter nowrap>p_pTable</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Returns with an initialized poisson table which is a cumulative probability distribution list for a given lambda.</div></div>
+<div class=CToolTip id="tt201">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getCurrentDateWithOffset(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Generate a date from the actual date and time plus the parameter in seconds e.g. </div></div>
+<div class=CToolTip id="tt202">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_getCurrentGMTDate() return charstring</td></tr></table></blockquote>Return the current GMT date in format RFC 1123-Date ex :Sat, 13 Nov 2010 23:30:02 GMT</div></div>
+<div class=CToolTip id="tt203">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_GetEnv(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_name</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Return the environment variable specified via p_env_name</div></div>
+<div class=CToolTip id="tt204">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_getHostName() return charstring</td></tr></table></blockquote>Get name of host</div></div>
+<div class=CToolTip id="tt205">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ip,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>netmask,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>broadcast,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Get IP address, subnet mask and broadcast address from a network inteface</div></div>
+<div class=CToolTip id="tt206">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_getIpAddr(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>hostname,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return charstring</td></tr></table></td></tr></table></blockquote>Get IP address of host</div></div>
+<div class=CToolTip id="tt207">
+<div class=CFunction>Get both IPv4 and IPv6 addresses of the given host</div></div>
+<div class=CToolTip id="tt208">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_getNext_poissonValue(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>p_lambda,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>t_Poisson_Table&nbsp;</td>
+<td class=PParameter nowrap>p_pTable,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>out&nbsp;</td>
+<td class=PType nowrap>boolean&nbsp;</td>
+<td class=PParameter nowrap>p_sucess</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Returns with a random poisson value by the given poisson table and lambda poisson variance.</div></div>
+<div class=CToolTip id="tt209">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_getTimeFormatted(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_format</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Return the current calendar time in a formatted way</div></div>
+<div class=CToolTip id="tt210">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_calculateAUTN(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_6&nbsp;</td>
+<td class=PParameter nowrap>SQN,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_6&nbsp;</td>
+<td class=PParameter nowrap>AK,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_2&nbsp;</td>
+<td class=PParameter nowrap>AMF,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>OCT_8&nbsp;</td>
+<td class=PParameter nowrap>MAC</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Computes authentication token AUTN from anonymity key AK, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt211">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f1(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_sqn,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_amf</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt212">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f1star (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_sqn,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_amf</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt213">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f2 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns response RES.</div></div>
+<div class=CToolTip id="tt214">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_IMSAKA_f2345 (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_OP,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_k,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_rand</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return TCCSecurity_Keys</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns AK, CK, RES</div></div>
+<div class=CToolTip id="tt215">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f3 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns confidentiality key CK.</div></div>
+<div class=CToolTip id="tt216">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f4 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns integrity key IK.</div></div>
+<div class=CToolTip id="tt217">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f5 (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns anonymity key AK.</div></div>
+<div class=CToolTip id="tt218">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_IMSAKA_f5star (</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_OP,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_k,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>pl_rand</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</div></div>
+<div class=CToolTip id="tt219">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SADB_add (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Protocol&nbsp;</td>
+<td class=PParameter nowrap>protocol,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>spi,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_ExtensionList&nbsp;</td>
+<td class=PType nowrap>extensionList&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> {},</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Algorithm&nbsp;</td>
+<td class=PParameter nowrap>alg,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in boolean&nbsp;</td>
+<td class=PType nowrap>setparitybit&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> false,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_IPsecMode&nbsp;</td>
+<td class=PType nowrap>ipSecMode&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyMode</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Adds a Security Association to the database (SADB)</div></div>
+<div class=CToolTip id="tt220">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_IPsec_SADB_delete (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>srcAddress,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>dstAddress,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_Protocol&nbsp;</td>
+<td class=PParameter nowrap width=100%>protocol,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap width=100%>spi</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Deletes a Security Association from the database (SADB)</div></div>
+<div class=CToolTip id="tt221">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_IPsec_SADB_flush () return TCCIPsec_Result</td></tr></table></blockquote>Deletes all Security Associations from the database (SADB)</div></div>
+<div class=CToolTip id="tt222">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SPDB_add (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_TranspProto&nbsp;</td>
+<td class=PType nowrap>transpProto&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyTranspProto,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyDirection&nbsp;</td>
+<td class=PParameter nowrap>dir,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyRule&nbsp;</td>
+<td class=PParameter nowrap>rule</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Adds a Security Policy to the database (SPDB)</div></div>
+<div class=CToolTip id="tt223">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_IPsec_SPDB_delete (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>srcAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>srcPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>dstAddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPrefixLen&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_prefixAll,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>dstPort&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> c_TCCIPsec_anyPort,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in TCCIPsec_TranspProto&nbsp;</td>
+<td class=PType nowrap>transpProto&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> anyTranspProto,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCIPsec_PolicyDirection&nbsp;</td>
+<td class=PParameter nowrap>dir</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>) return TCCIPsec_Result</td></tr></table></td></tr></table></blockquote>Deletes a Security Policy from the database (SPD)</div></div>
+<div class=CToolTip id="tt224">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_IPsec_SPDB_flush () return TCCIPsec_Result</td></tr></table></blockquote>Deletes all Security Policies from the database (SPD)</div></div>
+<div class=CToolTip id="tt225">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_log(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>val</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the natural logarithm of the argument</div></div>
+<div class=CToolTip id="tt226">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_maxFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt227">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_maxIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return IntegerList</td></tr></table></td></tr></table></blockquote>Return an IntegerList with the highest number found at index 0 and the index of ilist where it&rsquo;s found at index 1</div></div>
+<div class=CToolTip id="tt228">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_minFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return an FloatList with the highest number found at index 0 and the index of flist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt229">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_minIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return IntegerList</td></tr></table></td></tr></table></blockquote>Return an IntegerList with the lowest number found at index 0 and the index of ilist where it&rsquo;s fond at index 1</div></div>
+<div class=CToolTip id="tt230">
+<div class=CFunction>Fault tolerant version of the oct2str Titan built-in function.</div></div>
+<div class=CToolTip id="tt231">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>function f_OctetIpv4(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_ip</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>convertes an IPv4 address given in dotted notation to its hex representation</div></div>
+<div class=CToolTip id="tt232">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_pcre_regexp(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>instr,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>expression,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>groupno</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Evaulate a Perl compatible regular expression</div></div>
+<div class=CToolTip id="tt233">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powFF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise to power (float to float power)</div></div>
+<div class=CToolTip id="tt234">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powFI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise to power (float to integer power)</div></div>
+<div class=CToolTip id="tt235">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powIF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise to power (integer to float power)</div></div>
+<div class=CToolTip id="tt236">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_powII(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>expo</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Raise to power (integer to integer power)</div></div>
+<div class=CToolTip id="tt237">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_PutEnv(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_name,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>p_env_value</td>
+<td class=PAfterParameters nowrap>) return boolean</td></tr></table></td></tr></table></blockquote>Set the environment variable p_env_name to p_env_value.</div></div>
+<div class=CToolTip id="tt238">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_putInLowercase(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_string</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Put charstring to lowercase</div></div>
+<div class=CToolTip id="tt239">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_putInUppercase(</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>pl_string</td>
+<td class=PAfterParameters nowrap>) return charstring</td></tr></table></td></tr></table></blockquote>Put charstring to uppercase</div></div>
+<div class=CToolTip id="tt240">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceEveryOccurenceOfPattern(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace every occurance of pattern parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt241">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceEveryOccurenceOfSubstring(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace every occurance of parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt242">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceFirstOccurenceOfPattern(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parInStr,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace first occurance of pattern parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt243">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_replaceFirstOccurenceOfSubstring(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in charstring&nbsp;</td>
+<td class=PType nowrap>parInStr&nbsp;</td>
+<td class=PParameter nowrap width=100%>,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrA,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>parSubStrB</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Replace first occurance of parSubStrA with parSubStrB in parInStr</div></div>
+<div class=CToolTip id="tt244">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_setInterfaceDown(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>)</td></tr></table></td></tr></table></blockquote>Set down a network interface</div></div>
+<div class=CToolTip id="tt245">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=6>external function f_setInterfaceUp(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCInterface_IPAddressType&nbsp;</td>
+<td class=PParameter nowrap>addressType:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%>IPv4</td></tr>
+<tr>
+<td class=PAfterParameters colspan=6>)</td></tr></table></td></tr></table></blockquote>Set up a network interface</div></div>
+<div class=CToolTip id="tt246">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_setIP(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>interface,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>ipaddress,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>subnetmask,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap>broadcast,</td>
+<td class=PDefaultValuePrefix>&nbsp;&nbsp;</td>
+<td class=PDefaultValue width=100%></td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in integer&nbsp;</td>
+<td class=PType nowrap>number&nbsp;</td>
+<td class=PParameter nowrap>:</td>
+<td class=PDefaultValuePrefix>&nbsp;=&nbsp;</td>
+<td class=PDefaultValue width=100%> 1</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Set IP address, subnet mask and broadcast address in a network inteface If number is set, a range of virtual interfaces are set up with continuous IP address (no subnet mask, broadcast checking)</div></div>
+<div class=CToolTip id="tt247">
+<div class=CFunction>Set IP address, subnet mask in a network inteface Uses RTLN netlink interface on linux, which is faster than original POSIX.</div></div>
+<div class=CToolTip id="tt248">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sin(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>angle</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the sine of angle radILns</div></div>
+<div class=CToolTip id="tt249">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sinVL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>freq,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>altitude,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>start_val,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>len,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>step</td>
+<td class=PAfterParameters nowrap>) return FloatList</td></tr></table></td></tr></table></blockquote>Return the values of the sine function</div></div>
+<div class=CToolTip id="tt250">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Raise a float value to square</div></div>
+<div class=CToolTip id="tt251">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Raise an integer value to square</div></div>
+<div class=CToolTip id="tt252">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrtF(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Square root of float value</div></div>
+<div class=CToolTip id="tt253">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_sqrtI(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>base</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Square root of integer value</div></div>
+<div class=CToolTip id="tt254">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdFL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of float list (so the average square distance from the center of elements in the list)</div></div>
+<div class=CToolTip id="tt255">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdFLL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>flist,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>u</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of float list  using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt256">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdIL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of integer list (so the average square distance from the center of points)</div></div>
+<div class=CToolTip id="tt257">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_stdILL(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>ilist,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>float&nbsp;</td>
+<td class=PParameter nowrap>u</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Return the normalized standard devILtion of integer list using custom center (so it is the average square distance from a user defined central value)</div></div>
+<div class=CToolTip id="tt258">
+<div class=CFunction>The f_strstr function locates the first  occurrence  of  the string  s2 in string s1 and returns an index of starting pont of the located string, or  -1 if the string is not found. </div></div>
+<div class=CToolTip id="tt259">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_subOctetstring(</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par1,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap>par2</td>
+<td class=PAfterParameters nowrap>) return octetstring</td></tr></table></td></tr></table></blockquote>Substract two integer values represented in OCTETSTRING</div></div>
+<div class=CToolTip id="tt260">
+<div class=CFunction>The function returns a substring from a value. </div></div>
+<div class=CToolTip id="tt261">
+<div class=CFunction>Returns the pid of the process</div></div>
+<div class=CToolTip id="tt262">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>Function to get the length of the received message.</div></div>
+<div class=CToolTip id="tt263">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength4Diameter(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>Function to get the length of the received message.</div></div>
+<div class=CToolTip id="tt264">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>external function f_TCCMessageHandling_getMessageLength4Radius(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>octetstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>stream</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return integer</td></tr></table></td></tr></table></blockquote>Function to get the length of the received message.</div></div>
+<div class=CToolTip id="tt265">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_Template_subsfiletemplate(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCSubstitutionList&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_dict,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_file</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Makes the substitutions in the content of the given file, according to the dictonary</div></div>
+<div class=CToolTip id="tt266">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_Template_substitutetemplate(</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>TCCSubstitutionList&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_dict,</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>pl_string</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Makes the substitutions according to the dictonary given</div></div>
+<div class=CToolTip id="tt267">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_tic() return integer</td></tr></table></blockquote>Return the number of clock ticks used by the application since the program was launched</div></div>
+<div class=CToolTip id="tt268">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>external function f_time() return integer</td></tr></table></blockquote>Current calendar time of the system in seconds</div></div>
+<div class=CToolTip id="tt269">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_time2sec(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_year,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_mon,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_day,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_hour,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_min,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>function to convert a formated time value to seconds The time represented as local time</div></div>
+<div class=CToolTip id="tt270">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_time2sec_UTC(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_year,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_mon,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_day,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_hour,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_min,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>pl_sec</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>function to convert a formated time value to seconds The time represented as UTC</div></div>
+<div class=CToolTip id="tt271">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_timeDiff(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t_stop,</td></tr>
+<tr>
+<td></td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t_start</td>
+<td class=PAfterParameters nowrap>) return integer</td></tr></table></td></tr></table></blockquote>Difference between two time</div></div>
+<div class=CToolTip id="tt272">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_toc(</td>
+<td class=PType nowrap>integer&nbsp;</td>
+<td class=PParameter nowrap>t</td>
+<td class=PAfterParameters nowrap>) return float</td></tr></table></td></tr></table></blockquote>Elapsed seconds since time t (only when f_tic() returns the number of clock ticks elapsed since the program was launched)</div></div>
+<div class=CToolTip id="tt273">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters colspan=4>function f_unichar2charstr (</td></tr>
+<tr>
+<td>&nbsp;&nbsp;&nbsp;</td>
+<td class=PTypePrefix nowrap>in universal&nbsp;</td>
+<td class=PType nowrap>charstring&nbsp;</td>
+<td class=PParameter nowrap width=100%>p_unichar</td></tr>
+<tr>
+<td class=PAfterParameters colspan=4>) return charstring</td></tr></table></td></tr></table></blockquote>Convert universal charstring 2 charstring</div></div>
+<div class=CToolTip id="tt274">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_updateFL(</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>head,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>FloatList&nbsp;</td>
+<td class=PParameter nowrap>tail</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt275">
+<div class=CFunction>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=PBeforeParameters nowrap>external function f_updateIL(</td>
+<td class=PTypePrefix nowrap>inout&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>head,</td></tr>
+<tr>
+<td></td>
+<td class=PTypePrefix nowrap>in&nbsp;</td>
+<td class=PType nowrap>IntegerList&nbsp;</td>
+<td class=PParameter nowrap>tail</td>
+<td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Append tail to the end of head (head return as inout)</div></div>
+<div class=CToolTip id="tt276">
+<div class=CFunction>Computes network authentication code MAC-A from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt277">
+<div class=CFunction>Computes resynch authentication code MAC-S from key K, random challenge RAND, sequence number SQN and authentication management field AMF.</div></div>
+<div class=CToolTip id="tt278">
+<div class=CFunction>Takes key K and random challenge RAND, and returns response RES, confidentiality key CK, integrity key IK and anonymity key AK.</div></div>
+<div class=CToolTip id="tt279">
+<div class=CFunction>Takes key K and random challenge RAND, and returns resynch anonymity key AK.</div></div>
+<div class=CToolTip id="tt280">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of float FloatList</td></tr></table></blockquote>List of float</div></div>
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index/General3.html b/doc/apidoc/html/index/General3.html
new file mode 100644
index 0000000..ca65fa1
--- /dev/null
+++ b/doc/apidoc/html/index/General3.html
@@ -0,0 +1,578 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; <a href="General.html#A">A</a> &middot; <a href="General.html#B">B</a> &middot; <a href="General.html#C">C</a> &middot; <a href="General.html#D">D</a> &middot; <a href="General.html#E">E</a> &middot; <a href="General2.html#F">F</a> &middot; G &middot; H &middot; <a href="#I">I</a> &middot; J &middot; <a href="#K">K</a> &middot; L &middot; <a href="#M">M</a> &middot; N &middot; <a href="#O">O</a> &middot; <a href="#P">P</a> &middot; Q &middot; <a href="#R">R</a> &middot; <a href="#S">S</a> &middot; <a href="#T">T</a> &middot; <a href="#U">U</a> &middot; <a href="#V">V</a> &middot; W &middot; <a href="#X">X</a> &middot; Y &middot; <a href="#Z">Z</a></div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="I"></a>I</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#IntegerList" id=link295 onMouseOver="ShowTip(event, 'tt281', 'link295')" onMouseOut="HideTip('tt281')" class=ISymbol>IntegerList</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="K"></a>K</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#KeyAdd" id=link296 onMouseOver="ShowTip(event, 'tt282', 'link296')" onMouseOut="HideTip('tt282')" class=ISymbol>KeyAdd</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="M"></a>M</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#MixColumn" id=link297 onMouseOver="ShowTip(event, 'tt283', 'link297')" onMouseOut="HideTip('tt283')" class=ISymbol>MixColumn</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="O"></a>O</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#OctetStringList" id=link298 onMouseOver="ShowTip(event, 'tt284', 'link298')" onMouseOut="HideTip('tt284')" class=ISymbol>OctetStringList</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="P"></a>P</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#pi" id=link299 onMouseOver="ShowTip(event, 'tt285', 'link299')" onMouseOut="HideTip('tt285')" class=ISymbol>pi</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="R"></a>R</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCRegexp_Functions-ttcn.html#Regexp_Functions" id=link300 onMouseOver="ShowTip(event, 'tt286', 'link300')" onMouseOut="HideTip('tt286')" class=ISymbol>Regexp_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#RijndaelEncrypt" id=link301 onMouseOver="ShowTip(event, 'tt287', 'link301')" onMouseOut="HideTip('tt287')" class=ISymbol>RijndaelEncrypt</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#RijndaelKeySchedule" id=link302 onMouseOver="ShowTip(event, 'tt288', 'link302')" onMouseOut="HideTip('tt288')" class=ISymbol>RijndaelKeySchedule</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="S"></a>S</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ShiftRow" id=link303 onMouseOver="ShowTip(event, 'tt289', 'link303')" onMouseOut="HideTip('tt289')" class=ISymbol>ShiftRow</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#StringList" id=link304 onMouseOver="ShowTip(event, 'tt290', 'link304')" onMouseOut="HideTip('tt290')" class=ISymbol>StringList</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="T"></a>T</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCAssertion_Functions-ttcn.html#TCCAssertion_Functions" id=link305 onMouseOver="ShowTip(event, 'tt291', 'link305')" onMouseOut="HideTip('tt291')" class=ISymbol>TCCAssertion_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion-cc.html#TCCConversion.cc"  class=ISymbol>TCCConversion.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#TCCConversion_Functions" id=link306 onMouseOver="ShowTip(event, 'tt292', 'link306')" onMouseOut="HideTip('tt292')" class=ISymbol>TCCConversion_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime-cc.html#TCCDateTime.cc"  class=ISymbol>TCCDateTime.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#TCCDateTime_Functions" id=link307 onMouseOver="ShowTip(event, 'tt293', 'link307')" onMouseOut="HideTip('tt293')" class=ISymbol>TCCDateTime_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding-cc.html#TCCEncoding.cc"  class=ISymbol>TCCEncoding.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#TCCEncoding_Functions" id=link308 onMouseOver="ShowTip(event, 'tt294', 'link308')" onMouseOut="HideTip('tt294')" class=ISymbol>TCCEncoding_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv-cc.html#TCCEnv.cc"  class=ISymbol>TCCEnv.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#TCCEnv_Functions" id=link309 onMouseOver="ShowTip(event, 'tt295', 'link309')" onMouseOut="HideTip('tt295')" class=ISymbol>TCCEnv_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO-cc.html#TCCFileIO.cc"  class=ISymbol>TCCFileIO.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#TCCFileIO_Functions" id=link310 onMouseOver="ShowTip(event, 'tt296', 'link310')" onMouseOut="HideTip('tt296')" class=ISymbol>TCCFileIO_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#TCCFileSystem_Functions" id=link311 onMouseOver="ShowTip(event, 'tt297', 'link311')" onMouseOut="HideTip('tt297')" class=ISymbol>TCCFileSystem_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface-cc.html#TCCInterface.cc"  class=ISymbol>TCCInterface.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#TCCInterface_Functions" id=link312 onMouseOver="ShowTip(event, 'tt298', 'link312')" onMouseOut="HideTip('tt298')" class=ISymbol>TCCInterface_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#TCCInterface_IPAddressType" id=link313 onMouseOver="ShowTip(event, 'tt299', 'link313')" onMouseOut="HideTip('tt299')" class=ISymbol>TCCInterface_IPAddressType</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_AAlgo" id=link314 onMouseOver="ShowTip(event, 'tt300', 'link314')" onMouseOut="HideTip('tt300')" class=ISymbol>TCCIPsec_AAlgo</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Algorithm" id=link315 onMouseOver="ShowTip(event, 'tt301', 'link315')" onMouseOut="HideTip('tt301')" class=ISymbol>TCCIPsec_Algorithm</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Auth" id=link316 onMouseOver="ShowTip(event, 'tt302', 'link316')" onMouseOut="HideTip('tt302')" class=ISymbol>TCCIPsec_Auth</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_DefaultLevel" id=link317 onMouseOver="ShowTip(event, 'tt303', 'link317')" onMouseOut="HideTip('tt303')" class=ISymbol>TCCIPsec_DefaultLevel</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Definitions.ttcn"  class=ISymbol>TCCIPsec_Definitions.ttcn</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_DiscardRule" id=link318 onMouseOver="ShowTip(event, 'tt304', 'link318')" onMouseOut="HideTip('tt304')" class=ISymbol>TCCIPsec_DiscardRule</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_EAlgo" id=link319 onMouseOver="ShowTip(event, 'tt305', 'link319')" onMouseOut="HideTip('tt305')" class=ISymbol>TCCIPsec_EAlgo</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Encr" id=link320 onMouseOver="ShowTip(event, 'tt306', 'link320')" onMouseOut="HideTip('tt306')" class=ISymbol>TCCIPsec_Encr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Extension" id=link321 onMouseOver="ShowTip(event, 'tt307', 'link321')" onMouseOut="HideTip('tt307')" class=ISymbol>TCCIPsec_Extension</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_ExtensionList" id=link322 onMouseOver="ShowTip(event, 'tt308', 'link322')" onMouseOut="HideTip('tt308')" class=ISymbol>TCCIPsec_ExtensionList</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#TCCIPsec_Functions" id=link323 onMouseOver="ShowTip(event, 'tt309', 'link323')" onMouseOut="HideTip('tt309')" class=ISymbol>TCCIPsec_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_IPsecMode" id=link324 onMouseOver="ShowTip(event, 'tt310', 'link324')" onMouseOut="HideTip('tt310')" class=ISymbol>TCCIPsec_IPsecMode</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_IPsecResult" id=link325 onMouseOver="ShowTip(event, 'tt311', 'link325')" onMouseOut="HideTip('tt311')" class=ISymbol>TCCIPsec_IPsecResult</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Key" id=link326 onMouseOver="ShowTip(event, 'tt312', 'link326')" onMouseOut="HideTip('tt312')" class=ISymbol>TCCIPsec_Key</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Mode" id=link327 onMouseOver="ShowTip(event, 'tt313', 'link327')" onMouseOut="HideTip('tt313')" class=ISymbol>TCCIPsec_Mode</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_NoneRule" id=link328 onMouseOver="ShowTip(event, 'tt314', 'link328')" onMouseOut="HideTip('tt314')" class=ISymbol>TCCIPsec_NoneRule</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Protocol" id=link329 onMouseOver="ShowTip(event, 'tt315', 'link329')" onMouseOut="HideTip('tt315')" class=ISymbol>TCCIPsec_Protocol</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Rule" id=link330 onMouseOver="ShowTip(event, 'tt316', 'link330')" onMouseOut="HideTip('tt316')" class=ISymbol>TCCIPsec_Rule</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_RuleLevel" id=link331 onMouseOver="ShowTip(event, 'tt317', 'link331')" onMouseOut="HideTip('tt317')" class=ISymbol>TCCIPsec_RuleLevel</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Transport" id=link332 onMouseOver="ShowTip(event, 'tt318', 'link332')" onMouseOut="HideTip('tt318')" class=ISymbol>TCCIPsec_Transport</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_TranspProto" id=link333 onMouseOver="ShowTip(event, 'tt319', 'link333')" onMouseOut="HideTip('tt319')" class=ISymbol>TCCIPsec_TranspProto</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Tunnel" id=link334 onMouseOver="ShowTip(event, 'tt320', 'link334')" onMouseOut="HideTip('tt320')" class=ISymbol>TCCIPsec_Tunnel</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_UseLevel" id=link335 onMouseOver="ShowTip(event, 'tt321', 'link335')" onMouseOut="HideTip('tt321')" class=ISymbol>TCCIPsec_UseLevel</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths-cc.html#TCCMaths.cc"  class=ISymbol>TCCMaths.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#TCCMaths_Functions" id=link336 onMouseOver="ShowTip(event, 'tt322', 'link336')" onMouseOut="HideTip('tt322')" class=ISymbol>TCCMaths_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#TCCMaths_GenericTypes" id=link337 onMouseOver="ShowTip(event, 'tt323', 'link337')" onMouseOut="HideTip('tt323')" class=ISymbol>TCCMaths_GenericTypes</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#TCCMessageHandling_Functions" id=link338 onMouseOver="ShowTip(event, 'tt324', 'link338')" onMouseOut="HideTip('tt324')" class=ISymbol>TCCMessageHandling_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity-cc.html#TCCSecurity.cc"  class=ISymbol>TCCSecurity.cc</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#TCCSecurity_Functions" id=link339 onMouseOver="ShowTip(event, 'tt325', 'link339')" onMouseOut="HideTip('tt325')" class=ISymbol>TCCSecurity_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#TCCTemplate_Functions" id=link340 onMouseOver="ShowTip(event, 'tt326', 'link340')" onMouseOut="HideTip('tt326')" class=ISymbol>TCCTemplate_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#TCCTitanMetadata_Functions" id=link341 onMouseOver="ShowTip(event, 'tt327', 'link341')" onMouseOut="HideTip('tt327')" class=ISymbol>TCCTitanMetadata_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#TCCXPathSupport_Functions" id=link342 onMouseOver="ShowTip(event, 'tt328', 'link342')" onMouseOut="HideTip('tt328')" class=ISymbol>TCCXPathSupport_Functions</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#Types"  class=ISymbol>Types</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#Types_and_Constants"  class=ISymbol>Types and Constants</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="U"></a>U</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#u8" id=link343 onMouseOver="ShowTip(event, 'tt329', 'link343')" onMouseOut="HideTip('tt329')" class=ISymbol>u8</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="V"></a>V</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#Variables"  class=ISymbol>Variables</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#VerdictList" id=link344 onMouseOver="ShowTip(event, 'tt330', 'link344')" onMouseOut="HideTip('tt330')" class=ISymbol>VerdictList</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="X"></a>X</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<span class=ISymbol>XPathQuery</span>
+<div class=ISubIndex>
+<a href="../files/TCCXPathSupport-cc.html#XPathQuery" id=link345 onMouseOver="ShowTip(event, 'tt331', 'link345')" onMouseOut="HideTip('tt331')" class=IFile>TCCXPathSupport.cc</a>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#XPathQuery" id=link346 onMouseOver="ShowTip(event, 'tt331', 'link346')" onMouseOut="HideTip('tt331')" class=IFile>TCCXPathSupport_Functions.ttcn</a></div></td></tr>
+<tr>
+<td class=IHeading>
+<a name="Z"></a>Z</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/zuc-h.html#zuc.h"  class=ISymbol>zuc.h</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt281">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of integer IntegerList</td></tr></table></blockquote>List of integer</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt282">
+<div class=CFunction>Round key addition function</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt283">
+<div class=CFunction>MixColumn transformation</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt284">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of octetstring OctetStringList</td></tr></table></blockquote>List of octetstring</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt285">
+<div class=CConstant>Provide the value of pi</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt286">
+<div class=CFile>This module provides a non TTCN regular expression handling functions</div></div>
+<div class=CToolTip id="tt287">
+<div class=CFunction>Rijndael encryption function. </div></div>
+<div class=CToolTip id="tt288">
+<div class=CFunction>Rijndael key schedule function. </div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt289">
+<div class=CFunction>Row shift transformation</div></div>
+<div class=CToolTip id="tt290">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of charstring StringList</td></tr></table></blockquote>List of charstring</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt291">
+<div class=CFile>This module supports assertion handling</div></div>
+<div class=CToolTip id="tt292">
+<div class=CFile>This module supports string conversions</div></div>
+<div class=CToolTip id="tt293">
+<div class=CFile>This module supports date and time handling</div></div>
+<div class=CToolTip id="tt294">
+<div class=CFile>This module supports message based encoding of certain types</div></div>
+<div class=CToolTip id="tt295">
+<div class=CFile>This module supports handling of environment e.g. </div></div>
+<div class=CToolTip id="tt296">
+<div class=CFile>This module supports file I/O handling</div></div>
+<div class=CToolTip id="tt297">
+<div class=CFile>This module supports File System information</div></div>
+<div class=CToolTip id="tt298">
+<div class=CFile>This module supports network related operations</div></div>
+<div class=CToolTip id="tt299">
+<div class=CType>An enum type for setting the type of IP addresses. </div></div>
+<div class=CToolTip id="tt300">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_AAlgo { AALG_NONE (0), AALG_MD5HMAC (2), AALG_SHA1HMAC (3) }</td></tr></table></blockquote>Declares identifiers for the possible integrity protection algorithms</div></div>
+<div class=CToolTip id="tt301">
+<div class=CType>Defines a union for storing the possible combination of algorithms with its keys. </div></div>
+<div class=CToolTip id="tt302">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Auth { TCCIPsec_AAlgo algo, TCCIPsec_Key key }</td></tr></table></blockquote>Defines a record for storing the integrity protection algorithm identifier and key.</div></div>
+<div class=CToolTip id="tt303">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_DefaultLevel {}</td></tr></table></blockquote>Declares a type to represent the policy level indicating that system defaults has to be used.</div></div>
+<div class=CToolTip id="tt304">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_DiscardRule {}</td></tr></table></blockquote>Declares a type to represent the policy rule to discard packets.</div></div>
+<div class=CToolTip id="tt305">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_EAlgo { EALG_NONE (0), EALG_3DESCBC (3), EALG_NULL(11), EALG_AESCBC (12) }</td></tr></table></blockquote>Declares identifiers for the possible encryption algorithms</div></div>
+<div class=CToolTip id="tt306">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Encr { TCCIPsec_EAlgo algo, TCCIPsec_Key key }</td></tr></table></blockquote>Defines a record for storing the encryption algorithm identifier and key.</div></div>
+<div class=CToolTip id="tt307">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Extension { integer policyId, integer hardLifetime, integer softLifetime }</td></tr></table></blockquote>Defines a union of possible extensions for Security Associations (SAs)</div></div>
+<div class=CToolTip id="tt308">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of TCCIPsec_Extension TCCIPsec_ExtensionList</td></tr></table></blockquote>Defines a list of extensions for the SA adding function</div></div>
+<div class=CToolTip id="tt309">
+<div class=CFile>This module provides access to the IPsec parameter databases: SADB and SPDB</div></div>
+<div class=CToolTip id="tt310">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_IPsecMode { anyMode (0), transport (1), tunnel (2) }</td></tr></table></blockquote>Declares identifiers for the possible security association</div></div>
+<div class=CToolTip id="tt311">
+<div class=CType>Declares the possible return values of IPsec handling functions</div></div>
+<div class=CToolTip id="tt312">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Key { hexstring hex, charstring text }</td></tr></table></blockquote>Defines a union for storing a key for an SA. </div></div>
+<div class=CToolTip id="tt313">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Mode { TCCIPsec_Transport transport, TCCIPsec_Tunnel tunnel }</td></tr></table></blockquote>Declares an union for storing to IPsec mode</div></div>
+<div class=CToolTip id="tt314">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_NoneRule {}</td></tr></table></blockquote>Declares a type to represent the policy rule to bypass IPsec.</div></div>
+<div class=CToolTip id="tt315">
+<div class=CType>Declares identifiers for the possible security protocols</div></div>
+<div class=CToolTip id="tt316">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Rule { TCCIPsec_Protocol protocol, TCCIPsec_Mode mode, TCCIPsec_RuleLevel level }</td></tr></table></blockquote>Declares a record for storing an IPsec rule.</div></div>
+<div class=CToolTip id="tt317">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_RuleLevel { TCCIPsec_DefaultLevel defaultLevel, TCCIPsec_UseLevel use, TCCIPsec_RequireLevel require, TCCIPsec_UniqueLevel unique }</td></tr></table></blockquote>Defines a union for storing rule level.</div></div>
+<div class=CToolTip id="tt318">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Transport {}</td></tr></table></blockquote>Declares a type to represent the transport IPsec mode - as opposed to tunnel mode</div></div>
+<div class=CToolTip id="tt319">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_TranspProto { anyTranspProto (0), tcpProto (6), udpProto (17) }</td></tr></table></blockquote>Declares identifiers for the possible upper layer protocols</div></div>
+<div class=CToolTip id="tt320">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Tunnel { charstring srcAddr, integer srcPort, charstring dstAddr, integer dstPort }</td></tr></table></blockquote>Declares a type to represent the tunnel IPsec mode - as opposed to transport mode</div></div>
+<div class=CToolTip id="tt321">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_UseLevel {}</td></tr></table></blockquote>Declares a type to represent the policy level indicating that IPsec should be used if appropriate SA is available. </div></div>
+<div class=CToolTip id="tt322">
+<div class=CFile>This module supports mathematics</div></div>
+<div class=CToolTip id="tt323">
+<div class=CFile>This module stores generic types for math functions</div></div>
+<div class=CToolTip id="tt324">
+<div class=CFile>This module provide message handling functions</div></div>
+<div class=CToolTip id="tt325">
+<div class=CFile>This module supports security based operations e.g. </div></div>
+<div class=CToolTip id="tt326">
+<div class=CFile>This module supports template handling Originally for TitanSIM R2 needs it for substituting substrings in a charstring template.</div></div>
+<div class=CToolTip id="tt327">
+<div class=CFile>This module support handling of Titan related metadata</div></div>
+<div class=CToolTip id="tt328">
+<div class=CFile>This module makes it possible to handle XML data throughout processing the XML data structure (tree) with in the way of handling XPath queries.</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt329">
+<div class=CVariable>type for a byte</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt330">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of verdicttype VerdictList</td></tr></table></blockquote>List of verdicttype</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt331">
+<div class=CFunction>apply an XPath query on an XML document</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index/Types.html b/doc/apidoc/html/index/Types.html
new file mode 100644
index 0000000..6d8bf19
--- /dev/null
+++ b/doc/apidoc/html/index/Types.html
@@ -0,0 +1,353 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - Type Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Type Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; <a href="#B">B</a> &middot; C &middot; D &middot; E &middot; <a href="#F">F</a> &middot; G &middot; H &middot; <a href="#I">I</a> &middot; J &middot; K &middot; L &middot; M &middot; N &middot; <a href="#O">O</a> &middot; P &middot; Q &middot; R &middot; <a href="#S">S</a> &middot; <a href="#T">T</a> &middot; U &middot; <a href="#V">V</a> &middot; W &middot; X &middot; Y &middot; Z</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="B"></a>B</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#BooleanList" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>BooleanList</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="F"></a>F</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#FloatList" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')" class=ISymbol>FloatList</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="I"></a>I</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#IntegerList" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')" class=ISymbol>IntegerList</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="O"></a>O</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#OctetStringList" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')" class=ISymbol>OctetStringList</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="S"></a>S</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#StringList" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')" class=ISymbol>StringList</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="T"></a>T</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IFirstSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#TCCInterface_IPAddressType" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')" class=ISymbol>TCCInterface_IPAddressType</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_AAlgo" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')" class=ISymbol>TCCIPsec_AAlgo</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Algorithm" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')" class=ISymbol>TCCIPsec_Algorithm</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Auth" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')" class=ISymbol>TCCIPsec_Auth</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_DefaultLevel" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')" class=ISymbol>TCCIPsec_DefaultLevel</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_DiscardRule" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')" class=ISymbol>TCCIPsec_DiscardRule</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_EAlgo" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')" class=ISymbol>TCCIPsec_EAlgo</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Encr" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')" class=ISymbol>TCCIPsec_Encr</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Extension" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')" class=ISymbol>TCCIPsec_Extension</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_ExtensionList" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')" class=ISymbol>TCCIPsec_ExtensionList</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_IPsecMode" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')" class=ISymbol>TCCIPsec_IPsecMode</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_IPsecResult" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')" class=ISymbol>TCCIPsec_IPsecResult</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Key" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')" class=ISymbol>TCCIPsec_Key</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Mode" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')" class=ISymbol>TCCIPsec_Mode</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_NoneRule" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')" class=ISymbol>TCCIPsec_NoneRule</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Protocol" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')" class=ISymbol>TCCIPsec_Protocol</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Rule" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')" class=ISymbol>TCCIPsec_Rule</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_RuleLevel" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')" class=ISymbol>TCCIPsec_RuleLevel</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Transport" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')" class=ISymbol>TCCIPsec_Transport</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_TranspProto" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')" class=ISymbol>TCCIPsec_TranspProto</a></td></tr>
+<tr>
+<td class=ISymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Tunnel" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')" class=ISymbol>TCCIPsec_Tunnel</a></td></tr>
+<tr>
+<td class=ISymbolPrefix id=ILastSymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_UseLevel" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')" class=ISymbol>TCCIPsec_UseLevel</a></td></tr>
+<tr>
+<td class=IHeading>
+<a name="V"></a>V</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#VerdictList" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')" class=ISymbol>VerdictList</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of boolean BooleanList</td></tr></table></blockquote>List of boolean</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt2">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of float FloatList</td></tr></table></blockquote>List of float</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt3">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of integer IntegerList</td></tr></table></blockquote>List of integer</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt4">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of octetstring OctetStringList</td></tr></table></blockquote>List of octetstring</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt5">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of charstring StringList</td></tr></table></blockquote>List of charstring</div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt6">
+<div class=CType>An enum type for setting the type of IP addresses. </div></div>
+<div class=CToolTip id="tt7">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_AAlgo { AALG_NONE (0), AALG_MD5HMAC (2), AALG_SHA1HMAC (3) }</td></tr></table></blockquote>Declares identifiers for the possible integrity protection algorithms</div></div>
+<div class=CToolTip id="tt8">
+<div class=CType>Defines a union for storing the possible combination of algorithms with its keys. </div></div>
+<div class=CToolTip id="tt9">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Auth { TCCIPsec_AAlgo algo, TCCIPsec_Key key }</td></tr></table></blockquote>Defines a record for storing the integrity protection algorithm identifier and key.</div></div>
+<div class=CToolTip id="tt10">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_DefaultLevel {}</td></tr></table></blockquote>Declares a type to represent the policy level indicating that system defaults has to be used.</div></div>
+<div class=CToolTip id="tt11">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_DiscardRule {}</td></tr></table></blockquote>Declares a type to represent the policy rule to discard packets.</div></div>
+<div class=CToolTip id="tt12">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_EAlgo { EALG_NONE (0), EALG_3DESCBC (3), EALG_NULL(11), EALG_AESCBC (12) }</td></tr></table></blockquote>Declares identifiers for the possible encryption algorithms</div></div>
+<div class=CToolTip id="tt13">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Encr { TCCIPsec_EAlgo algo, TCCIPsec_Key key }</td></tr></table></blockquote>Defines a record for storing the encryption algorithm identifier and key.</div></div>
+<div class=CToolTip id="tt14">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Extension { integer policyId, integer hardLifetime, integer softLifetime }</td></tr></table></blockquote>Defines a union of possible extensions for Security Associations (SAs)</div></div>
+<div class=CToolTip id="tt15">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of TCCIPsec_Extension TCCIPsec_ExtensionList</td></tr></table></blockquote>Defines a list of extensions for the SA adding function</div></div>
+<div class=CToolTip id="tt16">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_IPsecMode { anyMode (0), transport (1), tunnel (2) }</td></tr></table></blockquote>Declares identifiers for the possible security association</div></div>
+<div class=CToolTip id="tt17">
+<div class=CType>Declares the possible return values of IPsec handling functions</div></div>
+<div class=CToolTip id="tt18">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Key { hexstring hex, charstring text }</td></tr></table></blockquote>Defines a union for storing a key for an SA. </div></div>
+<div class=CToolTip id="tt19">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_Mode { TCCIPsec_Transport transport, TCCIPsec_Tunnel tunnel }</td></tr></table></blockquote>Declares an union for storing to IPsec mode</div></div>
+<div class=CToolTip id="tt20">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_NoneRule {}</td></tr></table></blockquote>Declares a type to represent the policy rule to bypass IPsec.</div></div>
+<div class=CToolTip id="tt21">
+<div class=CType>Declares identifiers for the possible security protocols</div></div>
+<div class=CToolTip id="tt22">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Rule { TCCIPsec_Protocol protocol, TCCIPsec_Mode mode, TCCIPsec_RuleLevel level }</td></tr></table></blockquote>Declares a record for storing an IPsec rule.</div></div>
+<div class=CToolTip id="tt23">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type union TCCIPsec_RuleLevel { TCCIPsec_DefaultLevel defaultLevel, TCCIPsec_UseLevel use, TCCIPsec_RequireLevel require, TCCIPsec_UniqueLevel unique }</td></tr></table></blockquote>Defines a union for storing rule level.</div></div>
+<div class=CToolTip id="tt24">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Transport {}</td></tr></table></blockquote>Declares a type to represent the transport IPsec mode - as opposed to tunnel mode</div></div>
+<div class=CToolTip id="tt25">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type enumerated TCCIPsec_TranspProto { anyTranspProto (0), tcpProto (6), udpProto (17) }</td></tr></table></blockquote>Declares identifiers for the possible upper layer protocols</div></div>
+<div class=CToolTip id="tt26">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_Tunnel { charstring srcAddr, integer srcPort, charstring dstAddr, integer dstPort }</td></tr></table></blockquote>Declares a type to represent the tunnel IPsec mode - as opposed to transport mode</div></div>
+<div class=CToolTip id="tt27">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record TCCIPsec_UseLevel {}</td></tr></table></blockquote>Declares a type to represent the policy level indicating that IPsec should be used if appropriate SA is available. </div></div>
+<!--END_ND_TOOLTIPS-->
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt28">
+<div class=CType>
+<blockquote>
+<table border=0 cellspacing=0 cellpadding=0 class=Prototype>
+<tr>
+<td>type record of verdicttype VerdictList</td></tr></table></blockquote>List of verdicttype</div></div>
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/index/Variables.html b/doc/apidoc/html/index/Variables.html
new file mode 100644
index 0000000..2ac9ac0
--- /dev/null
+++ b/doc/apidoc/html/index/Variables.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>TCCUsefulFunctions - Variable Index</title>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script></head>
+<body class="FramedIndexPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Variable Index</div>
+<div class=INavigationBar>$#! &middot; 0-9 &middot; A &middot; B &middot; C &middot; D &middot; E &middot; F &middot; G &middot; H &middot; I &middot; J &middot; K &middot; L &middot; M &middot; N &middot; O &middot; P &middot; Q &middot; R &middot; S &middot; T &middot; <a href="#U">U</a> &middot; V &middot; W &middot; X &middot; Y &middot; Z</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<tr>
+<td class=IHeading id=IFirstHeading>
+<a name="U"></a>U</td>
+<td></td></tr>
+<tr>
+<td class=ISymbolPrefix id=IOnlySymbolPrefix>&nbsp;</td>
+<td class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#u8" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')" class=ISymbol>u8</a></td></tr></table>
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1">
+<div class=CVariable>type for a byte</div></div>
+<!--END_ND_TOOLTIPS-->
+
+</div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/javascript/main.js b/doc/apidoc/html/javascript/main.js
new file mode 100755
index 0000000..efcdca9
--- /dev/null
+++ b/doc/apidoc/html/javascript/main.js
@@ -0,0 +1,836 @@
+// This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL
+
+
+//
+//  Browser Styles
+// ____________________________________________________________________________
+
+var agt=navigator.userAgent.toLowerCase();
+var browserType;
+var browserVer;
+
+if (agt.indexOf("opera") != -1)
+    {
+    browserType = "Opera";
+
+    if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
+        {  browserVer = "Opera7";  }
+    else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1)
+        {  browserVer = "Opera8";  }
+    else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1)
+        {  browserVer = "Opera9";  }
+    }
+
+else if (agt.indexOf("applewebkit") != -1)
+    {
+    browserType = "Safari";
+
+    if (agt.indexOf("version/3") != -1)
+        {  browserVer = "Safari3";  }
+    else if (agt.indexOf("safari/4") != -1)
+        {  browserVer = "Safari2";  }
+    }
+
+else if (agt.indexOf("khtml") != -1)
+    {
+    browserType = "Konqueror";
+    }
+
+else if (agt.indexOf("msie") != -1)
+    {
+    browserType = "IE";
+
+    if (agt.indexOf("msie 6") != -1)
+        {  browserVer = "IE6";  }
+    else if (agt.indexOf("msie 7") != -1)
+        {  browserVer = "IE7";  }
+    }
+
+else if (agt.indexOf("gecko") != -1)
+    {
+    browserType = "Firefox";
+
+    if (agt.indexOf("rv:1.7") != -1)
+        {  browserVer = "Firefox1";  }
+    else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1)
+        {  browserVer = "Firefox15";  }
+    else if (agt.indexOf("rv:1.8.1") != -1)
+        {  browserVer = "Firefox2";  }
+    }
+
+
+//
+//  Support Functions
+// ____________________________________________________________________________
+
+
+function GetXPosition(item)
+    {
+    var position = 0;
+
+    if (item.offsetWidth != null)
+        {
+        while (item != document.body && item != null)
+            {
+            position += item.offsetLeft;
+            item = item.offsetParent;
+            };
+        };
+
+    return position;
+    };
+
+
+function GetYPosition(item)
+    {
+    var position = 0;
+
+    if (item.offsetWidth != null)
+        {
+        while (item != document.body && item != null)
+            {
+            position += item.offsetTop;
+            item = item.offsetParent;
+            };
+        };
+
+    return position;
+    };
+
+
+function MoveToPosition(item, x, y)
+    {
+    // Opera 5 chokes on the px extension, so it can use the Microsoft one instead.
+
+    if (item.style.left != null)
+        {
+        item.style.left = x + "px";
+        item.style.top = y + "px";
+        }
+    else if (item.style.pixelLeft != null)
+        {
+        item.style.pixelLeft = x;
+        item.style.pixelTop = y;
+        };
+    };
+
+
+//
+//  Menu
+// ____________________________________________________________________________
+
+
+function ToggleMenu(id)
+    {
+    if (!window.document.getElementById)
+        {  return;  };
+
+    var display = window.document.getElementById(id).style.display;
+
+    if (display == "none")
+        {  display = "block";  }
+    else
+        {  display = "none";  }
+
+    window.document.getElementById(id).style.display = display;
+    }
+
+function HideAllBut(ids, max)
+    {
+    if (document.getElementById)
+        {
+        ids.sort( function(a,b) { return a - b; } );
+        var number = 1;
+
+        while (number < max)
+            {
+            if (ids.length > 0 && number == ids[0])
+                {  ids.shift();  }
+            else
+                {
+                document.getElementById("MGroupContent" + number).style.display = "none";
+                };
+
+            number++;
+            };
+        };
+    }
+
+
+//
+//  Tooltips
+// ____________________________________________________________________________
+
+
+var tooltipTimer = 0;
+
+function ShowTip(event, tooltipID, linkID)
+    {
+    if (tooltipTimer)
+        {  clearTimeout(tooltipTimer);  };
+
+    var docX = event.clientX + window.pageXOffset;
+    var docY = event.clientY + window.pageYOffset;
+
+    var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")";
+
+    tooltipTimer = setTimeout(showCommand, 1000);
+    }
+
+function ReallyShowTip(tooltipID, linkID, docX, docY)
+    {
+    tooltipTimer = 0;
+
+    var tooltip;
+    var link;
+
+    if (document.getElementById)
+        {
+        tooltip = document.getElementById(tooltipID);
+        link = document.getElementById(linkID);
+        }
+/*    else if (document.all)
+        {
+        tooltip = eval("document.all['" + tooltipID + "']");
+        link = eval("document.all['" + linkID + "']");
+        }
+*/
+    if (tooltip)
+        {
+        var left = GetXPosition(link);
+        var top = GetYPosition(link);
+        top += link.offsetHeight;
+
+
+        // The fallback method is to use the mouse X and Y relative to the document.  We use a separate if and test if its a number
+        // in case some browser snuck through the above if statement but didn't support everything.
+
+        if (!isFinite(top) || top == 0)
+            {
+            left = docX;
+            top = docY;
+            }
+
+        // Some spacing to get it out from under the cursor.
+
+        top += 10;
+
+        // Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the
+        // page.  We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right.
+
+        if (tooltip.offsetWidth != null)
+            {
+            var width = tooltip.offsetWidth;
+            var docWidth = document.body.clientWidth;
+
+            if (left + width > docWidth)
+                {  left = docWidth - width - 1;  }
+
+            // If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width.
+            if (left < 0)
+                {  left = 0;  };
+            }
+
+        MoveToPosition(tooltip, left, top);
+        tooltip.style.visibility = "visible";
+        }
+    }
+
+function HideTip(tooltipID)
+    {
+    if (tooltipTimer)
+        {
+        clearTimeout(tooltipTimer);
+        tooltipTimer = 0;
+        }
+
+    var tooltip;
+
+    if (document.getElementById)
+        {  tooltip = document.getElementById(tooltipID); }
+    else if (document.all)
+        {  tooltip = eval("document.all['" + tooltipID + "']");  }
+
+    if (tooltip)
+        {  tooltip.style.visibility = "hidden";  }
+    }
+
+
+//
+//  Blockquote fix for IE
+// ____________________________________________________________________________
+
+
+function NDOnLoad()
+    {
+    if (browserVer == "IE6")
+        {
+        var scrollboxes = document.getElementsByTagName('blockquote');
+
+        if (scrollboxes.item(0))
+            {
+            NDDoResize();
+            window.onresize=NDOnResize;
+            };
+        };
+    };
+
+
+var resizeTimer = 0;
+
+function NDOnResize()
+    {
+    if (resizeTimer != 0)
+        {  clearTimeout(resizeTimer);  };
+
+    resizeTimer = setTimeout(NDDoResize, 250);
+    };
+
+
+function NDDoResize()
+    {
+    var scrollboxes = document.getElementsByTagName('blockquote');
+
+    var i;
+    var item;
+
+    i = 0;
+    while (item = scrollboxes.item(i))
+        {
+        item.style.width = 100;
+        i++;
+        };
+
+    i = 0;
+    while (item = scrollboxes.item(i))
+        {
+        item.style.width = item.parentNode.offsetWidth;
+        i++;
+        };
+
+    clearTimeout(resizeTimer);
+    resizeTimer = 0;
+    }
+
+
+
+/* ________________________________________________________________________________________________________
+
+    Class: SearchPanel
+    ________________________________________________________________________________________________________
+
+    A class handling everything associated with the search panel.
+
+    Parameters:
+
+        name - The name of the global variable that will be storing this instance.  Is needed to be able to set timeouts.
+        mode - The mode the search is going to work in.  Pass <NaturalDocs::Builder::Base->CommandLineOption()>, so the
+                   value will be something like "HTML" or "FramedHTML".
+
+    ________________________________________________________________________________________________________
+*/
+
+
+function SearchPanel(name, mode, resultsPath)
+    {
+    if (!name || !mode || !resultsPath)
+        {  alert("Incorrect parameters to SearchPanel.");  };
+
+
+    // Group: Variables
+    // ________________________________________________________________________
+
+    /*
+        var: name
+        The name of the global variable that will be storing this instance of the class.
+    */
+    this.name = name;
+
+    /*
+        var: mode
+        The mode the search is going to work in, such as "HTML" or "FramedHTML".
+    */
+    this.mode = mode;
+
+    /*
+        var: resultsPath
+        The relative path from the current HTML page to the results page directory.
+    */
+    this.resultsPath = resultsPath;
+
+    /*
+        var: keyTimeout
+        The timeout used between a keystroke and when a search is performed.
+    */
+    this.keyTimeout = 0;
+
+    /*
+        var: keyTimeoutLength
+        The length of <keyTimeout> in thousandths of a second.
+    */
+    this.keyTimeoutLength = 500;
+
+    /*
+        var: lastSearchValue
+        The last search string executed, or an empty string if none.
+    */
+    this.lastSearchValue = "";
+
+    /*
+        var: lastResultsPage
+        The last results page.  The value is only relevant if <lastSearchValue> is set.
+    */
+    this.lastResultsPage = "";
+
+    /*
+        var: deactivateTimeout
+
+        The timeout used between when a control is deactivated and when the entire panel is deactivated.  Is necessary
+        because a control may be deactivated in favor of another control in the same panel, in which case it should stay
+        active.
+    */
+    this.deactivateTimout = 0;
+
+    /*
+        var: deactivateTimeoutLength
+        The length of <deactivateTimeout> in thousandths of a second.
+    */
+    this.deactivateTimeoutLength = 200;
+
+
+
+
+    // Group: DOM Elements
+    // ________________________________________________________________________
+
+
+    // Function: DOMSearchField
+    this.DOMSearchField = function()
+        {  return document.getElementById("MSearchField");  };
+
+    // Function: DOMSearchType
+    this.DOMSearchType = function()
+        {  return document.getElementById("MSearchType");  };
+
+    // Function: DOMPopupSearchResults
+    this.DOMPopupSearchResults = function()
+        {  return document.getElementById("MSearchResults");  };
+
+    // Function: DOMPopupSearchResultsWindow
+    this.DOMPopupSearchResultsWindow = function()
+        {  return document.getElementById("MSearchResultsWindow");  };
+
+    // Function: DOMSearchPanel
+    this.DOMSearchPanel = function()
+        {  return document.getElementById("MSearchPanel");  };
+
+
+
+
+    // Group: Event Handlers
+    // ________________________________________________________________________
+
+
+    /*
+        Function: OnSearchFieldFocus
+        Called when focus is added or removed from the search field.
+    */
+    this.OnSearchFieldFocus = function(isActive)
+        {
+        this.Activate(isActive);
+        };
+
+
+    /*
+        Function: OnSearchFieldChange
+        Called when the content of the search field is changed.
+    */
+    this.OnSearchFieldChange = function()
+        {
+        if (this.keyTimeout)
+            {
+            clearTimeout(this.keyTimeout);
+            this.keyTimeout = 0;
+            };
+
+        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+        if (searchValue != this.lastSearchValue)
+            {
+            if (searchValue != "")
+                {
+                this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength);
+                }
+            else
+                {
+                if (this.mode == "HTML")
+                    {  this.DOMPopupSearchResultsWindow().style.display = "none";  };
+                this.lastSearchValue = "";
+                };
+            };
+        };
+
+
+    /*
+        Function: OnSearchTypeFocus
+        Called when focus is added or removed from the search type.
+    */
+    this.OnSearchTypeFocus = function(isActive)
+        {
+        this.Activate(isActive);
+        };
+
+
+    /*
+        Function: OnSearchTypeChange
+        Called when the search type is changed.
+    */
+    this.OnSearchTypeChange = function()
+        {
+        var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+        if (searchValue != "")
+            {
+            this.Search();
+            };
+        };
+
+
+
+    // Group: Action Functions
+    // ________________________________________________________________________
+
+
+    /*
+        Function: CloseResultsWindow
+        Closes the results window.
+    */
+    this.CloseResultsWindow = function()
+        {
+        this.DOMPopupSearchResultsWindow().style.display = "none";
+        this.Activate(false, true);
+        };
+
+
+    /*
+        Function: Search
+        Performs a search.
+    */
+    this.Search = function()
+        {
+        this.keyTimeout = 0;
+
+        var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+        var searchTopic = this.DOMSearchType().value;
+
+        var pageExtension = searchValue.substr(0,1);
+
+        if (pageExtension.match(/^[a-z]/i))
+            {  pageExtension = pageExtension.toUpperCase();  }
+        else if (pageExtension.match(/^[0-9]/))
+            {  pageExtension = 'Numbers';  }
+        else
+            {  pageExtension = "Symbols";  };
+
+        var resultsPage;
+        var resultsPageWithSearch;
+        var hasResultsPage;
+
+        // indexSectionsWithContent is defined in searchdata.js
+        if (indexSectionsWithContent[searchTopic][pageExtension] == true)
+            {
+            resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html';
+            resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+            hasResultsPage = true;
+            }
+        else
+            {
+            resultsPage = this.resultsPath + '/NoResults.html';
+            resultsPageWithSearch = resultsPage;
+            hasResultsPage = false;
+            };
+
+        var resultsFrame;
+        if (this.mode == "HTML")
+            {  resultsFrame = window.frames.MSearchResults;  }
+        else if (this.mode == "FramedHTML")
+            {  resultsFrame = window.top.frames['Content'];  };
+
+
+        if (resultsPage != this.lastResultsPage ||
+
+            // Bug in IE.  If everything becomes hidden in a run, none of them will be able to be reshown in the next for some
+            // reason.  It counts the right number of results, and you can even read the display as "block" after setting it, but it
+            // just doesn't work in IE 6 or IE 7.  So if we're on the right page but the previous search had no results, reload the
+            // page anyway to get around the bug.
+            (browserType == "IE" && hasResultsPage &&
+            	(!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
+
+            {
+            resultsFrame.location.href = resultsPageWithSearch;
+            }
+
+        // So if the results page is right and there's no IE bug, reperform the search on the existing page.  We have to check if there
+        // are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even
+        // if it did.
+        else if (hasResultsPage)
+            {
+            // We need to check if this exists in case the frame is present but didn't finish loading.
+            if (resultsFrame.searchResults)
+                {  resultsFrame.searchResults.Search(searchValue);  }
+
+            // Otherwise just reload instead of waiting.
+            else
+                {  resultsFrame.location.href = resultsPageWithSearch;  };
+            };
+
+
+        var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+        if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block")
+            {
+            var domSearchType = this.DOMSearchType();
+
+            var left = GetXPosition(domSearchType);
+            var top = GetYPosition(domSearchType) + domSearchType.offsetHeight;
+
+            MoveToPosition(domPopupSearchResultsWindow, left, top);
+            domPopupSearchResultsWindow.style.display = 'block';
+            };
+
+
+        this.lastSearchValue = searchValue;
+        this.lastResultsPage = resultsPage;
+        };
+
+
+
+    // Group: Activation Functions
+    // Functions that handle whether the entire panel is active or not.
+    // ________________________________________________________________________
+
+
+    /*
+        Function: Activate
+
+        Activates or deactivates the search panel, resetting things to their default values if necessary.  You can call this on every
+        control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently.
+
+        Parameters:
+
+            isActive - Whether you're activating or deactivating the panel.
+            ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay.
+    */
+    this.Activate = function(isActive, ignoreDeactivateDelay)
+        {
+        // We want to ignore isActive being false while the results window is open.
+        if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block"))
+            {
+            if (this.inactivateTimeout)
+                {
+                clearTimeout(this.inactivateTimeout);
+                this.inactivateTimeout = 0;
+                };
+
+            this.DOMSearchPanel().className = 'MSearchPanelActive';
+
+            var searchField = this.DOMSearchField();
+
+            if (searchField.value == 'Search')
+                 {  searchField.value = "";  }
+            }
+        else if (!ignoreDeactivateDelay)
+            {
+            this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength);
+            }
+        else
+            {
+            this.InactivateAfterTimeout();
+            };
+        };
+
+
+    /*
+        Function: InactivateAfterTimeout
+
+        Called by <inactivateTimeout>, which is set by <Activate()>.  Inactivation occurs on a timeout because a control may
+        receive OnBlur() when focus is really transferring to another control in the search panel.  In this case we don't want to
+        actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value.
+        So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation.
+    */
+    this.InactivateAfterTimeout = function()
+        {
+        this.inactivateTimeout = 0;
+
+        this.DOMSearchPanel().className = 'MSearchPanelInactive';
+        this.DOMSearchField().value = "Search";
+
+	    this.lastSearchValue = "";
+	    this.lastResultsPage = "";
+        };
+    };
+
+
+
+
+/* ________________________________________________________________________________________________________
+
+   Class: SearchResults
+   _________________________________________________________________________________________________________
+
+   The class that handles everything on the search results page.
+   _________________________________________________________________________________________________________
+*/
+
+
+function SearchResults(name, mode)
+    {
+    /*
+        var: mode
+        The mode the search is going to work in, such as "HTML" or "FramedHTML".
+    */
+    this.mode = mode;
+
+    /*
+        var: lastMatchCount
+        The number of matches from the last run of <Search()>.
+    */
+    this.lastMatchCount = 0;
+
+
+    /*
+        Function: Toggle
+        Toggles the visibility of the passed element ID.
+    */
+    this.Toggle = function(id)
+        {
+        if (this.mode == "FramedHTML")
+            {  return;  };
+
+        var parentElement = document.getElementById(id);
+
+        var element = parentElement.firstChild;
+
+        while (element && element != parentElement)
+            {
+            if (element.nodeName == 'DIV' && element.className == 'ISubIndex')
+                {
+                if (element.style.display == 'block')
+                    {  element.style.display = "none";  }
+                else
+                    {  element.style.display = 'block';  }
+                };
+
+            if (element.nodeName == 'DIV' && element.hasChildNodes())
+                {  element = element.firstChild;  }
+            else if (element.nextSibling)
+                {  element = element.nextSibling;  }
+            else
+                {
+                do
+                    {
+                    element = element.parentNode;
+                    }
+                while (element && element != parentElement && !element.nextSibling);
+
+                if (element && element != parentElement)
+                    {  element = element.nextSibling;  };
+                };
+            };
+        };
+
+
+    /*
+        Function: Search
+
+        Searches for the passed string.  If there is no parameter, it takes it from the URL query.
+
+        Always returns true, since other documents may try to call it and that may or may not be possible.
+    */
+    this.Search = function(search)
+        {
+        if (!search)
+            {
+            search = window.location.search;
+            search = search.substring(1);  // Remove the leading ?
+            search = unescape(search);
+            };
+
+        search = search.replace(/^ +/, "");
+        search = search.replace(/ +$/, "");
+        search = search.toLowerCase();
+
+        if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily.
+            {
+            search = search.replace(/\_/g, "_und");
+            search = search.replace(/\ +/gi, "_spc");
+            search = search.replace(/\~/g, "_til");
+            search = search.replace(/\!/g, "_exc");
+            search = search.replace(/\@/g, "_att");
+            search = search.replace(/\#/g, "_num");
+            search = search.replace(/\$/g, "_dol");
+            search = search.replace(/\%/g, "_pct");
+            search = search.replace(/\^/g, "_car");
+            search = search.replace(/\&/g, "_amp");
+            search = search.replace(/\*/g, "_ast");
+            search = search.replace(/\(/g, "_lpa");
+            search = search.replace(/\)/g, "_rpa");
+            search = search.replace(/\-/g, "_min");
+            search = search.replace(/\+/g, "_plu");
+            search = search.replace(/\=/g, "_equ");
+            search = search.replace(/\{/g, "_lbc");
+            search = search.replace(/\}/g, "_rbc");
+            search = search.replace(/\[/g, "_lbk");
+            search = search.replace(/\]/g, "_rbk");
+            search = search.replace(/\:/g, "_col");
+            search = search.replace(/\;/g, "_sco");
+            search = search.replace(/\"/g, "_quo");
+            search = search.replace(/\'/g, "_apo");
+            search = search.replace(/\</g, "_lan");
+            search = search.replace(/\>/g, "_ran");
+            search = search.replace(/\,/g, "_com");
+            search = search.replace(/\./g, "_per");
+            search = search.replace(/\?/g, "_que");
+            search = search.replace(/\//g, "_sla");
+            search = search.replace(/[^a-z0-9\_]i/gi, "_zzz");
+            };
+
+        var resultRows = document.getElementsByTagName("div");
+        var matches = 0;
+
+        var i = 0;
+        while (i < resultRows.length)
+            {
+            var row = resultRows.item(i);
+
+            if (row.className == "SRResult")
+                {
+                var rowMatchName = row.id.toLowerCase();
+                rowMatchName = rowMatchName.replace(/^sr\d*_/, '');
+
+                if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search)
+                    {
+                    row.style.display = "block";
+                    matches++;
+                    }
+                else
+                    {  row.style.display = "none";  };
+                };
+
+            i++;
+            };
+
+        document.getElementById("Searching").style.display="none";
+
+        if (matches == 0)
+            {  document.getElementById("NoMatches").style.display="block";  }
+        else
+            {  document.getElementById("NoMatches").style.display="none";  }
+
+        this.lastMatchCount = matches;
+
+        return true;
+        };
+    };
+
diff --git a/doc/apidoc/html/javascript/searchdata.js b/doc/apidoc/html/javascript/searchdata.js
new file mode 100755
index 0000000..1b51108
--- /dev/null
+++ b/doc/apidoc/html/javascript/searchdata.js
@@ -0,0 +1,182 @@
+var indexSectionsWithContent = {
+   "General": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": true,
+      "B": true,
+      "C": true,
+      "D": true,
+      "E": true,
+      "F": true,
+      "G": false,
+      "H": false,
+      "I": true,
+      "J": false,
+      "K": true,
+      "L": false,
+      "M": true,
+      "N": false,
+      "O": true,
+      "P": true,
+      "Q": false,
+      "R": true,
+      "S": true,
+      "T": true,
+      "U": true,
+      "V": true,
+      "W": false,
+      "X": true,
+      "Y": false,
+      "Z": true
+      },
+   "Variables": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": false,
+      "B": false,
+      "C": false,
+      "D": false,
+      "E": false,
+      "F": false,
+      "G": false,
+      "H": false,
+      "I": false,
+      "J": false,
+      "K": false,
+      "L": false,
+      "M": false,
+      "N": false,
+      "O": false,
+      "P": false,
+      "Q": false,
+      "R": false,
+      "S": false,
+      "T": false,
+      "U": true,
+      "V": false,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": false
+      },
+   "Functions": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": false,
+      "B": true,
+      "C": true,
+      "D": true,
+      "E": true,
+      "F": true,
+      "G": false,
+      "H": false,
+      "I": false,
+      "J": false,
+      "K": true,
+      "L": false,
+      "M": true,
+      "N": false,
+      "O": false,
+      "P": false,
+      "Q": false,
+      "R": true,
+      "S": true,
+      "T": false,
+      "U": false,
+      "V": false,
+      "W": false,
+      "X": true,
+      "Y": false,
+      "Z": false
+      },
+   "Files": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": true,
+      "B": false,
+      "C": false,
+      "D": true,
+      "E": false,
+      "F": false,
+      "G": false,
+      "H": false,
+      "I": false,
+      "J": false,
+      "K": false,
+      "L": false,
+      "M": false,
+      "N": false,
+      "O": false,
+      "P": false,
+      "Q": false,
+      "R": true,
+      "S": false,
+      "T": true,
+      "U": false,
+      "V": false,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": true
+      },
+   "Types": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": false,
+      "B": true,
+      "C": false,
+      "D": false,
+      "E": false,
+      "F": true,
+      "G": false,
+      "H": false,
+      "I": true,
+      "J": false,
+      "K": false,
+      "L": false,
+      "M": false,
+      "N": false,
+      "O": true,
+      "P": false,
+      "Q": false,
+      "R": false,
+      "S": true,
+      "T": true,
+      "U": false,
+      "V": true,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": false
+      },
+   "Constants": {
+      "Symbols": false,
+      "Numbers": false,
+      "A": false,
+      "B": false,
+      "C": true,
+      "D": false,
+      "E": false,
+      "F": false,
+      "G": false,
+      "H": false,
+      "I": false,
+      "J": false,
+      "K": false,
+      "L": false,
+      "M": false,
+      "N": false,
+      "O": false,
+      "P": true,
+      "Q": false,
+      "R": false,
+      "S": false,
+      "T": false,
+      "U": false,
+      "V": false,
+      "W": false,
+      "X": false,
+      "Y": false,
+      "Z": false
+      }
+   }
\ No newline at end of file
diff --git a/doc/apidoc/html/menu.html b/doc/apidoc/html/menu.html
new file mode 100644
index 0000000..31b8457
--- /dev/null
+++ b/doc/apidoc/html/menu.html
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>Menu - TCCUsefulFunctions</title>
+<base target="Content">
+<link rel="stylesheet" type="text/css" href="styles/main.css">
+<script language=JavaScript src="javascript/main.js"></script>
+<script language=JavaScript src="javascript/searchdata.js"></script></head>
+<body class="FramedMenuPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Menu>
+<div class=MTitle>TCCUsefulFunctions<div class=MSubTitle>R12A02</div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent1')" target="_self">Aka-algorythm</a>
+<div class=MGroupContent id=MGroupContent1>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/aka_algorythm_set-h.html">aka_algorythm_set.h</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent2')" target="_self">Assertion</a>
+<div class=MGroupContent id=MGroupContent2>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCAssertion-cc.html">f__assert</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCAssertion_Functions-ttcn.html">TCCAssertion_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent3')" target="_self">Conversion</a>
+<div class=MGroupContent id=MGroupContent3>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCConversion-cc.html">TCCConversion.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCConversion_Functions-ttcn.html">TCCConversion_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent4')" target="_self">Date-Time</a>
+<div class=MGroupContent id=MGroupContent4>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCDateTime-cc.html">TCCDateTime.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCDateTime_Functions-ttcn.html">TCCDateTime_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent5')" target="_self">Digcalc</a>
+<div class=MGroupContent id=MGroupContent5>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/digcalc-h.html">digcalc.h</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent6')" target="_self">Encoding</a>
+<div class=MGroupContent id=MGroupContent6>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCEncoding-cc.html">TCCEncoding.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCEncoding_Functions-ttcn.html">TCCEncoding_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent7')" target="_self">Env</a>
+<div class=MGroupContent id=MGroupContent7>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCEnv-cc.html">TCCEnv.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCEnv_Functions-ttcn.html">TCCEnv_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent8')" target="_self">File</a>
+<div class=MGroupContent id=MGroupContent8>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCFileIO-cc.html">TCCFileIO.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCFileIO_Functions-ttcn.html">TCCFileIO_Functions</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCFileSystem_Functions-ttcn.html">TCCFileSystem_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent9')" target="_self">IP</a>
+<div class=MGroupContent id=MGroupContent9>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCIPsec_Definitions-ttcn.html">TCCIPsec_Definitions.ttcn</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCIPsec_Functions-ttcn.html">TCCIPsec_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent10')" target="_self">Interface</a>
+<div class=MGroupContent id=MGroupContent10>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCInterface-cc.html">TCCInterface.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCInterface_Functions-ttcn.html">TCCInterface_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent11')" target="_self">Math</a>
+<div class=MGroupContent id=MGroupContent11>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCMaths-cc.html">TCCMaths.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCMaths_Functions-ttcn.html">TCCMaths_Functions</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCMaths_GenericTypes-ttcn.html">TCCMaths_GenericTypes</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent12')" target="_self">Message-Handling</a>
+<div class=MGroupContent id=MGroupContent12>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCMessageHandling_Functions-ttcn.html">TCCMessageHandling_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent13')" target="_self">Regexp</a>
+<div class=MGroupContent id=MGroupContent13>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCRegexp_Functions-ttcn.html">Regexp_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent14')" target="_self">Security</a>
+<div class=MGroupContent id=MGroupContent14>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCSecurity-cc.html">TCCSecurity.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCSecurity_Functions-ttcn.html">TCCSecurity_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent15')" target="_self">System</a>
+<div class=MGroupContent id=MGroupContent15>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCSystem-cc.html">f_SYS_getpid</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCSystem_Functions-ttcn.html">f_SYS_getpid</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent16')" target="_self">Template</a>
+<div class=MGroupContent id=MGroupContent16>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCTemplate_Functions-ttcn.html">TCCTemplate_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent17')" target="_self">Titan-Metadata</a>
+<div class=MGroupContent id=MGroupContent17>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCTitanMetadata-cc.html">f__compilationTime</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCTitanMetadata_Functions-ttcn.html">TCCTitanMetadata_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent18')" target="_self">XPath-Support</a>
+<div class=MGroupContent id=MGroupContent18>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCXPathSupport_Functions-ttcn.html">TCCXPathSupport_Functions</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCXPathSupport-cc.html">XPathQuery</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent19')" target="_self">Zuc</a>
+<div class=MGroupContent id=MGroupContent19>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/zuc-h.html">zuc.h</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent20')" target="_self">Index</a>
+<div class=MGroupContent id=MGroupContent20>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/General.html">Everything</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Constants.html">Constants</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Files.html">Files</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Functions.html">Functions</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Types.html">Types</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Variables.html">Variables</a></div></div></div></div></div>
+<script type="text/javascript">
+<!--
+var searchPanel = new SearchPanel("searchPanel", "FramedHTML", "search");
+--></script>
+<div id=MSearchPanel class=MSearchPanelInactive>
+<input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()">
+<select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()">
+<option  id=MSearchEverything selected value="General">Everything</option>
+<option value="Constants">Constants</option>
+<option value="Files">Files</option>
+<option value="Functions">Functions</option>
+<option value="Types">Types</option>
+<option value="Variables">Variables</option></select></div>
+<script language=JavaScript>
+<!--
+HideAllBut([], 21);// --></script></div>
+<!--Menu-->
+
+
+<div id=Footer>
+<p>Copyright 2015 Ericsson AB<br/>
+<a href="http://ttcn.ericsson.se/">http://ttcn.ericsson.se</a></p>
+<p>
+<a href="http://www.naturaldocs.org">Generated by Natural Docs</a></p></div>
+<!--Footer-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
diff --git a/doc/apidoc/html/menu.html~ b/doc/apidoc/html/menu.html~
new file mode 100644
index 0000000..f637c1d
--- /dev/null
+++ b/doc/apidoc/html/menu.html~
@@ -0,0 +1,254 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<title>Menu - TCCUsefulFunctions</title>
+<base target="Content">
+<link rel="stylesheet" type="text/css" href="styles/main.css">
+<script language=JavaScript src="javascript/main.js"></script>
+<script language=JavaScript src="javascript/searchdata.js"></script></head>
+<body class="FramedMenuPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Menu>
+<div class=MTitle>TCCUsefulFunctions<div class=MSubTitle>R12A02</div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent1')" target="_self">Aka-algorythm</a>
+<div class=MGroupContent id=MGroupContent1>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/aka_algorythm_set-h.html">aka_algorythm_set.h</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent2')" target="_self">Assertion</a>
+<div class=MGroupContent id=MGroupContent2>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCAssertion-cc.html">f__assert</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCAssertion_Functions-ttcn.html">TCCAssertion_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent3')" target="_self">Conversion</a>
+<div class=MGroupContent id=MGroupContent3>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCConversion-cc.html">TCCConversion.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCConversion_Functions-ttcn.html">TCCConversion_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent4')" target="_self">Date-Time</a>
+<div class=MGroupContent id=MGroupContent4>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCDateTime-cc.html">TCCDateTime.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCDateTime_Functions-ttcn.html">TCCDateTime_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent5')" target="_self">Digcalc</a>
+<div class=MGroupContent id=MGroupContent5>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/digcalc-h.html">digcalc.h</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent6')" target="_self">Encoding</a>
+<div class=MGroupContent id=MGroupContent6>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCEncoding-cc.html">TCCEncoding.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCEncoding_Functions-ttcn.html">TCCEncoding_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent7')" target="_self">Env</a>
+<div class=MGroupContent id=MGroupContent7>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCEnv-cc.html">TCCEnv.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCEnv_Functions-ttcn.html">TCCEnv_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent8')" target="_self">File</a>
+<div class=MGroupContent id=MGroupContent8>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCFileIO-cc.html">TCCFileIO.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCFileIO_Functions-ttcn.html">TCCFileIO_Functions</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCFileSystem_Functions-ttcn.html">TCCFileSystem_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent9')" target="_self">IP</a>
+<div class=MGroupContent id=MGroupContent9>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCIPsec_Definitions-ttcn.html">TCCIPsec_Definitions.ttcn</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCIPsec_Functions-ttcn.html">TCCIPsec_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent10')" target="_self">Interface</a>
+<div class=MGroupContent id=MGroupContent10>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCInterface-cc.html">TCCInterface.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCInterface_Functions-ttcn.html">TCCInterface_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent11')" target="_self">Math</a>
+<div class=MGroupContent id=MGroupContent11>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCMaths-cc.html">TCCMaths.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCMaths_Functions-ttcn.html">TCCMaths_Functions</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCMaths_GenericTypes-ttcn.html">TCCMaths_GenericTypes</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent12')" target="_self">Message-Handling</a>
+<div class=MGroupContent id=MGroupContent12>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCMessageHandling_Functions-ttcn.html">TCCMessageHandling_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent13')" target="_self">Regexp</a>
+<div class=MGroupContent id=MGroupContent13>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCRegexp_Functions-ttcn.html">Regexp_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent14')" target="_self">Security</a>
+<div class=MGroupContent id=MGroupContent14>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCSecurity-cc.html">TCCSecurity.cc</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCSecurity_Functions-ttcn.html">TCCSecurity_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent15')" target="_self">System</a>
+<div class=MGroupContent id=MGroupContent15>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCSystem-cc.html">f_SYS_getpid</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCSystem_Functions-ttcn.html">f_SYS_getpid</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent16')" target="_self">Template</a>
+<div class=MGroupContent id=MGroupContent16>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCTemplate_Functions-ttcn.html">TCCTemplate_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent17')" target="_self">Titan-Metadata</a>
+<div class=MGroupContent id=MGroupContent17>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCTitanMetadata-cc.html">f__compilationTime</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCTitanMetadata_Functions-ttcn.html">TCCTitanMetadata_Functions</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent18')" target="_self">XPath-Support</a>
+<div class=MGroupContent id=MGroupContent18>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCXPathSupport_Functions-ttcn.html">TCCXPathSupport_Functions</a></div></div>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/TCCXPathSupport-cc.html">XPathQuery</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent19')" target="_self">Zuc</a>
+<div class=MGroupContent id=MGroupContent19>
+<div class=MEntry>
+<div class=MFile>
+<a href="files/zuc-h.html">zuc.h</a></div></div></div></div></div>
+<div class=MEntry>
+<div class=MGroup>
+<a href="javascript:ToggleMenu('MGroupContent20')" target="_self">Index</a>
+<div class=MGroupContent id=MGroupContent20>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/General.html">Everything</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Constants.html">Constants</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Files.html">Files</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Functions.html">Functions</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Types.html">Types</a></div></div>
+<div class=MEntry>
+<div class=MIndex>
+<a href="index/Variables.html">Variables</a></div></div></div></div></div>
+<script type="text/javascript">
+<!--
+var searchPanel = new SearchPanel("searchPanel", "FramedHTML", "search");
+--></script>
+<div id=MSearchPanel class=MSearchPanelInactive>
+<input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()">
+<select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()">
+<option  id=MSearchEverything selected value="General">Everything</option>
+<option value="Constants">Constants</option>
+<option value="Files">Files</option>
+<option value="Functions">Functions</option>
+<option value="Types">Types</option>
+<option value="Variables">Variables</option></select></div>
+<script language=JavaScript>
+<!--
+HideAllBut([], 21);// --></script></div>
+<!--Menu-->
+
+
+<div id=Footer>
+<p>Copyright 2012 Test Competence Center<br/>
+<a href="http://ttcn.ericsson.se/">http://ttcn.ericsson.se</a></p>
+<p>
+<a href="http://www.naturaldocs.org">Generated by Natural Docs</a></p></div>
+<!--Footer-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/ConstantsC.html b/doc/apidoc/html/search/ConstantsC.html
new file mode 100644
index 0000000..d2ec85e
--- /dev/null
+++ b/doc/apidoc/html/search/ConstantsC.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_c_undTCCIPsec_undanyPort>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#c_TCCIPsec_anyPort" class=ISymbol>c_TCCIPsec_anyPort</a></div></div>
+<div class=SRResult id=SR_c_undTCCIPsec_undprefixAll>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#c_TCCIPsec_prefixAll" class=ISymbol>c_TCCIPsec_prefixAll</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/ConstantsP.html b/doc/apidoc/html/search/ConstantsP.html
new file mode 100644
index 0000000..0c96976
--- /dev/null
+++ b/doc/apidoc/html/search/ConstantsP.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_pi>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#pi" class=ISymbol>pi</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FilesA.html b/doc/apidoc/html/search/FilesA.html
new file mode 100644
index 0000000..3a342c3
--- /dev/null
+++ b/doc/apidoc/html/search/FilesA.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_aka_undalgorythm_undset_perh>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#aka_algorythm_set.h" class=ISymbol>aka_algorythm_set.h</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FilesD.html b/doc/apidoc/html/search/FilesD.html
new file mode 100644
index 0000000..566ccb3
--- /dev/null
+++ b/doc/apidoc/html/search/FilesD.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_digcalc_perh>
+<div class=IEntry>
+<a href="../files/digcalc-h.html#digcalc.h" class=ISymbol>digcalc.h</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FilesR.html b/doc/apidoc/html/search/FilesR.html
new file mode 100644
index 0000000..442fc8d
--- /dev/null
+++ b/doc/apidoc/html/search/FilesR.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_Regexp_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCRegexp_Functions-ttcn.html#Regexp_Functions" class=ISymbol>Regexp_Functions</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FilesT.html b/doc/apidoc/html/search/FilesT.html
new file mode 100644
index 0000000..4ae7d84
--- /dev/null
+++ b/doc/apidoc/html/search/FilesT.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_TCCAssertion_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCAssertion_Functions-ttcn.html#TCCAssertion_Functions" class=ISymbol>TCCAssertion_Functions</a></div></div>
+<div class=SRResult id=SR_TCCConversion_percc>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#TCCConversion.cc" class=ISymbol>TCCConversion.cc</a></div></div>
+<div class=SRResult id=SR_TCCConversion_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#TCCConversion_Functions" class=ISymbol>TCCConversion_Functions</a></div></div>
+<div class=SRResult id=SR_TCCDateTime_percc>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#TCCDateTime.cc" class=ISymbol>TCCDateTime.cc</a></div></div>
+<div class=SRResult id=SR_TCCDateTime_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#TCCDateTime_Functions" class=ISymbol>TCCDateTime_Functions</a></div></div>
+<div class=SRResult id=SR_TCCEncoding_percc>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#TCCEncoding.cc" class=ISymbol>TCCEncoding.cc</a></div></div>
+<div class=SRResult id=SR_TCCEncoding_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#TCCEncoding_Functions" class=ISymbol>TCCEncoding_Functions</a></div></div>
+<div class=SRResult id=SR_TCCEnv_percc>
+<div class=IEntry>
+<a href="../files/TCCEnv-cc.html#TCCEnv.cc" class=ISymbol>TCCEnv.cc</a></div></div>
+<div class=SRResult id=SR_TCCEnv_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#TCCEnv_Functions" class=ISymbol>TCCEnv_Functions</a></div></div>
+<div class=SRResult id=SR_TCCFileIO_percc>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#TCCFileIO.cc" class=ISymbol>TCCFileIO.cc</a></div></div>
+<div class=SRResult id=SR_TCCFileIO_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#TCCFileIO_Functions" class=ISymbol>TCCFileIO_Functions</a></div></div>
+<div class=SRResult id=SR_TCCFileSystem_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#TCCFileSystem_Functions" class=ISymbol>TCCFileSystem_Functions</a></div></div>
+<div class=SRResult id=SR_TCCInterface_percc>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#TCCInterface.cc" class=ISymbol>TCCInterface.cc</a></div></div>
+<div class=SRResult id=SR_TCCInterface_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#TCCInterface_Functions" class=ISymbol>TCCInterface_Functions</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undDefinitions_perttcn>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Definitions.ttcn" class=ISymbol>TCCIPsec_Definitions.ttcn</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#TCCIPsec_Functions" class=ISymbol>TCCIPsec_Functions</a></div></div>
+<div class=SRResult id=SR_TCCMaths_percc>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#TCCMaths.cc" class=ISymbol>TCCMaths.cc</a></div></div>
+<div class=SRResult id=SR_TCCMaths_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#TCCMaths_Functions" class=ISymbol>TCCMaths_Functions</a></div></div>
+<div class=SRResult id=SR_TCCMaths_undGenericTypes>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#TCCMaths_GenericTypes" class=ISymbol>TCCMaths_GenericTypes</a></div></div>
+<div class=SRResult id=SR_TCCMessageHandling_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#TCCMessageHandling_Functions" class=ISymbol>TCCMessageHandling_Functions</a></div></div>
+<div class=SRResult id=SR_TCCSecurity_percc>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#TCCSecurity.cc" class=ISymbol>TCCSecurity.cc</a></div></div>
+<div class=SRResult id=SR_TCCSecurity_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#TCCSecurity_Functions" class=ISymbol>TCCSecurity_Functions</a></div></div>
+<div class=SRResult id=SR_TCCTemplate_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#TCCTemplate_Functions" class=ISymbol>TCCTemplate_Functions</a></div></div>
+<div class=SRResult id=SR_TCCTitanMetadata_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#TCCTitanMetadata_Functions" class=ISymbol>TCCTitanMetadata_Functions</a></div></div>
+<div class=SRResult id=SR_TCCXPathSupport_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#TCCXPathSupport_Functions" class=ISymbol>TCCXPathSupport_Functions</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FilesZ.html b/doc/apidoc/html/search/FilesZ.html
new file mode 100644
index 0000000..56d2ab3
--- /dev/null
+++ b/doc/apidoc/html/search/FilesZ.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_zuc_perh>
+<div class=IEntry>
+<a href="../files/zuc-h.html#zuc.h" class=ISymbol>zuc.h</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsB.html b/doc/apidoc/html/search/FunctionsB.html
new file mode 100644
index 0000000..5b5ebe9
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsB.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_ByteSub>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ByteSub" class=ISymbol>ByteSub</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsC.html b/doc/apidoc/html/search/FunctionsC.html
new file mode 100644
index 0000000..cc49eac
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsC.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_ComputeOPc>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ComputeOPc" class=ISymbol>ComputeOPc</a></div></div>
+<div class=SRResult id=SR_CvtHex>
+<div class=IEntry>
+<a href="../files/digcalc-h.html#CvtHex" class=ISymbol>CvtHex</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsD.html b/doc/apidoc/html/search/FunctionsD.html
new file mode 100644
index 0000000..8463c60
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsD.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_dec_und_undLDIF_und_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#dec__LDIF__Base64" class=ISymbol>dec__LDIF__Base64</a></div></div>
+<div class=SRResult id=SR_dec_und_undMIME_und_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#dec__MIME__Base64" class=ISymbol>dec__MIME__Base64</a></div></div>
+<div class=SRResult id=SR_dec_undLDIF_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#dec_LDIF_Base64" class=ISymbol>dec_LDIF_Base64</a></div></div>
+<div class=SRResult id=SR_dec_undMIME_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#dec_MIME_Base64" class=ISymbol>dec_MIME_Base64</a></div></div>
+<div class=SRResult id=SR_DigestCalcHA1>
+<div class=IEntry>
+<a href="../files/digcalc-h.html#DigestCalcHA1" class=ISymbol>DigestCalcHA1</a></div></div>
+<div class=SRResult id=SR_DigestCalcResponse>
+<div class=IEntry>
+<a href="../files/digcalc-h.html#DigestCalcResponse" class=ISymbol>DigestCalcResponse</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsE.html b/doc/apidoc/html/search/FunctionsE.html
new file mode 100644
index 0000000..dd0e2a2
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsE.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_EEA3>
+<div class=IEntry>
+<a href="../files/zuc-h.html#EEA3" class=ISymbol>EEA3</a></div></div>
+<div class=SRResult id=SR_EIA3>
+<div class=IEntry>
+<a href="../files/zuc-h.html#EIA3" class=ISymbol>EIA3</a></div></div>
+<div class=SRResult id=SR_enc_und_undLDIF_und_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#enc__LDIF__Base64" class=ISymbol>enc__LDIF__Base64</a></div></div>
+<div class=SRResult id=SR_enc_und_undMIME_und_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#enc__MIME__Base64" class=ISymbol>enc__MIME__Base64</a></div></div>
+<div class=SRResult id=SR_enc_undLDIF_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#enc_LDIF_Base64" class=ISymbol>enc_LDIF_Base64</a></div></div>
+<div class=SRResult id=SR_enc_undMIME_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#enc_MIME_Base64" class=ISymbol>enc_MIME_Base64</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsF.html b/doc/apidoc/html/search/FunctionsF.html
new file mode 100644
index 0000000..69d76c0
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsF.html
@@ -0,0 +1,867 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_f_und_undacos>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__acos" class=ISymbol>f__acos</a></div></div>
+<div class=SRResult id=SR_f_und_undaddOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__addOctetstring" class=ISymbol>f__addOctetstring</a></div></div>
+<div class=SRResult id=SR_f_und_undasin>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__asin" class=ISymbol>f__asin</a></div></div>
+<div class=SRResult id=SR_f_und_undassert>
+<div class=IEntry>
+<a href="../files/TCCAssertion-cc.html#f__assert" class=ISymbol>f__assert</a></div></div>
+<div class=SRResult id=SR_f_und_undaverageFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__averageFL" class=ISymbol>f__averageFL</a></div></div>
+<div class=SRResult id=SR_f_und_undaverageIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__averageIL" class=ISymbol>f__averageIL</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculate_und_undHMAC_und_undMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate__HMAC__MD5" class=ISymbol>f__calculate__HMAC__MD5</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculate_und_undHMAC_und_undSHA1>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate__HMAC__SHA1" class=ISymbol>f__calculate__HMAC__SHA1</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculate128_und_undEEA3>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate128__EEA3" class=ISymbol>f__calculate128__EEA3</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculate128_und_undEIA3>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate128__EIA3" class=ISymbol>f__calculate128__EIA3</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculateDigestHA1>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateDigestHA1" class=ISymbol>f__calculateDigestHA1</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculateDigestResponse>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateDigestResponse" class=ISymbol>f__calculateDigestResponse</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculateHMACMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateHMACMD5" class=ISymbol>f__calculateHMACMD5</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculateMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateMD5" class=ISymbol>f__calculateMD5</a></div></div>
+<div class=SRResult id=SR_f_und_undceil>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__ceil" class=ISymbol>f__ceil</a></div></div>
+<div class=SRResult id=SR_f_und_undcompilationTime>
+<div class=IEntry>
+<a href="../files/TCCTitanMetadata-cc.html#f__compilationTime" class=ISymbol>f__compilationTime</a></div></div>
+<div class=SRResult id=SR_f_und_undcompOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__compOctetstring" class=ISymbol>f__compOctetstring</a></div></div>
+<div class=SRResult id=SR_f_und_undcos>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__cos" class=ISymbol>f__cos</a></div></div>
+<div class=SRResult id=SR_f_und_undcosVL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__cosVL" class=ISymbol>f__cosVL</a></div></div>
+<div class=SRResult id=SR_f_und_undctime>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__ctime" class=ISymbol>f__ctime</a></div></div>
+<div class=SRResult id=SR_f_und_undctime_und_undUTC>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__ctime__UTC" class=ISymbol>f__ctime__UTC</a></div></div>
+<div class=SRResult id=SR_f_und_unddec_und_undTBCD>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#f__dec__TBCD" class=ISymbol>f__dec__TBCD</a></div></div>
+<div class=SRResult id=SR_f_und_unddeleteIP>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__deleteIP" class=ISymbol>f__deleteIP</a></div></div>
+<div class=SRResult id=SR_f_und_undEAPSIM_und_undA3A8>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__EAPSIM__A3A8" class=ISymbol>f__EAPSIM__A3A8</a></div></div>
+<div class=SRResult id=SR_f_und_undenc_und_undTBCD>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#f__enc__TBCD" class=ISymbol>f__enc__TBCD</a></div></div>
+<div class=SRResult id=SR_f_und_undexp>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__exp" class=ISymbol>f__exp</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undchdir>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__chdir" class=ISymbol>f__FIO__chdir</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undclose>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__close" class=ISymbol>f__FIO__close</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__flush" class=ISymbol>f__FIO__flush</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undget_und_underror_und_undcode>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__get__error__code" class=ISymbol>f__FIO__get__error__code</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undget_und_underror_und_undstring>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__get__error__string" class=ISymbol>f__FIO__get__error__string</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open" class=ISymbol>f__FIO__open</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undappend_und_undrdwr>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__rdwr" class=ISymbol>f__FIO__open__append__rdwr</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undappend_und_undrdwr_und_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__rdwr__excl" class=ISymbol>f__FIO__open__append__rdwr__excl</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undappend_und_undwronly>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__wronly" class=ISymbol>f__FIO__open__append__wronly</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undappend_und_undwronly_und_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__wronly__excl" class=ISymbol>f__FIO__open__append__wronly__excl</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undrdonly>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__rdonly" class=ISymbol>f__FIO__open__rdonly</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undtrunc_und_undrdwr>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__rdwr" class=ISymbol>f__FIO__open__trunc__rdwr</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undtrunc_und_undrdwr_und_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__rdwr__excl" class=ISymbol>f__FIO__open__trunc__rdwr__excl</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undtrunc_und_undwronly>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__wronly" class=ISymbol>f__FIO__open__trunc__wronly</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undtrunc_und_undwronly_und_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__wronly__excl" class=ISymbol>f__FIO__open__trunc__wronly__excl</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopened>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__opened" class=ISymbol>f__FIO__opened</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read" class=ISymbol>f__FIO__read</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_unddata>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data" class=ISymbol>f__FIO__read__data</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_unddata_und_undTLV>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data__TLV" class=ISymbol>f__FIO__read__data__TLV</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_unddata_und_unduntil>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data__until" class=ISymbol>f__FIO__read__data__until</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_undtext>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__text" class=ISymbol>f__FIO__read__text</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_undtext_und_unduntil>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__text__until" class=ISymbol>f__FIO__read__text__until</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undrealize_und_underror>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__realize__error" class=ISymbol>f__FIO__realize__error</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undseek_und_undbackward>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__backward" class=ISymbol>f__FIO__seek__backward</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undseek_und_undend>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__end" class=ISymbol>f__FIO__seek__end</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undseek_und_undforward>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__forward" class=ISymbol>f__FIO__seek__forward</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undseek_und_undhome>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__home" class=ISymbol>f__FIO__seek__home</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undset_und_undfiledescriptor_und_undpreviousline>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__set__filedescriptor__previousline" class=ISymbol>f__FIO__set__filedescriptor__previousline</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write" class=ISymbol>f__FIO__write</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite_und_unddata>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__data" class=ISymbol>f__FIO__write__data</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite_und_unddata_und_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__data__flush" class=ISymbol>f__FIO__write__data__flush</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite_und_undtext>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__text" class=ISymbol>f__FIO__write__text</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite_und_undtext_und_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__text__flush" class=ISymbol>f__FIO__write__text__flush</a></div></div>
+<div class=SRResult id=SR_f_und_undfloor>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__floor" class=ISymbol>f__floor</a></div></div>
+<div class=SRResult id=SR_f_und_undgetCurrentDateWithOffset>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getCurrentDateWithOffset" class=ISymbol>f__getCurrentDateWithOffset</a></div></div>
+<div class=SRResult id=SR_f_und_undgetCurrentGMTDate>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getCurrentGMTDate" class=ISymbol>f__getCurrentGMTDate</a></div></div>
+<div class=SRResult id=SR_f_und_undGetEnv>
+<div class=IEntry>
+<a href="../files/TCCEnv-cc.html#f__GetEnv" class=ISymbol>f__GetEnv</a></div></div>
+<div class=SRResult id=SR_f_und_undgetHostName>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getHostName" class=ISymbol>f__getHostName</a></div></div>
+<div class=SRResult id=SR_f_und_undgetIP>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getIP" class=ISymbol>f__getIP</a></div></div>
+<div class=SRResult id=SR_f_und_undgetIpAddr>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getIpAddr" class=ISymbol>f__getIpAddr</a></div></div>
+<div class=SRResult id=SR_f_und_undgetTimeFormatted>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getTimeFormatted" class=ISymbol>f__getTimeFormatted</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undcalculateAUTN>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__calculateAUTN" class=ISymbol>f__IMSAKA__calculateAUTN</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf1>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f1" class=ISymbol>f__IMSAKA__f1</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf1star>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f1star" class=ISymbol>f__IMSAKA__f1star</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf2>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f2" class=ISymbol>f__IMSAKA__f2</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf2345>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f2345" class=ISymbol>f__IMSAKA__f2345</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf3>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f3" class=ISymbol>f__IMSAKA__f3</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf4>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f4" class=ISymbol>f__IMSAKA__f4</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf5>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f5" class=ISymbol>f__IMSAKA__f5</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf5star>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f5star" class=ISymbol>f__IMSAKA__f5star</a></div></div>
+<div class=SRResult id=SR_f_und_undlog>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__log" class=ISymbol>f__log</a></div></div>
+<div class=SRResult id=SR_f_und_undmaxFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__maxFL" class=ISymbol>f__maxFL</a></div></div>
+<div class=SRResult id=SR_f_und_undmaxIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__maxIL" class=ISymbol>f__maxIL</a></div></div>
+<div class=SRResult id=SR_f_und_undminFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__minFL" class=ISymbol>f__minFL</a></div></div>
+<div class=SRResult id=SR_f_und_undminIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__minIL" class=ISymbol>f__minIL</a></div></div>
+<div class=SRResult id=SR_f_und_undpowFF>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powFF" class=ISymbol>f__powFF</a></div></div>
+<div class=SRResult id=SR_f_und_undpowFI>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powFI" class=ISymbol>f__powFI</a></div></div>
+<div class=SRResult id=SR_f_und_undpowIF>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powIF" class=ISymbol>f__powIF</a></div></div>
+<div class=SRResult id=SR_f_und_undpowII>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powII" class=ISymbol>f__powII</a></div></div>
+<div class=SRResult id=SR_f_und_undPutEnv>
+<div class=IEntry>
+<a href="../files/TCCEnv-cc.html#f__PutEnv" class=ISymbol>f__PutEnv</a></div></div>
+<div class=SRResult id=SR_f_und_undputInLowercase>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__putInLowercase" class=ISymbol>f__putInLowercase</a></div></div>
+<div class=SRResult id=SR_f_und_undputInUppercase>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__putInUppercase" class=ISymbol>f__putInUppercase</a></div></div>
+<div class=SRResult id=SR_f_und_undsetInterfaceDown>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setInterfaceDown" class=ISymbol>f__setInterfaceDown</a></div></div>
+<div class=SRResult id=SR_f_und_undsetInterfaceUp>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setInterfaceUp" class=ISymbol>f__setInterfaceUp</a></div></div>
+<div class=SRResult id=SR_f_und_undsetIP>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setIP" class=ISymbol>f__setIP</a></div></div>
+<div class=SRResult id=SR_f_und_undsin>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sin" class=ISymbol>f__sin</a></div></div>
+<div class=SRResult id=SR_f_und_undsinVL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sinVL" class=ISymbol>f__sinVL</a></div></div>
+<div class=SRResult id=SR_f_und_undsqrF>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrF" class=ISymbol>f__sqrF</a></div></div>
+<div class=SRResult id=SR_f_und_undsqrI>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrI" class=ISymbol>f__sqrI</a></div></div>
+<div class=SRResult id=SR_f_und_undsqrtF>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrtF" class=ISymbol>f__sqrtF</a></div></div>
+<div class=SRResult id=SR_f_und_undsqrtI>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrtI" class=ISymbol>f__sqrtI</a></div></div>
+<div class=SRResult id=SR_f_und_undstdFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdFL" class=ISymbol>f__stdFL</a></div></div>
+<div class=SRResult id=SR_f_und_undstdFLL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdFLL" class=ISymbol>f__stdFLL</a></div></div>
+<div class=SRResult id=SR_f_und_undstdIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdIL" class=ISymbol>f__stdIL</a></div></div>
+<div class=SRResult id=SR_f_und_undstdILL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdILL" class=ISymbol>f__stdILL</a></div></div>
+<div class=SRResult id=SR_f_und_undsubOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__subOctetstring" class=ISymbol>f__subOctetstring</a></div></div>
+<div class=SRResult id=SR_f_und_undTCCSecurity_und_undhex2char>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_und_undTCCSecurity_und_undhex2char')" class=ISymbol>f__TCCSecurity__hex2char</a>
+<div class=ISubIndex>
+<a href="../files/TCCSecurity-cc.html#f__TCCSecurity__hex2char" class=IFile>TCCSecurity.cc</a>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f__TCCSecurity__hex2char" class=IFile>TCCSecurity_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_und_undtic>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__tic" class=ISymbol>f__tic</a></div></div>
+<div class=SRResult id=SR_f_und_undtime>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time" class=ISymbol>f__time</a></div></div>
+<div class=SRResult id=SR_f_und_undtime2sec>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time2sec" class=ISymbol>f__time2sec</a></div></div>
+<div class=SRResult id=SR_f_und_undtime2sec_und_undUTC>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time2sec__UTC" class=ISymbol>f__time2sec__UTC</a></div></div>
+<div class=SRResult id=SR_f_und_undtimeDiff>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__timeDiff" class=ISymbol>f__timeDiff</a></div></div>
+<div class=SRResult id=SR_f_und_undtoc>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__toc" class=ISymbol>f__toc</a></div></div>
+<div class=SRResult id=SR_f_und_undupdateFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__updateFL" class=ISymbol>f__updateFL</a></div></div>
+<div class=SRResult id=SR_f_und_undupdateIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__updateIL" class=ISymbol>f__updateIL</a></div></div>
+<div class=SRResult id=SR_f_undacos>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_acos" class=ISymbol>f_acos</a></div></div>
+<div class=SRResult id=SR_f_undaddOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_addOctetstring" class=ISymbol>f_addOctetstring</a></div></div>
+<div class=SRResult id=SR_f_undasin>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_asin" class=ISymbol>f_asin</a></div></div>
+<div class=SRResult id=SR_f_undassert>
+<div class=IEntry>
+<a href="../files/TCCAssertion_Functions-ttcn.html#f_assert" class=ISymbol>f_assert</a></div></div>
+<div class=SRResult id=SR_f_undaverageFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_averageFL" class=ISymbol>f_averageFL</a></div></div>
+<div class=SRResult id=SR_f_undaverageIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_averageIL" class=ISymbol>f_averageIL</a></div></div>
+<div class=SRResult id=SR_f_undcalculate_undHMAC_undMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate_HMAC_MD5" class=ISymbol>f_calculate_HMAC_MD5</a></div></div>
+<div class=SRResult id=SR_f_undcalculate_undHMAC_undSHA1>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate_HMAC_SHA1" class=ISymbol>f_calculate_HMAC_SHA1</a></div></div>
+<div class=SRResult id=SR_f_undcalculate128_undEEA3>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate128_EEA3" class=ISymbol>f_calculate128_EEA3</a></div></div>
+<div class=SRResult id=SR_f_undcalculate128_undEIA3>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate128_EIA3" class=ISymbol>f_calculate128_EIA3</a></div></div>
+<div class=SRResult id=SR_f_undcalculateDigestHA1>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateDigestHA1" class=ISymbol>f_calculateDigestHA1</a></div></div>
+<div class=SRResult id=SR_f_undcalculateDigestResponse>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateDigestResponse" class=ISymbol>f_calculateDigestResponse</a></div></div>
+<div class=SRResult id=SR_f_undcalculateHMACMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateHMACMD5" class=ISymbol>f_calculateHMACMD5</a></div></div>
+<div class=SRResult id=SR_f_undcalculateMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateMD5" class=ISymbol>f_calculateMD5</a></div></div>
+<div class=SRResult id=SR_f_undceil>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_ceil" class=ISymbol>f_ceil</a></div></div>
+<div class=SRResult id=SR_f_undcharstr2unichar>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_charstr2unichar" class=ISymbol>f_charstr2unichar</a></div></div>
+<div class=SRResult id=SR_f_undcompilationTime>
+<div class=IEntry>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#f_compilationTime" class=ISymbol>f_compilationTime</a></div></div>
+<div class=SRResult id=SR_f_undcompOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_compOctetstring" class=ISymbol>f_compOctetstring</a></div></div>
+<div class=SRResult id=SR_f_undconvertIPAddrToBinary>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undconvertIPAddrToBinary')" class=ISymbol>f_convertIPAddrToBinary</a>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_convertIPAddrToBinary" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_convertIPAddrToBinary" class=IFile>TCCConversion_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undcos>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_cos" class=ISymbol>f_cos</a></div></div>
+<div class=SRResult id=SR_f_undcosVL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_cosVL" class=ISymbol>f_cosVL</a></div></div>
+<div class=SRResult id=SR_f_undctime>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_ctime" class=ISymbol>f_ctime</a></div></div>
+<div class=SRResult id=SR_f_undctime_undUTC>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_ctime_UTC" class=ISymbol>f_ctime_UTC</a></div></div>
+<div class=SRResult id=SR_f_unddec_undTBCD>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_dec_TBCD" class=ISymbol>f_dec_TBCD</a></div></div>
+<div class=SRResult id=SR_f_unddecGSM7bit>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_decGSM7bit" class=ISymbol>f_decGSM7bit</a></div></div>
+<div class=SRResult id=SR_f_unddeleteIP>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_deleteIP" class=ISymbol>f_deleteIP</a></div></div>
+<div class=SRResult id=SR_f_unddelIP_undip>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_unddelIP_undip')" class=ISymbol>f_delIP_ip</a>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_delIP_ip" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_delIP_ip" class=IFile>TCCInterface_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undEAPSIM_undA3A8>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_EAPSIM_A3A8" class=ISymbol>f_EAPSIM_A3A8</a></div></div>
+<div class=SRResult id=SR_f_undenc_undTBCD>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_enc_TBCD" class=ISymbol>f_enc_TBCD</a></div></div>
+<div class=SRResult id=SR_f_undencGSM7bit>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_encGSM7bit" class=ISymbol>f_encGSM7bit</a></div></div>
+<div class=SRResult id=SR_f_undexp>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_exp" class=ISymbol>f_exp</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undchdir>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_chdir" class=ISymbol>f_FIO_chdir</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undchmod>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undchmod')" class=ISymbol>f_FIO_chmod</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_chmod" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_chmod" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undclose>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_close" class=ISymbol>f_FIO_close</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undfileOrDirExists>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undfileOrDirExists')" class=ISymbol>f_FIO_fileOrDirExists</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_fileOrDirExists" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_fileOrDirExists" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_flush" class=ISymbol>f_FIO_flush</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undget_underror_undcode>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_get_error_code" class=ISymbol>f_FIO_get_error_code</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undget_underror_undstring>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_get_error_string" class=ISymbol>f_FIO_get_error_string</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undmkdir>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undmkdir')" class=ISymbol>f_FIO_mkdir</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_mkdir" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_mkdir" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undappend_undrdwr>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_rdwr" class=ISymbol>f_FIO_open_append_rdwr</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undappend_undrdwr_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_rdwr_excl" class=ISymbol>f_FIO_open_append_rdwr_excl</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undappend_undwronly>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_wronly" class=ISymbol>f_FIO_open_append_wronly</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undappend_undwronly_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_wronly_excl" class=ISymbol>f_FIO_open_append_wronly_excl</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undrdonly>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_rdonly" class=ISymbol>f_FIO_open_rdonly</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undtrunc_undrdwr>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_rdwr" class=ISymbol>f_FIO_open_trunc_rdwr</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undtrunc_undrdwr_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_rdwr_excl" class=ISymbol>f_FIO_open_trunc_rdwr_excl</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undtrunc_undwronly>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_wronly" class=ISymbol>f_FIO_open_trunc_wronly</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undtrunc_undwronly_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_wronly_excl" class=ISymbol>f_FIO_open_trunc_wronly_excl</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_unddata>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data" class=ISymbol>f_FIO_read_data</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_unddata_undTLV>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data_TLV" class=ISymbol>f_FIO_read_data_TLV</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_unddata_unduntil>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data_until" class=ISymbol>f_FIO_read_data_until</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_undtext>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_text" class=ISymbol>f_FIO_read_text</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_undtext_unduntil>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_text_until" class=ISymbol>f_FIO_read_text_until</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undrmdir>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undrmdir')" class=ISymbol>f_FIO_rmdir</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_rmdir" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_rmdir" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undseek_undbackward>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_backward" class=ISymbol>f_FIO_seek_backward</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undseek_undend>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_end" class=ISymbol>f_FIO_seek_end</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undseek_undforward>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_forward" class=ISymbol>f_FIO_seek_forward</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undseek_undhome>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_home" class=ISymbol>f_FIO_seek_home</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undset_undfiledescriptor_undpreviousline>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_set_filedescriptor_previousline" class=ISymbol>f_FIO_set_filedescriptor_previousline</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undstat>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undstat')" class=ISymbol>f_FIO_stat</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_stat" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_stat" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undwrite_unddata>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_data" class=ISymbol>f_FIO_write_data</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undwrite_unddata_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_data_flush" class=ISymbol>f_FIO_write_data_flush</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undwrite_undtext>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_text" class=ISymbol>f_FIO_write_text</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undwrite_undtext_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_text_flush" class=ISymbol>f_FIO_write_text_flush</a></div></div>
+<div class=SRResult id=SR_f_undfloor>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_floor" class=ISymbol>f_floor</a></div></div>
+<div class=SRResult id=SR_f_undFS_undbfree>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_bfree" class=ISymbol>f_FS_bfree</a></div></div>
+<div class=SRResult id=SR_f_undFS_undblocks>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_blocks" class=ISymbol>f_FS_blocks</a></div></div>
+<div class=SRResult id=SR_f_undFS_undbsize>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_bsize" class=ISymbol>f_FS_bsize</a></div></div>
+<div class=SRResult id=SR_f_undFS_unddspacerate>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_dspacerate" class=ISymbol>f_FS_dspacerate</a></div></div>
+<div class=SRResult id=SR_f_undgen_undExponential_undDistribution_lpain_spcfloat_spcp_undlambda_rpareturn_spcfloat>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_gen_Exponential_Distribution(in_float_p_lambda)return_float" class=ISymbol>f_gen_Exponential_Distribution(in float p_lambda)return float</a></div></div>
+<div class=SRResult id=SR_f_undgenerate_undpoissonTable>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_generate_poissonTable" class=ISymbol>f_generate_poissonTable</a></div></div>
+<div class=SRResult id=SR_f_undgetCurrentDateWithOffset>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getCurrentDateWithOffset" class=ISymbol>f_getCurrentDateWithOffset</a></div></div>
+<div class=SRResult id=SR_f_undgetCurrentGMTDate>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getCurrentGMTDate" class=ISymbol>f_getCurrentGMTDate</a></div></div>
+<div class=SRResult id=SR_f_undGetEnv>
+<div class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#f_GetEnv" class=ISymbol>f_GetEnv</a></div></div>
+<div class=SRResult id=SR_f_undgetHostName>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getHostName" class=ISymbol>f_getHostName</a></div></div>
+<div class=SRResult id=SR_f_undgetIP>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIP" class=ISymbol>f_getIP</a></div></div>
+<div class=SRResult id=SR_f_undgetIpAddr>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIpAddr" class=ISymbol>f_getIpAddr</a></div></div>
+<div class=SRResult id=SR_f_undgetIpAddresses>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undgetIpAddresses')" class=ISymbol>f_getIpAddresses</a>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_getIpAddresses" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIpAddresses" class=IFile>TCCInterface_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undgetNext_undpoissonValue>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_getNext_poissonValue" class=ISymbol>f_getNext_poissonValue</a></div></div>
+<div class=SRResult id=SR_f_undgetTimeFormatted>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getTimeFormatted" class=ISymbol>f_getTimeFormatted</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undcalculateAUTN>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_calculateAUTN" class=ISymbol>f_IMSAKA_calculateAUTN</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf1>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f1" class=ISymbol>f_IMSAKA_f1</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf1star>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f1star" class=ISymbol>f_IMSAKA_f1star</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf2>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f2" class=ISymbol>f_IMSAKA_f2</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf2345>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f2345" class=ISymbol>f_IMSAKA_f2345</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf3>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f3" class=ISymbol>f_IMSAKA_f3</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf4>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f4" class=ISymbol>f_IMSAKA_f4</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf5>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f5" class=ISymbol>f_IMSAKA_f5</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf5star>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f5star" class=ISymbol>f_IMSAKA_f5star</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSADB_undadd>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_add" class=ISymbol>f_IPsec_SADB_add</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSADB_unddelete>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_delete" class=ISymbol>f_IPsec_SADB_delete</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSADB_undflush>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_flush" class=ISymbol>f_IPsec_SADB_flush</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSPDB_undadd>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_add" class=ISymbol>f_IPsec_SPDB_add</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSPDB_unddelete>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_delete" class=ISymbol>f_IPsec_SPDB_delete</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSPDB_undflush>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_flush" class=ISymbol>f_IPsec_SPDB_flush</a></div></div>
+<div class=SRResult id=SR_f_undlog>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_log" class=ISymbol>f_log</a></div></div>
+<div class=SRResult id=SR_f_undmaxFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_maxFL" class=ISymbol>f_maxFL</a></div></div>
+<div class=SRResult id=SR_f_undmaxIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_maxIL" class=ISymbol>f_maxIL</a></div></div>
+<div class=SRResult id=SR_f_undminFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_minFL" class=ISymbol>f_minFL</a></div></div>
+<div class=SRResult id=SR_f_undminIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_minIL" class=ISymbol>f_minIL</a></div></div>
+<div class=SRResult id=SR_f_undoct2char_undsafe>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undoct2char_undsafe')" class=ISymbol>f_oct2char_safe</a>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_oct2char_safe" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_oct2char_safe" class=IFile>TCCConversion_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undOctetIpv4>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_OctetIpv4" class=ISymbol>f_OctetIpv4</a></div></div>
+<div class=SRResult id=SR_f_undpcre_undregexp>
+<div class=IEntry>
+<a href="../files/TCCRegexp_Functions-ttcn.html#f_pcre_regexp" class=ISymbol>f_pcre_regexp</a></div></div>
+<div class=SRResult id=SR_f_undpowFF>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powFF" class=ISymbol>f_powFF</a></div></div>
+<div class=SRResult id=SR_f_undpowFI>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powFI" class=ISymbol>f_powFI</a></div></div>
+<div class=SRResult id=SR_f_undpowIF>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powIF" class=ISymbol>f_powIF</a></div></div>
+<div class=SRResult id=SR_f_undpowII>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powII" class=ISymbol>f_powII</a></div></div>
+<div class=SRResult id=SR_f_undPutEnv>
+<div class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#f_PutEnv" class=ISymbol>f_PutEnv</a></div></div>
+<div class=SRResult id=SR_f_undputInLowercase>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_putInLowercase" class=ISymbol>f_putInLowercase</a></div></div>
+<div class=SRResult id=SR_f_undputInUppercase>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_putInUppercase" class=ISymbol>f_putInUppercase</a></div></div>
+<div class=SRResult id=SR_f_undreplaceEveryOccurenceOfPattern>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceEveryOccurenceOfPattern" class=ISymbol>f_replaceEveryOccurenceOfPattern</a></div></div>
+<div class=SRResult id=SR_f_undreplaceEveryOccurenceOfSubstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceEveryOccurenceOfSubstring" class=ISymbol>f_replaceEveryOccurenceOfSubstring</a></div></div>
+<div class=SRResult id=SR_f_undreplaceFirstOccurenceOfPattern>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceFirstOccurenceOfPattern" class=ISymbol>f_replaceFirstOccurenceOfPattern</a></div></div>
+<div class=SRResult id=SR_f_undreplaceFirstOccurenceOfSubstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceFirstOccurenceOfSubstring" class=ISymbol>f_replaceFirstOccurenceOfSubstring</a></div></div>
+<div class=SRResult id=SR_f_undsetInterfaceDown>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setInterfaceDown" class=ISymbol>f_setInterfaceDown</a></div></div>
+<div class=SRResult id=SR_f_undsetInterfaceUp>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setInterfaceUp" class=ISymbol>f_setInterfaceUp</a></div></div>
+<div class=SRResult id=SR_f_undsetIP>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setIP" class=ISymbol>f_setIP</a></div></div>
+<div class=SRResult id=SR_f_undsetIP_undip>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undsetIP_undip')" class=ISymbol>f_setIP_ip</a>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_setIP_ip" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setIP_ip" class=IFile>TCCInterface_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undsin>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sin" class=ISymbol>f_sin</a></div></div>
+<div class=SRResult id=SR_f_undsinVL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sinVL" class=ISymbol>f_sinVL</a></div></div>
+<div class=SRResult id=SR_f_undsqrF>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrF" class=ISymbol>f_sqrF</a></div></div>
+<div class=SRResult id=SR_f_undsqrI>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrI" class=ISymbol>f_sqrI</a></div></div>
+<div class=SRResult id=SR_f_undsqrtF>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrtF" class=ISymbol>f_sqrtF</a></div></div>
+<div class=SRResult id=SR_f_undsqrtI>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrtI" class=ISymbol>f_sqrtI</a></div></div>
+<div class=SRResult id=SR_f_undstdFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdFL" class=ISymbol>f_stdFL</a></div></div>
+<div class=SRResult id=SR_f_undstdFLL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdFLL" class=ISymbol>f_stdFLL</a></div></div>
+<div class=SRResult id=SR_f_undstdIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdIL" class=ISymbol>f_stdIL</a></div></div>
+<div class=SRResult id=SR_f_undstdILL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdILL" class=ISymbol>f_stdILL</a></div></div>
+<div class=SRResult id=SR_f_undstrstr>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undstrstr')" class=ISymbol>f_strstr</a>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_strstr" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_strstr" class=IFile>TCCConversion_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undsubOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_subOctetstring" class=ISymbol>f_subOctetstring</a></div></div>
+<div class=SRResult id=SR_f_undsubstr_undtoken>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undsubstr_undtoken')" class=ISymbol>f_substr_token</a>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_substr_token" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_substr_token" class=IFile>TCCConversion_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undSYS_undgetpid>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undSYS_undgetpid')" class=ISymbol>f_SYS_getpid</a>
+<div class=ISubIndex>
+<a href="../files/TCCSystem-cc.html#f_SYS_getpid" class=IFile>TCCSystem.cc</a>
+<a href="../files/TCCSystem_Functions-ttcn.html#f_SYS_getpid" class=IFile>TCCSystem_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undTCCMessageHandling_undgetMessageLength>
+<div class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength" class=ISymbol>f_TCCMessageHandling_getMessageLength</a></div></div>
+<div class=SRResult id=SR_f_undTCCMessageHandling_undgetMessageLength4Diameter>
+<div class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength4Diameter" class=ISymbol>f_TCCMessageHandling_getMessageLength4Diameter</a></div></div>
+<div class=SRResult id=SR_f_undTCCMessageHandling_undgetMessageLength4Radius>
+<div class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength4Radius" class=ISymbol>f_TCCMessageHandling_getMessageLength4Radius</a></div></div>
+<div class=SRResult id=SR_f_undTemplate_undsubsfiletemplate>
+<div class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#f_Template_subsfiletemplate" class=ISymbol>f_Template_subsfiletemplate</a></div></div>
+<div class=SRResult id=SR_f_undTemplate_undsubstitutetemplate>
+<div class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#f_Template_substitutetemplate" class=ISymbol>f_Template_substitutetemplate</a></div></div>
+<div class=SRResult id=SR_f_undtic>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_tic" class=ISymbol>f_tic</a></div></div>
+<div class=SRResult id=SR_f_undtime>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time" class=ISymbol>f_time</a></div></div>
+<div class=SRResult id=SR_f_undtime2sec>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time2sec" class=ISymbol>f_time2sec</a></div></div>
+<div class=SRResult id=SR_f_undtime2sec_undUTC>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time2sec_UTC" class=ISymbol>f_time2sec_UTC</a></div></div>
+<div class=SRResult id=SR_f_undtimeDiff>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_timeDiff" class=ISymbol>f_timeDiff</a></div></div>
+<div class=SRResult id=SR_f_undtoc>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_toc" class=ISymbol>f_toc</a></div></div>
+<div class=SRResult id=SR_f_undunichar2charstr>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_unichar2charstr" class=ISymbol>f_unichar2charstr</a></div></div>
+<div class=SRResult id=SR_f_undupdateFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_updateFL" class=ISymbol>f_updateFL</a></div></div>
+<div class=SRResult id=SR_f_undupdateIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_updateIL" class=ISymbol>f_updateIL</a></div></div>
+<div class=SRResult id=SR_f1>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f1" class=ISymbol>f1</a></div></div>
+<div class=SRResult id=SR_f1star>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f1star" class=ISymbol>f1star</a></div></div>
+<div class=SRResult id=SR_f2345>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f2345" class=ISymbol>f2345</a></div></div>
+<div class=SRResult id=SR_f5star>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f5star" class=ISymbol>f5star</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsK.html b/doc/apidoc/html/search/FunctionsK.html
new file mode 100644
index 0000000..1c428bd
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsK.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_KeyAdd>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#KeyAdd" class=ISymbol>KeyAdd</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsM.html b/doc/apidoc/html/search/FunctionsM.html
new file mode 100644
index 0000000..88415f3
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsM.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_MixColumn>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#MixColumn" class=ISymbol>MixColumn</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsR.html b/doc/apidoc/html/search/FunctionsR.html
new file mode 100644
index 0000000..a63f612
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsR.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_RijndaelEncrypt>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#RijndaelEncrypt" class=ISymbol>RijndaelEncrypt</a></div></div>
+<div class=SRResult id=SR_RijndaelKeySchedule>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#RijndaelKeySchedule" class=ISymbol>RijndaelKeySchedule</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsS.html b/doc/apidoc/html/search/FunctionsS.html
new file mode 100644
index 0000000..27761ea
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsS.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_ShiftRow>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ShiftRow" class=ISymbol>ShiftRow</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/FunctionsX.html b/doc/apidoc/html/search/FunctionsX.html
new file mode 100644
index 0000000..091b60e
--- /dev/null
+++ b/doc/apidoc/html/search/FunctionsX.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_XPathQuery>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_XPathQuery')" class=ISymbol>XPathQuery</a>
+<div class=ISubIndex>
+<a href="../files/TCCXPathSupport-cc.html#XPathQuery" class=IFile>TCCXPathSupport.cc</a>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#XPathQuery" class=IFile>TCCXPathSupport_Functions.ttcn</a></div></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralA.html b/doc/apidoc/html/search/GeneralA.html
new file mode 100644
index 0000000..3a342c3
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralA.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_aka_undalgorythm_undset_perh>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#aka_algorythm_set.h" class=ISymbol>aka_algorythm_set.h</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralB.html b/doc/apidoc/html/search/GeneralB.html
new file mode 100644
index 0000000..dcf4e05
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralB.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_BooleanList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#BooleanList" class=ISymbol>BooleanList</a></div></div>
+<div class=SRResult id=SR_ByteSub>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ByteSub" class=ISymbol>ByteSub</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralC.html b/doc/apidoc/html/search/GeneralC.html
new file mode 100644
index 0000000..de5b5cc
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralC.html
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_c_undTCCIPsec_undanyPort>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#c_TCCIPsec_anyPort" class=ISymbol>c_TCCIPsec_anyPort</a></div></div>
+<div class=SRResult id=SR_c_undTCCIPsec_undprefixAll>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#c_TCCIPsec_prefixAll" class=ISymbol>c_TCCIPsec_prefixAll</a></div></div>
+<div class=SRResult id=SR_ComputeOPc>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ComputeOPc" class=ISymbol>ComputeOPc</a></div></div>
+<div class=SRResult id=SR_Constants>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#Constants" class=ISymbol>Constants</a></div></div>
+<div class=SRResult id=SR_CvtHex>
+<div class=IEntry>
+<a href="../files/digcalc-h.html#CvtHex" class=ISymbol>CvtHex</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralD.html b/doc/apidoc/html/search/GeneralD.html
new file mode 100644
index 0000000..df9a1f9
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralD.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_dec_und_undLDIF_und_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#dec__LDIF__Base64" class=ISymbol>dec__LDIF__Base64</a></div></div>
+<div class=SRResult id=SR_dec_und_undMIME_und_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#dec__MIME__Base64" class=ISymbol>dec__MIME__Base64</a></div></div>
+<div class=SRResult id=SR_dec_undLDIF_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#dec_LDIF_Base64" class=ISymbol>dec_LDIF_Base64</a></div></div>
+<div class=SRResult id=SR_dec_undMIME_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#dec_MIME_Base64" class=ISymbol>dec_MIME_Base64</a></div></div>
+<div class=SRResult id=SR_digcalc_perh>
+<div class=IEntry>
+<a href="../files/digcalc-h.html#digcalc.h" class=ISymbol>digcalc.h</a></div></div>
+<div class=SRResult id=SR_DigestCalcHA1>
+<div class=IEntry>
+<a href="../files/digcalc-h.html#DigestCalcHA1" class=ISymbol>DigestCalcHA1</a></div></div>
+<div class=SRResult id=SR_DigestCalcResponse>
+<div class=IEntry>
+<a href="../files/digcalc-h.html#DigestCalcResponse" class=ISymbol>DigestCalcResponse</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralE.html b/doc/apidoc/html/search/GeneralE.html
new file mode 100644
index 0000000..6430b1e
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralE.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_EEA3>
+<div class=IEntry>
+<a href="../files/zuc-h.html#EEA3" class=ISymbol>EEA3</a></div></div>
+<div class=SRResult id=SR_EIA3>
+<div class=IEntry>
+<a href="../files/zuc-h.html#EIA3" class=ISymbol>EIA3</a></div></div>
+<div class=SRResult id=SR_enc_und_undLDIF_und_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#enc__LDIF__Base64" class=ISymbol>enc__LDIF__Base64</a></div></div>
+<div class=SRResult id=SR_enc_und_undMIME_und_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#enc__MIME__Base64" class=ISymbol>enc__MIME__Base64</a></div></div>
+<div class=SRResult id=SR_enc_undLDIF_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#enc_LDIF_Base64" class=ISymbol>enc_LDIF_Base64</a></div></div>
+<div class=SRResult id=SR_enc_undMIME_undBase64>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#enc_MIME_Base64" class=ISymbol>enc_MIME_Base64</a></div></div>
+<div class=SRResult id=SR_Enumerations>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#Enumerations" class=ISymbol>Enumerations</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralF.html b/doc/apidoc/html/search/GeneralF.html
new file mode 100644
index 0000000..a8d3923
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralF.html
@@ -0,0 +1,901 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_f_und_undacos>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__acos" class=ISymbol>f__acos</a></div></div>
+<div class=SRResult id=SR_f_und_undaddOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__addOctetstring" class=ISymbol>f__addOctetstring</a></div></div>
+<div class=SRResult id=SR_f_und_undasin>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__asin" class=ISymbol>f__asin</a></div></div>
+<div class=SRResult id=SR_f_und_undassert>
+<div class=IEntry>
+<a href="../files/TCCAssertion-cc.html#f__assert" class=ISymbol>f__assert</a></div></div>
+<div class=SRResult id=SR_f_und_undaverageFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__averageFL" class=ISymbol>f__averageFL</a></div></div>
+<div class=SRResult id=SR_f_und_undaverageIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__averageIL" class=ISymbol>f__averageIL</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculate_und_undHMAC_und_undMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate__HMAC__MD5" class=ISymbol>f__calculate__HMAC__MD5</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculate_und_undHMAC_und_undSHA1>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate__HMAC__SHA1" class=ISymbol>f__calculate__HMAC__SHA1</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculate128_und_undEEA3>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate128__EEA3" class=ISymbol>f__calculate128__EEA3</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculate128_und_undEIA3>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculate128__EIA3" class=ISymbol>f__calculate128__EIA3</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculateDigestHA1>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateDigestHA1" class=ISymbol>f__calculateDigestHA1</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculateDigestResponse>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateDigestResponse" class=ISymbol>f__calculateDigestResponse</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculateHMACMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateHMACMD5" class=ISymbol>f__calculateHMACMD5</a></div></div>
+<div class=SRResult id=SR_f_und_undcalculateMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__calculateMD5" class=ISymbol>f__calculateMD5</a></div></div>
+<div class=SRResult id=SR_f_und_undceil>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__ceil" class=ISymbol>f__ceil</a></div></div>
+<div class=SRResult id=SR_f_und_undcompilationTime>
+<div class=IEntry>
+<a href="../files/TCCTitanMetadata-cc.html#f__compilationTime" class=ISymbol>f__compilationTime</a></div></div>
+<div class=SRResult id=SR_f_und_undcompOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__compOctetstring" class=ISymbol>f__compOctetstring</a></div></div>
+<div class=SRResult id=SR_f_und_undcos>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__cos" class=ISymbol>f__cos</a></div></div>
+<div class=SRResult id=SR_f_und_undcosVL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__cosVL" class=ISymbol>f__cosVL</a></div></div>
+<div class=SRResult id=SR_f_und_undctime>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__ctime" class=ISymbol>f__ctime</a></div></div>
+<div class=SRResult id=SR_f_und_undctime_und_undUTC>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__ctime__UTC" class=ISymbol>f__ctime__UTC</a></div></div>
+<div class=SRResult id=SR_f_und_unddec_und_undTBCD>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#f__dec__TBCD" class=ISymbol>f__dec__TBCD</a></div></div>
+<div class=SRResult id=SR_f_und_unddeleteIP>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__deleteIP" class=ISymbol>f__deleteIP</a></div></div>
+<div class=SRResult id=SR_f_und_undEAPSIM_und_undA3A8>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__EAPSIM__A3A8" class=ISymbol>f__EAPSIM__A3A8</a></div></div>
+<div class=SRResult id=SR_f_und_undenc_und_undTBCD>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#f__enc__TBCD" class=ISymbol>f__enc__TBCD</a></div></div>
+<div class=SRResult id=SR_f_und_undexp>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__exp" class=ISymbol>f__exp</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undchdir>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__chdir" class=ISymbol>f__FIO__chdir</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undclose>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__close" class=ISymbol>f__FIO__close</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__flush" class=ISymbol>f__FIO__flush</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undget_und_underror_und_undcode>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__get__error__code" class=ISymbol>f__FIO__get__error__code</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undget_und_underror_und_undstring>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__get__error__string" class=ISymbol>f__FIO__get__error__string</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open" class=ISymbol>f__FIO__open</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undappend_und_undrdwr>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__rdwr" class=ISymbol>f__FIO__open__append__rdwr</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undappend_und_undrdwr_und_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__rdwr__excl" class=ISymbol>f__FIO__open__append__rdwr__excl</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undappend_und_undwronly>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__wronly" class=ISymbol>f__FIO__open__append__wronly</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undappend_und_undwronly_und_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__append__wronly__excl" class=ISymbol>f__FIO__open__append__wronly__excl</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undrdonly>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__rdonly" class=ISymbol>f__FIO__open__rdonly</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undtrunc_und_undrdwr>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__rdwr" class=ISymbol>f__FIO__open__trunc__rdwr</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undtrunc_und_undrdwr_und_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__rdwr__excl" class=ISymbol>f__FIO__open__trunc__rdwr__excl</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undtrunc_und_undwronly>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__wronly" class=ISymbol>f__FIO__open__trunc__wronly</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopen_und_undtrunc_und_undwronly_und_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__open__trunc__wronly__excl" class=ISymbol>f__FIO__open__trunc__wronly__excl</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undopened>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__opened" class=ISymbol>f__FIO__opened</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read" class=ISymbol>f__FIO__read</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_unddata>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data" class=ISymbol>f__FIO__read__data</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_unddata_und_undTLV>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data__TLV" class=ISymbol>f__FIO__read__data__TLV</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_unddata_und_unduntil>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__data__until" class=ISymbol>f__FIO__read__data__until</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_undtext>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__text" class=ISymbol>f__FIO__read__text</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undread_und_undtext_und_unduntil>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__read__text__until" class=ISymbol>f__FIO__read__text__until</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undrealize_und_underror>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__realize__error" class=ISymbol>f__FIO__realize__error</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undseek_und_undbackward>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__backward" class=ISymbol>f__FIO__seek__backward</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undseek_und_undend>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__end" class=ISymbol>f__FIO__seek__end</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undseek_und_undforward>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__forward" class=ISymbol>f__FIO__seek__forward</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undseek_und_undhome>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__seek__home" class=ISymbol>f__FIO__seek__home</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undset_und_undfiledescriptor_und_undpreviousline>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__set__filedescriptor__previousline" class=ISymbol>f__FIO__set__filedescriptor__previousline</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write" class=ISymbol>f__FIO__write</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite_und_unddata>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__data" class=ISymbol>f__FIO__write__data</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite_und_unddata_und_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__data__flush" class=ISymbol>f__FIO__write__data__flush</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite_und_undtext>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__text" class=ISymbol>f__FIO__write__text</a></div></div>
+<div class=SRResult id=SR_f_und_undFIO_und_undwrite_und_undtext_und_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#f__FIO__write__text__flush" class=ISymbol>f__FIO__write__text__flush</a></div></div>
+<div class=SRResult id=SR_f_und_undfloor>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__floor" class=ISymbol>f__floor</a></div></div>
+<div class=SRResult id=SR_f_und_undgetCurrentDateWithOffset>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getCurrentDateWithOffset" class=ISymbol>f__getCurrentDateWithOffset</a></div></div>
+<div class=SRResult id=SR_f_und_undgetCurrentGMTDate>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getCurrentGMTDate" class=ISymbol>f__getCurrentGMTDate</a></div></div>
+<div class=SRResult id=SR_f_und_undGetEnv>
+<div class=IEntry>
+<a href="../files/TCCEnv-cc.html#f__GetEnv" class=ISymbol>f__GetEnv</a></div></div>
+<div class=SRResult id=SR_f_und_undgetHostName>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getHostName" class=ISymbol>f__getHostName</a></div></div>
+<div class=SRResult id=SR_f_und_undgetIP>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getIP" class=ISymbol>f__getIP</a></div></div>
+<div class=SRResult id=SR_f_und_undgetIpAddr>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__getIpAddr" class=ISymbol>f__getIpAddr</a></div></div>
+<div class=SRResult id=SR_f_und_undgetTimeFormatted>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__getTimeFormatted" class=ISymbol>f__getTimeFormatted</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undcalculateAUTN>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__calculateAUTN" class=ISymbol>f__IMSAKA__calculateAUTN</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf1>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f1" class=ISymbol>f__IMSAKA__f1</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf1star>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f1star" class=ISymbol>f__IMSAKA__f1star</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf2>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f2" class=ISymbol>f__IMSAKA__f2</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf2345>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f2345" class=ISymbol>f__IMSAKA__f2345</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf3>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f3" class=ISymbol>f__IMSAKA__f3</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf4>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f4" class=ISymbol>f__IMSAKA__f4</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf5>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f5" class=ISymbol>f__IMSAKA__f5</a></div></div>
+<div class=SRResult id=SR_f_und_undIMSAKA_und_undf5star>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#f__IMSAKA__f5star" class=ISymbol>f__IMSAKA__f5star</a></div></div>
+<div class=SRResult id=SR_f_und_undlog>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__log" class=ISymbol>f__log</a></div></div>
+<div class=SRResult id=SR_f_und_undmaxFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__maxFL" class=ISymbol>f__maxFL</a></div></div>
+<div class=SRResult id=SR_f_und_undmaxIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__maxIL" class=ISymbol>f__maxIL</a></div></div>
+<div class=SRResult id=SR_f_und_undminFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__minFL" class=ISymbol>f__minFL</a></div></div>
+<div class=SRResult id=SR_f_und_undminIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__minIL" class=ISymbol>f__minIL</a></div></div>
+<div class=SRResult id=SR_f_und_undpowFF>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powFF" class=ISymbol>f__powFF</a></div></div>
+<div class=SRResult id=SR_f_und_undpowFI>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powFI" class=ISymbol>f__powFI</a></div></div>
+<div class=SRResult id=SR_f_und_undpowIF>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powIF" class=ISymbol>f__powIF</a></div></div>
+<div class=SRResult id=SR_f_und_undpowII>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__powII" class=ISymbol>f__powII</a></div></div>
+<div class=SRResult id=SR_f_und_undPutEnv>
+<div class=IEntry>
+<a href="../files/TCCEnv-cc.html#f__PutEnv" class=ISymbol>f__PutEnv</a></div></div>
+<div class=SRResult id=SR_f_und_undputInLowercase>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__putInLowercase" class=ISymbol>f__putInLowercase</a></div></div>
+<div class=SRResult id=SR_f_und_undputInUppercase>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__putInUppercase" class=ISymbol>f__putInUppercase</a></div></div>
+<div class=SRResult id=SR_f_und_undsetInterfaceDown>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setInterfaceDown" class=ISymbol>f__setInterfaceDown</a></div></div>
+<div class=SRResult id=SR_f_und_undsetInterfaceUp>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setInterfaceUp" class=ISymbol>f__setInterfaceUp</a></div></div>
+<div class=SRResult id=SR_f_und_undsetIP>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#f__setIP" class=ISymbol>f__setIP</a></div></div>
+<div class=SRResult id=SR_f_und_undsin>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sin" class=ISymbol>f__sin</a></div></div>
+<div class=SRResult id=SR_f_und_undsinVL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sinVL" class=ISymbol>f__sinVL</a></div></div>
+<div class=SRResult id=SR_f_und_undsqrF>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrF" class=ISymbol>f__sqrF</a></div></div>
+<div class=SRResult id=SR_f_und_undsqrI>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrI" class=ISymbol>f__sqrI</a></div></div>
+<div class=SRResult id=SR_f_und_undsqrtF>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrtF" class=ISymbol>f__sqrtF</a></div></div>
+<div class=SRResult id=SR_f_und_undsqrtI>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__sqrtI" class=ISymbol>f__sqrtI</a></div></div>
+<div class=SRResult id=SR_f_und_undstdFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdFL" class=ISymbol>f__stdFL</a></div></div>
+<div class=SRResult id=SR_f_und_undstdFLL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdFLL" class=ISymbol>f__stdFLL</a></div></div>
+<div class=SRResult id=SR_f_und_undstdIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdIL" class=ISymbol>f__stdIL</a></div></div>
+<div class=SRResult id=SR_f_und_undstdILL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__stdILL" class=ISymbol>f__stdILL</a></div></div>
+<div class=SRResult id=SR_f_und_undsubOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#f__subOctetstring" class=ISymbol>f__subOctetstring</a></div></div>
+<div class=SRResult id=SR_f_und_undTCCSecurity_und_undhex2char>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_und_undTCCSecurity_und_undhex2char')" class=ISymbol>f__TCCSecurity__hex2char</a>
+<div class=ISubIndex>
+<a href="../files/TCCSecurity-cc.html#f__TCCSecurity__hex2char" class=IFile>TCCSecurity.cc</a>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f__TCCSecurity__hex2char" class=IFile>TCCSecurity_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_und_undtic>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__tic" class=ISymbol>f__tic</a></div></div>
+<div class=SRResult id=SR_f_und_undtime>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time" class=ISymbol>f__time</a></div></div>
+<div class=SRResult id=SR_f_und_undtime2sec>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time2sec" class=ISymbol>f__time2sec</a></div></div>
+<div class=SRResult id=SR_f_und_undtime2sec_und_undUTC>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__time2sec__UTC" class=ISymbol>f__time2sec__UTC</a></div></div>
+<div class=SRResult id=SR_f_und_undtimeDiff>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__timeDiff" class=ISymbol>f__timeDiff</a></div></div>
+<div class=SRResult id=SR_f_und_undtoc>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#f__toc" class=ISymbol>f__toc</a></div></div>
+<div class=SRResult id=SR_f_und_undupdateFL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__updateFL" class=ISymbol>f__updateFL</a></div></div>
+<div class=SRResult id=SR_f_und_undupdateIL>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#f__updateIL" class=ISymbol>f__updateIL</a></div></div>
+<div class=SRResult id=SR_f_undacos>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_acos" class=ISymbol>f_acos</a></div></div>
+<div class=SRResult id=SR_f_undaddOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_addOctetstring" class=ISymbol>f_addOctetstring</a></div></div>
+<div class=SRResult id=SR_f_undasin>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_asin" class=ISymbol>f_asin</a></div></div>
+<div class=SRResult id=SR_f_undassert>
+<div class=IEntry>
+<a href="../files/TCCAssertion_Functions-ttcn.html#f_assert" class=ISymbol>f_assert</a></div></div>
+<div class=SRResult id=SR_f_undaverageFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_averageFL" class=ISymbol>f_averageFL</a></div></div>
+<div class=SRResult id=SR_f_undaverageIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_averageIL" class=ISymbol>f_averageIL</a></div></div>
+<div class=SRResult id=SR_f_undcalculate_undHMAC_undMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate_HMAC_MD5" class=ISymbol>f_calculate_HMAC_MD5</a></div></div>
+<div class=SRResult id=SR_f_undcalculate_undHMAC_undSHA1>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate_HMAC_SHA1" class=ISymbol>f_calculate_HMAC_SHA1</a></div></div>
+<div class=SRResult id=SR_f_undcalculate128_undEEA3>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate128_EEA3" class=ISymbol>f_calculate128_EEA3</a></div></div>
+<div class=SRResult id=SR_f_undcalculate128_undEIA3>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculate128_EIA3" class=ISymbol>f_calculate128_EIA3</a></div></div>
+<div class=SRResult id=SR_f_undcalculateDigestHA1>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateDigestHA1" class=ISymbol>f_calculateDigestHA1</a></div></div>
+<div class=SRResult id=SR_f_undcalculateDigestResponse>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateDigestResponse" class=ISymbol>f_calculateDigestResponse</a></div></div>
+<div class=SRResult id=SR_f_undcalculateHMACMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateHMACMD5" class=ISymbol>f_calculateHMACMD5</a></div></div>
+<div class=SRResult id=SR_f_undcalculateMD5>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_calculateMD5" class=ISymbol>f_calculateMD5</a></div></div>
+<div class=SRResult id=SR_f_undceil>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_ceil" class=ISymbol>f_ceil</a></div></div>
+<div class=SRResult id=SR_f_undcharstr2unichar>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_charstr2unichar" class=ISymbol>f_charstr2unichar</a></div></div>
+<div class=SRResult id=SR_f_undcompilationTime>
+<div class=IEntry>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#f_compilationTime" class=ISymbol>f_compilationTime</a></div></div>
+<div class=SRResult id=SR_f_undcompOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_compOctetstring" class=ISymbol>f_compOctetstring</a></div></div>
+<div class=SRResult id=SR_f_undconvertIPAddrToBinary>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undconvertIPAddrToBinary')" class=ISymbol>f_convertIPAddrToBinary</a>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_convertIPAddrToBinary" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_convertIPAddrToBinary" class=IFile>TCCConversion_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undcos>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_cos" class=ISymbol>f_cos</a></div></div>
+<div class=SRResult id=SR_f_undcosVL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_cosVL" class=ISymbol>f_cosVL</a></div></div>
+<div class=SRResult id=SR_f_undctime>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_ctime" class=ISymbol>f_ctime</a></div></div>
+<div class=SRResult id=SR_f_undctime_undUTC>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_ctime_UTC" class=ISymbol>f_ctime_UTC</a></div></div>
+<div class=SRResult id=SR_f_unddec_undTBCD>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_dec_TBCD" class=ISymbol>f_dec_TBCD</a></div></div>
+<div class=SRResult id=SR_f_unddecGSM7bit>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_decGSM7bit" class=ISymbol>f_decGSM7bit</a></div></div>
+<div class=SRResult id=SR_f_unddeleteIP>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_deleteIP" class=ISymbol>f_deleteIP</a></div></div>
+<div class=SRResult id=SR_f_unddelIP_undip>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_unddelIP_undip')" class=ISymbol>f_delIP_ip</a>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_delIP_ip" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_delIP_ip" class=IFile>TCCInterface_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undEAPSIM_undA3A8>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_EAPSIM_A3A8" class=ISymbol>f_EAPSIM_A3A8</a></div></div>
+<div class=SRResult id=SR_f_undenc_undTBCD>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_enc_TBCD" class=ISymbol>f_enc_TBCD</a></div></div>
+<div class=SRResult id=SR_f_undencGSM7bit>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#f_encGSM7bit" class=ISymbol>f_encGSM7bit</a></div></div>
+<div class=SRResult id=SR_f_undexp>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_exp" class=ISymbol>f_exp</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undchdir>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_chdir" class=ISymbol>f_FIO_chdir</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undchmod>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undchmod')" class=ISymbol>f_FIO_chmod</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_chmod" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_chmod" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undclose>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_close" class=ISymbol>f_FIO_close</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undfileOrDirExists>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undfileOrDirExists')" class=ISymbol>f_FIO_fileOrDirExists</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_fileOrDirExists" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_fileOrDirExists" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_flush" class=ISymbol>f_FIO_flush</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undget_underror_undcode>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_get_error_code" class=ISymbol>f_FIO_get_error_code</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undget_underror_undstring>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_get_error_string" class=ISymbol>f_FIO_get_error_string</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undmkdir>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undmkdir')" class=ISymbol>f_FIO_mkdir</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_mkdir" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_mkdir" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undappend_undrdwr>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_rdwr" class=ISymbol>f_FIO_open_append_rdwr</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undappend_undrdwr_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_rdwr_excl" class=ISymbol>f_FIO_open_append_rdwr_excl</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undappend_undwronly>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_wronly" class=ISymbol>f_FIO_open_append_wronly</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undappend_undwronly_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_append_wronly_excl" class=ISymbol>f_FIO_open_append_wronly_excl</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undrdonly>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_rdonly" class=ISymbol>f_FIO_open_rdonly</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undtrunc_undrdwr>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_rdwr" class=ISymbol>f_FIO_open_trunc_rdwr</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undtrunc_undrdwr_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_rdwr_excl" class=ISymbol>f_FIO_open_trunc_rdwr_excl</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undtrunc_undwronly>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_wronly" class=ISymbol>f_FIO_open_trunc_wronly</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undopen_undtrunc_undwronly_undexcl>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_open_trunc_wronly_excl" class=ISymbol>f_FIO_open_trunc_wronly_excl</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_unddata>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data" class=ISymbol>f_FIO_read_data</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_unddata_undTLV>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data_TLV" class=ISymbol>f_FIO_read_data_TLV</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_unddata_unduntil>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_data_until" class=ISymbol>f_FIO_read_data_until</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_undtext>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_text" class=ISymbol>f_FIO_read_text</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undread_undtext_unduntil>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_read_text_until" class=ISymbol>f_FIO_read_text_until</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undrmdir>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undrmdir')" class=ISymbol>f_FIO_rmdir</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_rmdir" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_rmdir" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undseek_undbackward>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_backward" class=ISymbol>f_FIO_seek_backward</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undseek_undend>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_end" class=ISymbol>f_FIO_seek_end</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undseek_undforward>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_forward" class=ISymbol>f_FIO_seek_forward</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undseek_undhome>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_seek_home" class=ISymbol>f_FIO_seek_home</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undset_undfiledescriptor_undpreviousline>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_set_filedescriptor_previousline" class=ISymbol>f_FIO_set_filedescriptor_previousline</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undstat>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undFIO_undstat')" class=ISymbol>f_FIO_stat</a>
+<div class=ISubIndex>
+<a href="../files/TCCFileIO-cc.html#f_FIO_stat" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_stat" class=IFile>TCCFileIO_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undFIO_undwrite_unddata>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_data" class=ISymbol>f_FIO_write_data</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undwrite_unddata_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_data_flush" class=ISymbol>f_FIO_write_data_flush</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undwrite_undtext>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_text" class=ISymbol>f_FIO_write_text</a></div></div>
+<div class=SRResult id=SR_f_undFIO_undwrite_undtext_undflush>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#f_FIO_write_text_flush" class=ISymbol>f_FIO_write_text_flush</a></div></div>
+<div class=SRResult id=SR_f_undfloor>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_floor" class=ISymbol>f_floor</a></div></div>
+<div class=SRResult id=SR_f_undFS_undbfree>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_bfree" class=ISymbol>f_FS_bfree</a></div></div>
+<div class=SRResult id=SR_f_undFS_undblocks>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_blocks" class=ISymbol>f_FS_blocks</a></div></div>
+<div class=SRResult id=SR_f_undFS_undbsize>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_bsize" class=ISymbol>f_FS_bsize</a></div></div>
+<div class=SRResult id=SR_f_undFS_unddspacerate>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#f_FS_dspacerate" class=ISymbol>f_FS_dspacerate</a></div></div>
+<div class=SRResult id=SR_f_undgen_undExponential_undDistribution_lpain_spcfloat_spcp_undlambda_rpareturn_spcfloat>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_gen_Exponential_Distribution(in_float_p_lambda)return_float" class=ISymbol>f_gen_Exponential_Distribution(in float p_lambda)return float</a></div></div>
+<div class=SRResult id=SR_f_undgenerate_undpoissonTable>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_generate_poissonTable" class=ISymbol>f_generate_poissonTable</a></div></div>
+<div class=SRResult id=SR_f_undgetCurrentDateWithOffset>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getCurrentDateWithOffset" class=ISymbol>f_getCurrentDateWithOffset</a></div></div>
+<div class=SRResult id=SR_f_undgetCurrentGMTDate>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getCurrentGMTDate" class=ISymbol>f_getCurrentGMTDate</a></div></div>
+<div class=SRResult id=SR_f_undGetEnv>
+<div class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#f_GetEnv" class=ISymbol>f_GetEnv</a></div></div>
+<div class=SRResult id=SR_f_undgetHostName>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getHostName" class=ISymbol>f_getHostName</a></div></div>
+<div class=SRResult id=SR_f_undgetIP>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIP" class=ISymbol>f_getIP</a></div></div>
+<div class=SRResult id=SR_f_undgetIpAddr>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIpAddr" class=ISymbol>f_getIpAddr</a></div></div>
+<div class=SRResult id=SR_f_undgetIpAddresses>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undgetIpAddresses')" class=ISymbol>f_getIpAddresses</a>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_getIpAddresses" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_getIpAddresses" class=IFile>TCCInterface_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undgetNext_undpoissonValue>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_getNext_poissonValue" class=ISymbol>f_getNext_poissonValue</a></div></div>
+<div class=SRResult id=SR_f_undgetTimeFormatted>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_getTimeFormatted" class=ISymbol>f_getTimeFormatted</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undcalculateAUTN>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_calculateAUTN" class=ISymbol>f_IMSAKA_calculateAUTN</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf1>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f1" class=ISymbol>f_IMSAKA_f1</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf1star>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f1star" class=ISymbol>f_IMSAKA_f1star</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf2>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f2" class=ISymbol>f_IMSAKA_f2</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf2345>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f2345" class=ISymbol>f_IMSAKA_f2345</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf3>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f3" class=ISymbol>f_IMSAKA_f3</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf4>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f4" class=ISymbol>f_IMSAKA_f4</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf5>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f5" class=ISymbol>f_IMSAKA_f5</a></div></div>
+<div class=SRResult id=SR_f_undIMSAKA_undf5star>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#f_IMSAKA_f5star" class=ISymbol>f_IMSAKA_f5star</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSADB_undadd>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_add" class=ISymbol>f_IPsec_SADB_add</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSADB_unddelete>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_delete" class=ISymbol>f_IPsec_SADB_delete</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSADB_undflush>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SADB_flush" class=ISymbol>f_IPsec_SADB_flush</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSPDB_undadd>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_add" class=ISymbol>f_IPsec_SPDB_add</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSPDB_unddelete>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_delete" class=ISymbol>f_IPsec_SPDB_delete</a></div></div>
+<div class=SRResult id=SR_f_undIPsec_undSPDB_undflush>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#f_IPsec_SPDB_flush" class=ISymbol>f_IPsec_SPDB_flush</a></div></div>
+<div class=SRResult id=SR_f_undlog>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_log" class=ISymbol>f_log</a></div></div>
+<div class=SRResult id=SR_f_undmaxFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_maxFL" class=ISymbol>f_maxFL</a></div></div>
+<div class=SRResult id=SR_f_undmaxIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_maxIL" class=ISymbol>f_maxIL</a></div></div>
+<div class=SRResult id=SR_f_undminFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_minFL" class=ISymbol>f_minFL</a></div></div>
+<div class=SRResult id=SR_f_undminIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_minIL" class=ISymbol>f_minIL</a></div></div>
+<div class=SRResult id=SR_f_undoct2char_undsafe>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undoct2char_undsafe')" class=ISymbol>f_oct2char_safe</a>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_oct2char_safe" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_oct2char_safe" class=IFile>TCCConversion_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undOctetIpv4>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_OctetIpv4" class=ISymbol>f_OctetIpv4</a></div></div>
+<div class=SRResult id=SR_f_undpcre_undregexp>
+<div class=IEntry>
+<a href="../files/TCCRegexp_Functions-ttcn.html#f_pcre_regexp" class=ISymbol>f_pcre_regexp</a></div></div>
+<div class=SRResult id=SR_f_undpowFF>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powFF" class=ISymbol>f_powFF</a></div></div>
+<div class=SRResult id=SR_f_undpowFI>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powFI" class=ISymbol>f_powFI</a></div></div>
+<div class=SRResult id=SR_f_undpowIF>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powIF" class=ISymbol>f_powIF</a></div></div>
+<div class=SRResult id=SR_f_undpowII>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_powII" class=ISymbol>f_powII</a></div></div>
+<div class=SRResult id=SR_f_undPutEnv>
+<div class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#f_PutEnv" class=ISymbol>f_PutEnv</a></div></div>
+<div class=SRResult id=SR_f_undputInLowercase>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_putInLowercase" class=ISymbol>f_putInLowercase</a></div></div>
+<div class=SRResult id=SR_f_undputInUppercase>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_putInUppercase" class=ISymbol>f_putInUppercase</a></div></div>
+<div class=SRResult id=SR_f_undreplaceEveryOccurenceOfPattern>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceEveryOccurenceOfPattern" class=ISymbol>f_replaceEveryOccurenceOfPattern</a></div></div>
+<div class=SRResult id=SR_f_undreplaceEveryOccurenceOfSubstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceEveryOccurenceOfSubstring" class=ISymbol>f_replaceEveryOccurenceOfSubstring</a></div></div>
+<div class=SRResult id=SR_f_undreplaceFirstOccurenceOfPattern>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceFirstOccurenceOfPattern" class=ISymbol>f_replaceFirstOccurenceOfPattern</a></div></div>
+<div class=SRResult id=SR_f_undreplaceFirstOccurenceOfSubstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_replaceFirstOccurenceOfSubstring" class=ISymbol>f_replaceFirstOccurenceOfSubstring</a></div></div>
+<div class=SRResult id=SR_f_undsetInterfaceDown>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setInterfaceDown" class=ISymbol>f_setInterfaceDown</a></div></div>
+<div class=SRResult id=SR_f_undsetInterfaceUp>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setInterfaceUp" class=ISymbol>f_setInterfaceUp</a></div></div>
+<div class=SRResult id=SR_f_undsetIP>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setIP" class=ISymbol>f_setIP</a></div></div>
+<div class=SRResult id=SR_f_undsetIP_undip>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undsetIP_undip')" class=ISymbol>f_setIP_ip</a>
+<div class=ISubIndex>
+<a href="../files/TCCInterface-cc.html#f_setIP_ip" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#f_setIP_ip" class=IFile>TCCInterface_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undsin>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sin" class=ISymbol>f_sin</a></div></div>
+<div class=SRResult id=SR_f_undsinVL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sinVL" class=ISymbol>f_sinVL</a></div></div>
+<div class=SRResult id=SR_f_undsqrF>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrF" class=ISymbol>f_sqrF</a></div></div>
+<div class=SRResult id=SR_f_undsqrI>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrI" class=ISymbol>f_sqrI</a></div></div>
+<div class=SRResult id=SR_f_undsqrtF>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrtF" class=ISymbol>f_sqrtF</a></div></div>
+<div class=SRResult id=SR_f_undsqrtI>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_sqrtI" class=ISymbol>f_sqrtI</a></div></div>
+<div class=SRResult id=SR_f_undstdFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdFL" class=ISymbol>f_stdFL</a></div></div>
+<div class=SRResult id=SR_f_undstdFLL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdFLL" class=ISymbol>f_stdFLL</a></div></div>
+<div class=SRResult id=SR_f_undstdIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdIL" class=ISymbol>f_stdIL</a></div></div>
+<div class=SRResult id=SR_f_undstdILL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_stdILL" class=ISymbol>f_stdILL</a></div></div>
+<div class=SRResult id=SR_f_undstrstr>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undstrstr')" class=ISymbol>f_strstr</a>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_strstr" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_strstr" class=IFile>TCCConversion_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undsubOctetstring>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_subOctetstring" class=ISymbol>f_subOctetstring</a></div></div>
+<div class=SRResult id=SR_f_undsubstr_undtoken>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undsubstr_undtoken')" class=ISymbol>f_substr_token</a>
+<div class=ISubIndex>
+<a href="../files/TCCConversion-cc.html#f_substr_token" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_substr_token" class=IFile>TCCConversion_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undSYS_undgetpid>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_f_undSYS_undgetpid')" class=ISymbol>f_SYS_getpid</a>
+<div class=ISubIndex>
+<a href="../files/TCCSystem-cc.html#f_SYS_getpid" class=IFile>TCCSystem.cc</a>
+<a href="../files/TCCSystem_Functions-ttcn.html#f_SYS_getpid" class=IFile>TCCSystem_Functions.ttcn</a></div></div></div>
+<div class=SRResult id=SR_f_undTCCMessageHandling_undgetMessageLength>
+<div class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength" class=ISymbol>f_TCCMessageHandling_getMessageLength</a></div></div>
+<div class=SRResult id=SR_f_undTCCMessageHandling_undgetMessageLength4Diameter>
+<div class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength4Diameter" class=ISymbol>f_TCCMessageHandling_getMessageLength4Diameter</a></div></div>
+<div class=SRResult id=SR_f_undTCCMessageHandling_undgetMessageLength4Radius>
+<div class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#f_TCCMessageHandling_getMessageLength4Radius" class=ISymbol>f_TCCMessageHandling_getMessageLength4Radius</a></div></div>
+<div class=SRResult id=SR_f_undTemplate_undsubsfiletemplate>
+<div class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#f_Template_subsfiletemplate" class=ISymbol>f_Template_subsfiletemplate</a></div></div>
+<div class=SRResult id=SR_f_undTemplate_undsubstitutetemplate>
+<div class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#f_Template_substitutetemplate" class=ISymbol>f_Template_substitutetemplate</a></div></div>
+<div class=SRResult id=SR_f_undtic>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_tic" class=ISymbol>f_tic</a></div></div>
+<div class=SRResult id=SR_f_undtime>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time" class=ISymbol>f_time</a></div></div>
+<div class=SRResult id=SR_f_undtime2sec>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time2sec" class=ISymbol>f_time2sec</a></div></div>
+<div class=SRResult id=SR_f_undtime2sec_undUTC>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_time2sec_UTC" class=ISymbol>f_time2sec_UTC</a></div></div>
+<div class=SRResult id=SR_f_undtimeDiff>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_timeDiff" class=ISymbol>f_timeDiff</a></div></div>
+<div class=SRResult id=SR_f_undtoc>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#f_toc" class=ISymbol>f_toc</a></div></div>
+<div class=SRResult id=SR_f_undunichar2charstr>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#f_unichar2charstr" class=ISymbol>f_unichar2charstr</a></div></div>
+<div class=SRResult id=SR_f_undupdateFL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_updateFL" class=ISymbol>f_updateFL</a></div></div>
+<div class=SRResult id=SR_f_undupdateIL>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#f_updateIL" class=ISymbol>f_updateIL</a></div></div>
+<div class=SRResult id=SR_f1>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f1" class=ISymbol>f1</a></div></div>
+<div class=SRResult id=SR_f1star>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f1star" class=ISymbol>f1star</a></div></div>
+<div class=SRResult id=SR_f2345>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f2345" class=ISymbol>f2345</a></div></div>
+<div class=SRResult id=SR_f5star>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#f5star" class=ISymbol>f5star</a></div></div>
+<div class=SRResult id=SR_FloatList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#FloatList" class=ISymbol>FloatList</a></div></div>
+<div class=SRResult id=SR_Functions>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_Functions')" class=ISymbol>Functions</a>
+<div class=ISubIndex>
+<a href="../files/aka_algorythm_set-h.html#Functions" class=IFile>aka_algorythm_set.h</a>
+<a href="../files/digcalc-h.html#Functions" class=IFile>digcalc.h</a>
+<a href="../files/TCCAssertion_Functions-ttcn.html#Functions" class=IFile>TCCAssertion_Functions.ttcn</a>
+<a href="../files/TCCConversion-cc.html#Functions" class=IFile>TCCConversion.cc</a>
+<a href="../files/TCCConversion_Functions-ttcn.html#Functions" class=IFile>TCCConversion_Functions.ttcn</a>
+<a href="../files/TCCDateTime-cc.html#Functions" class=IFile>TCCDateTime.cc</a>
+<a href="../files/TCCDateTime_Functions-ttcn.html#Functions" class=IFile>TCCDateTime_Functions.ttcn</a>
+<a href="../files/TCCEncoding-cc.html#Functions" class=IFile>TCCEncoding.cc</a>
+<a href="../files/TCCEncoding_Functions-ttcn.html#Functions" class=IFile>TCCEncoding_Functions.ttcn</a>
+<a href="../files/TCCEnv-cc.html#Functions" class=IFile>TCCEnv.cc</a>
+<a href="../files/TCCEnv_Functions-ttcn.html#Functions" class=IFile>TCCEnv_Functions.ttcn</a>
+<a href="../files/TCCFileIO-cc.html#Functions" class=IFile>TCCFileIO.cc</a>
+<a href="../files/TCCFileIO_Functions-ttcn.html#Functions" class=IFile>TCCFileIO_Functions.ttcn</a>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#Functions" class=IFile>TCCFileSystem_Functions.ttcn</a>
+<a href="../files/TCCInterface-cc.html#Functions" class=IFile>TCCInterface.cc</a>
+<a href="../files/TCCInterface_Functions-ttcn.html#Functions" class=IFile>TCCInterface_Functions.ttcn</a>
+<a href="../files/TCCIPsec_Functions-ttcn.html#Functions" class=IFile>TCCIPsec_Functions.ttcn</a>
+<a href="../files/TCCMaths-cc.html#Functions" class=IFile>TCCMaths.cc</a>
+<a href="../files/TCCMaths_Functions-ttcn.html#Functions" class=IFile>TCCMaths_Functions.ttcn</a>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#Functions" class=IFile>TCCMessageHandling_Functions.ttcn</a>
+<a href="../files/TCCRegexp_Functions-ttcn.html#Functions" class=IFile>TCCRegexp_Functions.ttcn</a>
+<a href="../files/TCCSecurity-cc.html#Functions" class=IFile>TCCSecurity.cc</a>
+<a href="../files/TCCSecurity_Functions-ttcn.html#Functions" class=IFile>TCCSecurity_Functions.ttcn</a>
+<a href="../files/TCCTemplate_Functions-ttcn.html#Functions" class=IFile>TCCTemplate_Functions.ttcn</a>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#Functions" class=IFile>TCCTitanMetadata_Functions.ttcn</a>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#Functions" class=IFile>TCCXPathSupport_Functions.ttcn</a>
+<a href="../files/zuc-h.html#Functions" class=IFile>zuc.h</a></div></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralI.html b/doc/apidoc/html/search/GeneralI.html
new file mode 100644
index 0000000..52fa438
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralI.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_IntegerList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#IntegerList" class=ISymbol>IntegerList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralK.html b/doc/apidoc/html/search/GeneralK.html
new file mode 100644
index 0000000..1c428bd
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralK.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_KeyAdd>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#KeyAdd" class=ISymbol>KeyAdd</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralM.html b/doc/apidoc/html/search/GeneralM.html
new file mode 100644
index 0000000..88415f3
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralM.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_MixColumn>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#MixColumn" class=ISymbol>MixColumn</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralO.html b/doc/apidoc/html/search/GeneralO.html
new file mode 100644
index 0000000..521377a
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralO.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_OctetStringList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#OctetStringList" class=ISymbol>OctetStringList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralP.html b/doc/apidoc/html/search/GeneralP.html
new file mode 100644
index 0000000..0c96976
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralP.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_pi>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#pi" class=ISymbol>pi</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralR.html b/doc/apidoc/html/search/GeneralR.html
new file mode 100644
index 0000000..1ff6d4b
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralR.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_Regexp_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCRegexp_Functions-ttcn.html#Regexp_Functions" class=ISymbol>Regexp_Functions</a></div></div>
+<div class=SRResult id=SR_RijndaelEncrypt>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#RijndaelEncrypt" class=ISymbol>RijndaelEncrypt</a></div></div>
+<div class=SRResult id=SR_RijndaelKeySchedule>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#RijndaelKeySchedule" class=ISymbol>RijndaelKeySchedule</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralS.html b/doc/apidoc/html/search/GeneralS.html
new file mode 100644
index 0000000..d460408
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralS.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_ShiftRow>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#ShiftRow" class=ISymbol>ShiftRow</a></div></div>
+<div class=SRResult id=SR_StringList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#StringList" class=ISymbol>StringList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralT.html b/doc/apidoc/html/search/GeneralT.html
new file mode 100644
index 0000000..384e53d
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralT.html
@@ -0,0 +1,189 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_TCCAssertion_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCAssertion_Functions-ttcn.html#TCCAssertion_Functions" class=ISymbol>TCCAssertion_Functions</a></div></div>
+<div class=SRResult id=SR_TCCConversion_percc>
+<div class=IEntry>
+<a href="../files/TCCConversion-cc.html#TCCConversion.cc" class=ISymbol>TCCConversion.cc</a></div></div>
+<div class=SRResult id=SR_TCCConversion_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCConversion_Functions-ttcn.html#TCCConversion_Functions" class=ISymbol>TCCConversion_Functions</a></div></div>
+<div class=SRResult id=SR_TCCDateTime_percc>
+<div class=IEntry>
+<a href="../files/TCCDateTime-cc.html#TCCDateTime.cc" class=ISymbol>TCCDateTime.cc</a></div></div>
+<div class=SRResult id=SR_TCCDateTime_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCDateTime_Functions-ttcn.html#TCCDateTime_Functions" class=ISymbol>TCCDateTime_Functions</a></div></div>
+<div class=SRResult id=SR_TCCEncoding_percc>
+<div class=IEntry>
+<a href="../files/TCCEncoding-cc.html#TCCEncoding.cc" class=ISymbol>TCCEncoding.cc</a></div></div>
+<div class=SRResult id=SR_TCCEncoding_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCEncoding_Functions-ttcn.html#TCCEncoding_Functions" class=ISymbol>TCCEncoding_Functions</a></div></div>
+<div class=SRResult id=SR_TCCEnv_percc>
+<div class=IEntry>
+<a href="../files/TCCEnv-cc.html#TCCEnv.cc" class=ISymbol>TCCEnv.cc</a></div></div>
+<div class=SRResult id=SR_TCCEnv_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCEnv_Functions-ttcn.html#TCCEnv_Functions" class=ISymbol>TCCEnv_Functions</a></div></div>
+<div class=SRResult id=SR_TCCFileIO_percc>
+<div class=IEntry>
+<a href="../files/TCCFileIO-cc.html#TCCFileIO.cc" class=ISymbol>TCCFileIO.cc</a></div></div>
+<div class=SRResult id=SR_TCCFileIO_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCFileIO_Functions-ttcn.html#TCCFileIO_Functions" class=ISymbol>TCCFileIO_Functions</a></div></div>
+<div class=SRResult id=SR_TCCFileSystem_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCFileSystem_Functions-ttcn.html#TCCFileSystem_Functions" class=ISymbol>TCCFileSystem_Functions</a></div></div>
+<div class=SRResult id=SR_TCCInterface_percc>
+<div class=IEntry>
+<a href="../files/TCCInterface-cc.html#TCCInterface.cc" class=ISymbol>TCCInterface.cc</a></div></div>
+<div class=SRResult id=SR_TCCInterface_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#TCCInterface_Functions" class=ISymbol>TCCInterface_Functions</a></div></div>
+<div class=SRResult id=SR_TCCInterface_undIPAddressType>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#TCCInterface_IPAddressType" class=ISymbol>TCCInterface_IPAddressType</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undAAlgo>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_AAlgo" class=ISymbol>TCCIPsec_AAlgo</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undAlgorithm>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Algorithm" class=ISymbol>TCCIPsec_Algorithm</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undAuth>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Auth" class=ISymbol>TCCIPsec_Auth</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undDefaultLevel>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_DefaultLevel" class=ISymbol>TCCIPsec_DefaultLevel</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undDefinitions_perttcn>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Definitions.ttcn" class=ISymbol>TCCIPsec_Definitions.ttcn</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undDiscardRule>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_DiscardRule" class=ISymbol>TCCIPsec_DiscardRule</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undEAlgo>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_EAlgo" class=ISymbol>TCCIPsec_EAlgo</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undEncr>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Encr" class=ISymbol>TCCIPsec_Encr</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undExtension>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Extension" class=ISymbol>TCCIPsec_Extension</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undExtensionList>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_ExtensionList" class=ISymbol>TCCIPsec_ExtensionList</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Functions-ttcn.html#TCCIPsec_Functions" class=ISymbol>TCCIPsec_Functions</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undIPsecMode>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_IPsecMode" class=ISymbol>TCCIPsec_IPsecMode</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undIPsecResult>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_IPsecResult" class=ISymbol>TCCIPsec_IPsecResult</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undKey>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Key" class=ISymbol>TCCIPsec_Key</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undMode>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Mode" class=ISymbol>TCCIPsec_Mode</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undNoneRule>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_NoneRule" class=ISymbol>TCCIPsec_NoneRule</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undProtocol>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Protocol" class=ISymbol>TCCIPsec_Protocol</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undRule>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Rule" class=ISymbol>TCCIPsec_Rule</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undRuleLevel>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_RuleLevel" class=ISymbol>TCCIPsec_RuleLevel</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undTransport>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Transport" class=ISymbol>TCCIPsec_Transport</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undTranspProto>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_TranspProto" class=ISymbol>TCCIPsec_TranspProto</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undTunnel>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Tunnel" class=ISymbol>TCCIPsec_Tunnel</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undUseLevel>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_UseLevel" class=ISymbol>TCCIPsec_UseLevel</a></div></div>
+<div class=SRResult id=SR_TCCMaths_percc>
+<div class=IEntry>
+<a href="../files/TCCMaths-cc.html#TCCMaths.cc" class=ISymbol>TCCMaths.cc</a></div></div>
+<div class=SRResult id=SR_TCCMaths_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCMaths_Functions-ttcn.html#TCCMaths_Functions" class=ISymbol>TCCMaths_Functions</a></div></div>
+<div class=SRResult id=SR_TCCMaths_undGenericTypes>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#TCCMaths_GenericTypes" class=ISymbol>TCCMaths_GenericTypes</a></div></div>
+<div class=SRResult id=SR_TCCMessageHandling_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCMessageHandling_Functions-ttcn.html#TCCMessageHandling_Functions" class=ISymbol>TCCMessageHandling_Functions</a></div></div>
+<div class=SRResult id=SR_TCCSecurity_percc>
+<div class=IEntry>
+<a href="../files/TCCSecurity-cc.html#TCCSecurity.cc" class=ISymbol>TCCSecurity.cc</a></div></div>
+<div class=SRResult id=SR_TCCSecurity_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCSecurity_Functions-ttcn.html#TCCSecurity_Functions" class=ISymbol>TCCSecurity_Functions</a></div></div>
+<div class=SRResult id=SR_TCCTemplate_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCTemplate_Functions-ttcn.html#TCCTemplate_Functions" class=ISymbol>TCCTemplate_Functions</a></div></div>
+<div class=SRResult id=SR_TCCTitanMetadata_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCTitanMetadata_Functions-ttcn.html#TCCTitanMetadata_Functions" class=ISymbol>TCCTitanMetadata_Functions</a></div></div>
+<div class=SRResult id=SR_TCCXPathSupport_undFunctions>
+<div class=IEntry>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#TCCXPathSupport_Functions" class=ISymbol>TCCXPathSupport_Functions</a></div></div>
+<div class=SRResult id=SR_Types>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#Types" class=ISymbol>Types</a></div></div>
+<div class=SRResult id=SR_Types_spcand_spcConstants>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#Types_and_Constants" class=ISymbol>Types and Constants</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralU.html b/doc/apidoc/html/search/GeneralU.html
new file mode 100644
index 0000000..fa37a5a
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralU.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_u8>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#u8" class=ISymbol>u8</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralV.html b/doc/apidoc/html/search/GeneralV.html
new file mode 100644
index 0000000..ed567ea
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralV.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_Variables>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#Variables" class=ISymbol>Variables</a></div></div>
+<div class=SRResult id=SR_VerdictList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#VerdictList" class=ISymbol>VerdictList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralX.html b/doc/apidoc/html/search/GeneralX.html
new file mode 100644
index 0000000..091b60e
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralX.html
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_XPathQuery>
+<div class=IEntry>
+<a href="javascript:searchResults.Toggle('SR_XPathQuery')" class=ISymbol>XPathQuery</a>
+<div class=ISubIndex>
+<a href="../files/TCCXPathSupport-cc.html#XPathQuery" class=IFile>TCCXPathSupport.cc</a>
+<a href="../files/TCCXPathSupport_Functions-ttcn.html#XPathQuery" class=IFile>TCCXPathSupport_Functions.ttcn</a></div></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/GeneralZ.html b/doc/apidoc/html/search/GeneralZ.html
new file mode 100644
index 0000000..56d2ab3
--- /dev/null
+++ b/doc/apidoc/html/search/GeneralZ.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_zuc_perh>
+<div class=IEntry>
+<a href="../files/zuc-h.html#zuc.h" class=ISymbol>zuc.h</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/NoResults.html b/doc/apidoc/html/search/NoResults.html
new file mode 100644
index 0000000..e0a90b2
--- /dev/null
+++ b/doc/apidoc/html/search/NoResults.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=NoMatches>No Matches</div></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/TypesB.html b/doc/apidoc/html/search/TypesB.html
new file mode 100644
index 0000000..2caeae8
--- /dev/null
+++ b/doc/apidoc/html/search/TypesB.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_BooleanList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#BooleanList" class=ISymbol>BooleanList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/TypesF.html b/doc/apidoc/html/search/TypesF.html
new file mode 100644
index 0000000..047eb6f
--- /dev/null
+++ b/doc/apidoc/html/search/TypesF.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_FloatList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#FloatList" class=ISymbol>FloatList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/TypesI.html b/doc/apidoc/html/search/TypesI.html
new file mode 100644
index 0000000..52fa438
--- /dev/null
+++ b/doc/apidoc/html/search/TypesI.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_IntegerList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#IntegerList" class=ISymbol>IntegerList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/TypesO.html b/doc/apidoc/html/search/TypesO.html
new file mode 100644
index 0000000..521377a
--- /dev/null
+++ b/doc/apidoc/html/search/TypesO.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_OctetStringList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#OctetStringList" class=ISymbol>OctetStringList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/TypesS.html b/doc/apidoc/html/search/TypesS.html
new file mode 100644
index 0000000..d92f607
--- /dev/null
+++ b/doc/apidoc/html/search/TypesS.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_StringList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#StringList" class=ISymbol>StringList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/TypesT.html b/doc/apidoc/html/search/TypesT.html
new file mode 100644
index 0000000..f9078e8
--- /dev/null
+++ b/doc/apidoc/html/search/TypesT.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_TCCInterface_undIPAddressType>
+<div class=IEntry>
+<a href="../files/TCCInterface_Functions-ttcn.html#TCCInterface_IPAddressType" class=ISymbol>TCCInterface_IPAddressType</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undAAlgo>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_AAlgo" class=ISymbol>TCCIPsec_AAlgo</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undAlgorithm>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Algorithm" class=ISymbol>TCCIPsec_Algorithm</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undAuth>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Auth" class=ISymbol>TCCIPsec_Auth</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undDefaultLevel>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_DefaultLevel" class=ISymbol>TCCIPsec_DefaultLevel</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undDiscardRule>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_DiscardRule" class=ISymbol>TCCIPsec_DiscardRule</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undEAlgo>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_EAlgo" class=ISymbol>TCCIPsec_EAlgo</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undEncr>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Encr" class=ISymbol>TCCIPsec_Encr</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undExtension>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Extension" class=ISymbol>TCCIPsec_Extension</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undExtensionList>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_ExtensionList" class=ISymbol>TCCIPsec_ExtensionList</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undIPsecMode>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_IPsecMode" class=ISymbol>TCCIPsec_IPsecMode</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undIPsecResult>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_IPsecResult" class=ISymbol>TCCIPsec_IPsecResult</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undKey>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Key" class=ISymbol>TCCIPsec_Key</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undMode>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Mode" class=ISymbol>TCCIPsec_Mode</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undNoneRule>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_NoneRule" class=ISymbol>TCCIPsec_NoneRule</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undProtocol>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Protocol" class=ISymbol>TCCIPsec_Protocol</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undRule>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Rule" class=ISymbol>TCCIPsec_Rule</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undRuleLevel>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_RuleLevel" class=ISymbol>TCCIPsec_RuleLevel</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undTransport>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Transport" class=ISymbol>TCCIPsec_Transport</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undTranspProto>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_TranspProto" class=ISymbol>TCCIPsec_TranspProto</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undTunnel>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_Tunnel" class=ISymbol>TCCIPsec_Tunnel</a></div></div>
+<div class=SRResult id=SR_TCCIPsec_undUseLevel>
+<div class=IEntry>
+<a href="../files/TCCIPsec_Definitions-ttcn.html#TCCIPsec_UseLevel" class=ISymbol>TCCIPsec_UseLevel</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/TypesV.html b/doc/apidoc/html/search/TypesV.html
new file mode 100644
index 0000000..c9690bd
--- /dev/null
+++ b/doc/apidoc/html/search/TypesV.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_VerdictList>
+<div class=IEntry>
+<a href="../files/TCCMaths_GenericTypes-ttcn.html#VerdictList" class=ISymbol>VerdictList</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/search/VariablesU.html b/doc/apidoc/html/search/VariablesU.html
new file mode 100644
index 0000000..fa37a5a
--- /dev/null
+++ b/doc/apidoc/html/search/VariablesU.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+
+<html>
+<head>
+<link rel="stylesheet" type="text/css" href="../styles/main.css">
+<script language=JavaScript src="../javascript/main.js"></script>
+<script language=JavaScript src="../javascript/searchdata.js"></script></head>
+<body class="FramedSearchResultsPage" onLoad="NDOnLoad()">
+<script language=JavaScript>
+<!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+
+
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Index>
+<div class=IPageTitle>Search Results</div>
+<div class=SRStatus id=Loading>Loading...</div>
+<table border=0 cellspacing=0 cellpadding=0>
+<div class=SRResult id=SR_u8>
+<div class=IEntry>
+<a href="../files/aka_algorythm_set-h.html#u8" class=ISymbol>u8</a></div></div></table>
+<div class=SRStatus id=Searching>Searching...</div>
+<div class=SRStatus id=NoMatches>No Matches</div>
+<script type="text/javascript">
+<!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults", "FramedHTML");
+searchResults.Search();
+--></script></div>
+<!--Index-->
+
+
+<script language=JavaScript>
+<!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/doc/apidoc/html/styles/1.css b/doc/apidoc/html/styles/1.css
new file mode 100755
index 0000000..17e9cbc
--- /dev/null
+++ b/doc/apidoc/html/styles/1.css
@@ -0,0 +1,767 @@
+/*
+   IMPORTANT: If you're editing this file in the output directory of one of
+   your projects, your changes will be overwritten the next time you run
+   Natural Docs.  Instead, copy this file to your project directory, make your
+   changes, and you can use it with -s.  Even better would be to make a CSS
+   file in your project directory with only your changes, which you can then
+   use with -s [original style] [your changes].
+
+   On the other hand, if you're editing this file in the Natural Docs styles
+   directory, the changes will automatically be applied to all your projects
+   that use this style the next time Natural Docs is run on them.
+
+   This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
+   Natural Docs is licensed under the GPL
+*/
+
+body {
+    font: 10pt Verdana, Arial, sans-serif;
+    color: #000000;
+    margin: 0; padding: 0;
+    }
+
+.ContentPage,
+.IndexPage,
+.FramedMenuPage {
+    background-color: #E8E8E8;
+    }
+.FramedContentPage,
+.FramedIndexPage,
+.FramedSearchResultsPage,
+.PopupSearchResultsPage {
+    background-color: #FFFFFF;
+    }
+
+
+a:link,
+a:visited { color: #900000; text-decoration: none }
+a:hover { color: #900000; text-decoration: underline }
+a:active { color: #FF0000; text-decoration: underline }
+
+td {
+    vertical-align: top }
+
+img { border: 0;  }
+
+
+/*
+    Comment out this line to use web-style paragraphs (blank line between
+    paragraphs, no indent) instead of print-style paragraphs (no blank line,
+    indented.)
+*/
+p {
+    text-indent: 5ex; margin: 0 }
+
+
+/*  Opera doesn't break with just wbr, but will if you add this.  */
+.Opera wbr:after {
+	content: "\00200B";
+	}
+
+
+/*  Blockquotes are used as containers for things that may need to scroll.  */
+blockquote {
+    padding: 0;
+    margin: 0;
+    overflow: auto;
+    }
+
+
+.Firefox1 blockquote {
+    padding-bottom: .5em;
+    }
+
+/*  Turn off scrolling when printing.  */
+@media print {
+    blockquote {
+        overflow: visible;
+        }
+    .IE blockquote {
+        width: auto;
+        }
+    }
+
+
+
+#Menu {
+    font-size: 9pt;
+    padding: 10px 0 0 0;
+    }
+.ContentPage #Menu,
+.IndexPage #Menu {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 31ex;
+    overflow: hidden;
+    }
+.ContentPage .Firefox #Menu,
+.IndexPage .Firefox #Menu {
+    width: 27ex;
+    }
+
+
+    .MTitle {
+        font-size: 16pt; font-weight: bold; font-variant: small-caps;
+        text-align: center;
+        padding: 5px 10px 15px 10px;
+        border-bottom: 1px dotted #000000;
+        margin-bottom: 15px }
+
+    .MSubTitle {
+        font-size: 9pt; font-weight: normal; font-variant: normal;
+        margin-top: 1ex; margin-bottom: 5px }
+
+
+    .MEntry a:link,
+    .MEntry a:hover,
+    .MEntry a:visited { color: #606060; margin-right: 0 }
+    .MEntry a:active { color: #A00000; margin-right: 0 }
+
+
+    .MGroup {
+        font-variant: small-caps; font-weight: bold;
+        margin: 1em 0 1em 10px;
+        }
+
+    .MGroupContent {
+        font-variant: normal; font-weight: normal }
+
+    .MGroup a:link,
+    .MGroup a:hover,
+    .MGroup a:visited { color: #545454; margin-right: 10px }
+    .MGroup a:active { color: #A00000; margin-right: 10px }
+
+
+    .MFile,
+    .MText,
+    .MLink,
+    .MIndex {
+        padding: 1px 17px 2px 10px;
+        margin: .25em 0 .25em 0;
+        }
+
+    .MText {
+        font-size: 8pt; font-style: italic }
+
+    .MLink {
+        font-style: italic }
+
+    #MSelected {
+        color: #000000; background-color: #FFFFFF;
+        /*  Replace padding with border.  */
+        padding: 0 10px 0 10px;
+        border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
+        margin-right: 5px;
+        }
+
+    /*  Close off the left side when its in a group.  */
+    .MGroup #MSelected {
+        padding-left: 9px; border-left-width: 1px }
+
+    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
+    .Firefox #MSelected {
+        -moz-border-radius-topright: 10px;
+        -moz-border-radius-bottomright: 10px }
+    .Firefox .MGroup #MSelected {
+        -moz-border-radius-topleft: 10px;
+        -moz-border-radius-bottomleft: 10px }
+
+
+    #MSearchPanel {
+        padding: 0px 6px;
+        margin: .25em 0;
+        }
+
+
+    #MSearchField {
+        font: italic 9pt Verdana, sans-serif;
+        color: #606060;
+        background-color: #E8E8E8;
+        border: none;
+        padding: 2px 4px;
+        width: 100%;
+        }
+    /* Only Opera gets it right. */
+    .Firefox #MSearchField,
+    .IE #MSearchField,
+    .Safari #MSearchField {
+        width: 94%;
+        }
+    .Opera9 #MSearchField,
+    .Konqueror #MSearchField {
+        width: 97%;
+        }
+    .FramedMenuPage .Firefox #MSearchField,
+    .FramedMenuPage .Safari #MSearchField,
+    .FramedMenuPage .Konqueror #MSearchField {
+        width: 98%;
+        }
+
+    /* Firefox doesn't do this right in frames without #MSearchPanel added on.
+        It's presence doesn't hurt anything other browsers. */
+    #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
+        background-color: #FFFFFF;
+        border: 1px solid #C0C0C0;
+        padding: 1px 3px;
+        }
+    .MSearchPanelActive #MSearchField {
+        background-color: #FFFFFF;
+        border: 1px solid #C0C0C0;
+        font-style: normal;
+        padding: 1px 3px;
+        }
+
+    #MSearchType {
+        visibility: hidden;
+        font: 8pt Verdana, sans-serif;
+        width: 98%;
+        padding: 0;
+        border: 1px solid #C0C0C0;
+        }
+    .MSearchPanelActive #MSearchType,
+    /*  As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
+    #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
+    #MSearchType:focus {
+        visibility: visible;
+        color: #606060;
+        }
+    #MSearchType option#MSearchEverything {
+        font-weight: bold;
+        }
+
+    .Opera8 .MSearchPanelInactive:hover,
+    .Opera8 .MSearchPanelActive {
+        margin-left: -1px;
+        }
+
+
+    iframe#MSearchResults {
+        width: 60ex;
+        height: 15em;
+        }
+    #MSearchResultsWindow {
+        display: none;
+        position: absolute;
+        left: 0; top: 0;
+        border: 1px solid #000000;
+        background-color: #E8E8E8;
+        }
+    #MSearchResultsWindowClose {
+        font-weight: bold;
+        font-size: 8pt;
+        display: block;
+        padding: 2px 5px;
+        }
+    #MSearchResultsWindowClose:link,
+    #MSearchResultsWindowClose:visited {
+        color: #000000;
+        text-decoration: none;
+        }
+    #MSearchResultsWindowClose:active,
+    #MSearchResultsWindowClose:hover {
+        color: #800000;
+        text-decoration: none;
+        background-color: #F4F4F4;
+        }
+
+
+
+
+#Content {
+    padding-bottom: 15px;
+    }
+
+.ContentPage #Content {
+    border-width: 0 0 1px 1px;
+    border-style: solid;
+    border-color: #000000;
+    background-color: #FFFFFF;
+    font-size: 9pt;  /* To make 31ex match the menu's 31ex. */
+    margin-left: 31ex;
+    }
+.ContentPage .Firefox #Content {
+    margin-left: 27ex;
+    }
+
+
+
+    .CTopic {
+        font-size: 10pt;
+        margin-bottom: 3em;
+        }
+
+
+    .CTitle {
+        font-size: 12pt; font-weight: bold;
+        border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
+        margin: 0 15px .5em 15px }
+
+    .CGroup .CTitle {
+        font-size: 16pt; font-variant: small-caps;
+        padding-left: 15px; padding-right: 15px;
+        border-width: 0 0 2px 0; border-color: #000000;
+        margin-left: 0; margin-right: 0 }
+
+    .CClass .CTitle,
+    .CInterface .CTitle,
+    .CDatabase .CTitle,
+    .CDatabaseTable .CTitle,
+    .CSection .CTitle {
+        font-size: 18pt;
+        color: #FFFFFF; background-color: #A0A0A0;
+        padding: 10px 15px 10px 15px;
+        border-width: 2px 0; border-color: #000000;
+        margin-left: 0; margin-right: 0 }
+
+    #MainTopic .CTitle {
+        font-size: 20pt;
+        color: #FFFFFF; background-color: #7070C0;
+        padding: 10px 15px 10px 15px;
+        border-width: 0 0 3px 0; border-color: #000000;
+        margin-left: 0; margin-right: 0 }
+
+    .CBody {
+        margin-left: 15px; margin-right: 15px }
+
+
+    .CToolTip {
+        position: absolute; visibility: hidden;
+        left: 0; top: 0;
+        background-color: #FFFFE0;
+        padding: 5px;
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
+        font-size: 8pt;
+        }
+
+    .Opera .CToolTip {
+        max-width: 98%;
+        }
+
+    /*  Scrollbars would be useless.  */
+    .CToolTip blockquote {
+        overflow: hidden;
+        }
+    .IE6 .CToolTip blockquote {
+        overflow: visible;
+        }
+
+    .CHeading {
+        font-weight: bold; font-size: 10pt;
+        margin: 1.5em 0 .5em 0;
+        }
+
+    .CBody pre {
+        font: 10pt "Courier New", Courier, monospace;
+        margin: 1em 0;
+        }
+
+    .CBody ul {
+        /*  I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
+             Reapply it here as padding.  */
+        padding-left: 15px; padding-right: 15px;
+        margin: .5em 5ex .5em 5ex;
+        }
+
+    .CDescriptionList {
+        margin: .5em 5ex 0 5ex }
+
+        .CDLEntry {
+            font: 10pt "Courier New", Courier, monospace; color: #808080;
+            padding-bottom: .25em;
+            white-space: nowrap }
+
+        .CDLDescription {
+            font-size: 10pt;  /*  For browsers that don't inherit correctly, like Opera 5.  */
+            padding-bottom: .5em; padding-left: 5ex }
+
+
+    .CTopic img {
+        text-align: center;
+        display: block;
+        margin: 1em auto;
+        }
+    .CImageCaption {
+        font-variant: small-caps;
+        font-size: 8pt;
+        color: #808080;
+        text-align: center;
+        position: relative;
+        top: 1em;
+        }
+
+    .CImageLink {
+        color: #808080;
+        font-style: italic;
+        }
+    a.CImageLink:link,
+    a.CImageLink:visited,
+    a.CImageLink:hover { color: #808080 }
+
+
+
+
+
+.Prototype {
+    font: 10pt "Courier New", Courier, monospace;
+    padding: 5px 3ex;
+    border-width: 1px; border-style: solid;
+    margin: 0 5ex 1.5em 5ex;
+    }
+
+    .Prototype td {
+        font-size: 10pt;
+        }
+
+    .PDefaultValue,
+    .PDefaultValuePrefix,
+    .PTypePrefix {
+        color: #8F8F8F;
+        }
+    .PTypePrefix {
+        text-align: right;
+        }
+    .PAfterParameters {
+        vertical-align: bottom;
+        }
+
+    .IE .Prototype table {
+        padding: 0;
+        }
+
+    .CFunction .Prototype {
+        background-color: #F4F4F4; border-color: #D0D0D0 }
+    .CProperty .Prototype {
+        background-color: #F4F4FF; border-color: #C0C0E8 }
+    .CVariable .Prototype {
+        background-color: #FFFFF0; border-color: #E0E0A0 }
+
+    .CClass .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+        background-color: #F4F4F4;
+        }
+    .CInterface .Prototype {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
+        background-color: #F4F4FF;
+        }
+
+    .CDatabaseIndex .Prototype,
+    .CConstant .Prototype {
+        background-color: #D0D0D0; border-color: #000000 }
+    .CType .Prototype,
+    .CEnumeration .Prototype {
+        background-color: #FAF0F0; border-color: #E0B0B0;
+        }
+    .CDatabaseTrigger .Prototype,
+    .CEvent .Prototype,
+    .CDelegate .Prototype {
+        background-color: #F0FCF0; border-color: #B8E4B8 }
+
+    .CToolTip .Prototype {
+        margin: 0 0 .5em 0;
+        white-space: nowrap;
+        }
+
+
+
+
+
+.Summary {
+    margin: 1.5em 5ex 0 5ex }
+
+    .STitle {
+        font-size: 12pt; font-weight: bold;
+        margin-bottom: .5em }
+
+
+    .SBorder {
+        background-color: #FFFFF0;
+        padding: 15px;
+        border: 1px solid #C0C060 }
+
+    /* In a frame IE 6 will make them too long unless you set the width to 100%.  Without frames it will be correct without a width
+        or slightly too long (but not enough to scroll) with a width.  This arbitrary weirdness simply astounds me.  IE 7 has the same
+        problem with frames, haven't tested it without.  */
+    .FramedContentPage .IE .SBorder {
+        width: 100% }
+
+    /*  A treat for Mozilla users.  Blatantly non-standard.  Will be replaced with CSS 3 attributes when finalized/supported.  */
+    .Firefox .SBorder {
+        -moz-border-radius: 20px }
+
+
+    .STable {
+        font-size: 9pt; width: 100% }
+
+    .SEntry {
+        width: 30% }
+    .SDescription {
+        width: 70% }
+
+
+    .SMarked {
+        background-color: #F8F8D8 }
+
+    .SDescription { padding-left: 2ex }
+    .SIndent1 .SEntry { padding-left: 1.5ex }   .SIndent1 .SDescription { padding-left: 3.5ex }
+    .SIndent2 .SEntry { padding-left: 3.0ex }   .SIndent2 .SDescription { padding-left: 5.0ex }
+    .SIndent3 .SEntry { padding-left: 4.5ex }   .SIndent3 .SDescription { padding-left: 6.5ex }
+    .SIndent4 .SEntry { padding-left: 6.0ex }   .SIndent4 .SDescription { padding-left: 8.0ex }
+    .SIndent5 .SEntry { padding-left: 7.5ex }   .SIndent5 .SDescription { padding-left: 9.5ex }
+
+    .SDescription a { color: #800000}
+    .SDescription a:active { color: #A00000 }
+
+    .SGroup td {
+        padding-top: .5em; padding-bottom: .25em }
+
+    .SGroup .SEntry {
+        font-weight: bold; font-variant: small-caps }
+
+    .SGroup .SEntry a { color: #800000 }
+    .SGroup .SEntry a:active { color: #F00000 }
+
+
+    .SMain td,
+    .SClass td,
+    .SDatabase td,
+    .SDatabaseTable td,
+    .SSection td {
+        font-size: 10pt;
+        padding-bottom: .25em }
+
+    .SClass td,
+    .SDatabase td,
+    .SDatabaseTable td,
+    .SSection td {
+        padding-top: 1em }
+
+    .SMain .SEntry,
+    .SClass .SEntry,
+    .SDatabase .SEntry,
+    .SDatabaseTable .SEntry,
+    .SSection .SEntry {
+        font-weight: bold;
+        }
+
+    .SMain .SEntry a,
+    .SClass .SEntry a,
+    .SDatabase .SEntry a,
+    .SDatabaseTable .SEntry a,
+    .SSection .SEntry a { color: #000000 }
+
+    .SMain .SEntry a:active,
+    .SClass .SEntry a:active,
+    .SDatabase .SEntry a:active,
+    .SDatabaseTable .SEntry a:active,
+    .SSection .SEntry a:active { color: #A00000 }
+
+
+
+
+
+.ClassHierarchy {
+    margin: 0 15px 1em 15px }
+
+    .CHEntry {
+        border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
+        margin-bottom: 3px;
+        padding: 2px 2ex;
+        font-size: 10pt;
+        background-color: #F4F4F4; color: #606060;
+        }
+
+    .Firefox .CHEntry {
+        -moz-border-radius: 4px;
+        }
+
+    .CHCurrent .CHEntry {
+        font-weight: bold;
+        border-color: #000000;
+        color: #000000;
+        }
+
+    .CHChildNote .CHEntry {
+        font-style: italic;
+        font-size: 8pt;
+        }
+
+    .CHIndent {
+        margin-left: 3ex;
+        }
+
+    .CHEntry a:link,
+    .CHEntry a:visited,
+    .CHEntry a:hover {
+        color: #606060;
+        }
+    .CHEntry a:active {
+        color: #800000;
+        }
+
+
+
+
+
+#Index {
+    background-color: #FFFFFF;
+    }
+
+/*  As opposed to .PopupSearchResultsPage #Index  */
+.IndexPage #Index,
+.FramedIndexPage #Index,
+.FramedSearchResultsPage #Index {
+    padding: 15px;
+    }
+
+.IndexPage #Index {
+    border-width: 0 0 1px 1px;
+    border-style: solid;
+    border-color: #000000;
+    font-size: 9pt;  /* To make 27ex match the menu's 27ex. */
+    margin-left: 27ex;
+    }
+
+
+    .IPageTitle {
+        font-size: 20pt; font-weight: bold;
+        color: #FFFFFF; background-color: #7070C0;
+        padding: 10px 15px 10px 15px;
+        border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
+        margin: -15px -15px 0 -15px }
+
+    .FramedSearchResultsPage .IPageTitle {
+        margin-bottom: 15px;
+        }
+
+    .INavigationBar {
+        font-size: 10pt;
+        text-align: center;
+        background-color: #FFFFF0;
+        padding: 5px;
+        border-bottom: solid 1px black;
+        margin: 0 -15px 15px -15px;
+        }
+
+    .INavigationBar a {
+        font-weight: bold }
+
+    .IHeading {
+        font-size: 16pt; font-weight: bold;
+        padding: 2.5em 0 .5em 0;
+        text-align: center;
+        width: 3.5ex;
+        }
+    #IFirstHeading {
+        padding-top: 0;
+        }
+
+    .IEntry {
+        font-size: 10pt;
+        padding-left: 1ex;
+        }
+    .PopupSearchResultsPage .IEntry {
+        font-size: 8pt;
+        padding: 1px 5px;
+        }
+    .PopupSearchResultsPage .Opera9 .IEntry,
+    .FramedSearchResultsPage .Opera9 .IEntry {
+        text-align: left;
+        }
+    .FramedSearchResultsPage .IEntry {
+        padding: 0;
+        }
+
+    .ISubIndex {
+        padding-left: 3ex; padding-bottom: .5em }
+    .PopupSearchResultsPage .ISubIndex {
+        display: none;
+        }
+
+    /*  While it may cause some entries to look like links when they aren't, I found it's much easier to read the
+         index if everything's the same color.  */
+    .ISymbol {
+        font-weight: bold; color: #900000  }
+
+    .IndexPage .ISymbolPrefix,
+    .FramedIndexPage .ISymbolPrefix {
+        font-size: 10pt;
+        text-align: right;
+        color: #C47C7C;
+        background-color: #F8F8F8;
+        border-right: 3px solid #E0E0E0;
+        border-left: 1px solid #E0E0E0;
+        padding: 0 1px 0 2px;
+        }
+    .PopupSearchResultsPage .ISymbolPrefix,
+    .FramedSearchResultsPage .ISymbolPrefix {
+        color: #900000;
+        }
+    .PopupSearchResultsPage .ISymbolPrefix {
+        font-size: 8pt;
+        }
+
+    .IndexPage #IFirstSymbolPrefix,
+    .FramedIndexPage #IFirstSymbolPrefix {
+        border-top: 1px solid #E0E0E0;
+        }
+    .IndexPage #ILastSymbolPrefix,
+    .FramedIndexPage #ILastSymbolPrefix {
+        border-bottom: 1px solid #E0E0E0;
+        }
+    .IndexPage #IOnlySymbolPrefix,
+    .FramedIndexPage #IOnlySymbolPrefix {
+        border-top: 1px solid #E0E0E0;
+        border-bottom: 1px solid #E0E0E0;
+        }
+
+    a.IParent,
+    a.IFile {
+        display: block;
+        }
+
+    .PopupSearchResultsPage .SRStatus {
+        padding: 2px 5px;
+        font-size: 8pt;
+        font-style: italic;
+        }
+    .FramedSearchResultsPage .SRStatus {
+        font-size: 10pt;
+        font-style: italic;
+        }
+
+    .SRResult {
+        display: none;
+        }
+
+
+
+#Footer {
+    font-size: 8pt;
+    color: #989898;
+    text-align: right;
+    }
+
+#Footer p {
+    text-indent: 0;
+    margin-bottom: .5em;
+    }
+
+.ContentPage #Footer,
+.IndexPage #Footer {
+    text-align: right;
+    margin: 2px;
+    }
+
+.FramedMenuPage #Footer {
+    text-align: center;
+    margin: 5em 10px 10px 10px;
+    padding-top: 1em;
+    border-top: 1px solid #C8C8C8;
+    }
+
+    #Footer a:link,
+    #Footer a:hover,
+    #Footer a:visited { color: #989898 }
+    #Footer a:active { color: #A00000 }
+
diff --git a/doc/apidoc/html/styles/2.css b/doc/apidoc/html/styles/2.css
new file mode 100755
index 0000000..bd55024
--- /dev/null
+++ b/doc/apidoc/html/styles/2.css
@@ -0,0 +1,45 @@
+/*
+   IMPORTANT: If you're editing this file in the output directory of one of
+   your projects, your changes will be overwritten the next time you run
+   Natural Docs.  Instead, copy this file to your project directory, make your
+   changes, and you can use it with -s.  Even better would be to make a CSS
+   file in your project directory with only your changes, which you can then
+   use with -s [original style] [your changes].
+
+   On the other hand, if you're editing this file in the Natural Docs styles
+   directory, the changes will automatically be applied to all your projects
+   that use this style the next time Natural Docs is run on them.
+
+   This file is part of Natural Docs, which is Copyright © 2003-2004 Greg Valure
+   Natural Docs is licensed under the GPL
+*/
+
+/*  NO longer necessary!!
+  .Prototype td {
+    font-size: 8pt;
+    }
+*/
+
+.CRequirementTestcase .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementFunction .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementProcedure .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+.CRequirementType .Prototype { background-color: #F4F4F4; border-color: #D0D0D0 }
+
+.MGroupContent {
+    font-variant: normal; 
+    font-weight: normal;
+    display: none;
+}
+        
+/*  NO longer necessary!!
+@media print {
+
+ blockquote {
+     overflow: visible;
+     }
+
+ .IE blockquote {
+     width: auto;
+     }
+}
+*/
diff --git a/doc/apidoc/html/styles/main.css b/doc/apidoc/html/styles/main.css
new file mode 100755
index 0000000..a672a94
--- /dev/null
+++ b/doc/apidoc/html/styles/main.css
@@ -0,0 +1,2 @@
+@import URL("1.css");
+@import URL("2.css");
diff --git a/src/TCCAssertion.cc b/src/TCCAssertion.cc
new file mode 100644
index 0000000..c1b0f8d
--- /dev/null
+++ b/src/TCCAssertion.cc
@@ -0,0 +1,57 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCAssertion.cc
+//  Description:        TCC Useful Functions: Assert Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-11-12
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCAssertion_Functions.hh"
+
+namespace TCCAssertion__Functions 
+{
+  
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__assert
+// 
+//  Purpose:
+//    Implement TTCN assertion. 
+//
+//  Parameters:
+//    pl__assertMessage - *in* *charstring* - assertion message
+//    pl__predicate - *in* *boolean* - boolean predicate
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    At the point of this function call, the assertion predicate must be true,
+//    else assertion fails that results in a dynamic test case error
+//    To use assertion optimized build shall be switched on with switch -O2 and
+//    NDEBUG shall not be defined
+// 
+///////////////////////////////////////////////////////////////////////////////
+  void f__assert(const CHARSTRING& pl__assertMessage, const BOOLEAN& pl__predicate)
+  {
+    #ifdef NDEBUG
+    #else
+    if (!(pl__predicate)) {
+      TTCN_error("Assertion failed: %s!",(const char*)pl__assertMessage);  
+    }
+    #endif
+  }
+}
diff --git a/src/TCCAssertion_Functions.ttcn b/src/TCCAssertion_Functions.ttcn
new file mode 100644
index 0000000..dba6261
--- /dev/null
+++ b/src/TCCAssertion_Functions.ttcn
@@ -0,0 +1,61 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCAssertion_Functions.ttcn
+//  Description:        TCC Useful Functions: Assert Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-11-12
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCAssertion_Functions
+// 
+//  Purpose:
+//    This module supports assertion handling
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCAssertion_Functions {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_assert
+// 
+//  Purpose:
+//    Implement TTCN assertion. 
+//
+//  Parameters:
+//    pl_assertMessage - *in* *charstring* - assertion message
+//    pl_predicate - *in* *boolean* - boolean predicate
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    At the point of this function call, the assertion predicate must be true,
+//    else assertion fails that results in a dynamic test case error
+//    To use assertion optimized build shall be switched on with switch -O2 and
+//    NDEBUG shall not be defined
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_assert(charstring pl_assertMessage, boolean pl_predicate);
+
+}
diff --git a/src/TCCConversion.cc b/src/TCCConversion.cc
new file mode 100644
index 0000000..f3d7170
--- /dev/null
+++ b/src/TCCConversion.cc
@@ -0,0 +1,502 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCConversion.cc
+//  Description:        TCC Useful Functions: Conversion Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-04-15
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCConversion_Functions.hh"
+#include <ctype.h>
+#include <strings.h>
+#include <string.h>
+
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+namespace TCCConversion__Functions
+{
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__putInLowercase
+//
+//  Purpose:
+//    Put charstring to lowercase
+//
+//  Parameters:
+//    pl__string - *in* *charstring* - charstring
+//
+//  Return Value:
+//    charstring - converted value
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  CHARSTRING f__putInLowercase(const CHARSTRING& pl__string)
+  {
+    int str_len = pl__string.lengthof();
+    char *tmp_buf = new char[str_len];
+    const char *src_ptr = pl__string;
+    for (int  i = 0; i < str_len; i++)
+    tmp_buf[i] = tolower(src_ptr[i]);
+    CHARSTRING ret_val(str_len, tmp_buf);
+    delete [] tmp_buf;
+    return ret_val;
+  }
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__putInUppercase
+//
+//  Purpose:
+//    Put charstring to uppercase
+//
+//  Parameters:
+//    pl__string - *in* *charstring* - charstring
+//
+//  Return Value:
+//    charstring - converted value
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  CHARSTRING f__putInUppercase(const CHARSTRING& pl__string)
+  {
+    int str_len = pl__string.lengthof();
+    char *tmp_buf = new char[str_len];
+    const char *src_ptr = pl__string;
+    for (int  i = 0; i < str_len; i++)
+    tmp_buf[i] = toupper(src_ptr[i]);
+    CHARSTRING ret_val(str_len, tmp_buf);
+    delete [] tmp_buf;
+    return ret_val;
+  }
+
+  ///////////////////////////////////////////////////////////////////////////////
+//  Function: f__addOctetstring
+//
+//  Purpose:
+//    Add two integer values represented in OCTETSTRING
+//
+//  Parameters:
+//    par1 - *in* *octetstring* - first octetstring value
+//    par2 - *in* *octetstring* - second octetstring value
+//
+//  Return Value:
+//    octetstring - sum of input
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Negative values are unhandled!
+//
+///////////////////////////////////////////////////////////////////////////////
+OCTETSTRING f__addOctetstring(const OCTETSTRING& par1, const OCTETSTRING& par2)
+{
+	par1.must_bound("incOctetstring() parameter #1: unbound octetstring value");
+	par2.must_bound("incOctetstring() parameter #2: unbound octetstring value");
+
+	size_t len1 = (size_t)par1.lengthof();
+	size_t len2 = (size_t)par2.lengthof();
+	size_t len = len1 > len2 ? len1 : len2;
+	OCTETSTRING ret_val = int2oct(0,len);
+
+    const unsigned char* data1 = (const unsigned char*)par1;
+    const unsigned char* data2 = (const unsigned char*)par2;
+
+	int tmp = 0;
+	int carry = 0;
+	for (size_t idx = 0; idx<len; idx++)
+	{
+		if (len1 > idx) { tmp = data1[len1-idx-1]&0xff; }  else { tmp = 0x00; }
+		if (len2 > idx) { tmp += (data2[len2-idx-1]&0xff) + carry; } else { tmp += carry; }
+		carry = tmp >> 8;
+		ret_val[len-1-idx] = int2oct(tmp&0xff,1);
+	}
+	if (carry) { ret_val = int2oct(carry&0xff,1) + ret_val; }
+	return ret_val;
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__subOctetstring
+//
+//  Purpose:
+//    Substract two integer values represented in OCTETSTRING
+//
+//  Parameters:
+//    par1 - *in* *octetstring* - first octetstring value
+//    par2 - *in* *octetstring* - second octetstring value
+//
+//  Return Value:
+//    octetstring - difference of input
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Negative values are unhandled!
+//
+///////////////////////////////////////////////////////////////////////////////
+OCTETSTRING f__subOctetstring(const OCTETSTRING& par1, const OCTETSTRING& par2)
+{
+	par1.must_bound("decOctetstring() parameter #1: unbound octetstring value");
+	par2.must_bound("decOctetstring() parameter #2: unbound octetstring value");
+
+	size_t len1 = (size_t)par1.lengthof();
+	size_t len2 = (size_t)par2.lengthof();
+	size_t len = len1 > len2 ? len1 : len2;
+	OCTETSTRING ret_val = int2oct(0,len);
+
+    const unsigned char* data1 = (const unsigned char*)par1;
+    const unsigned char* data2 = (const unsigned char*)par2;
+
+	int tmp = 0;
+	int carry = 1;	// +1 for two's complement
+	for (size_t idx = 0; idx<len; idx++)
+	{
+		if (len1 > idx) { tmp = data1[len1-idx-1]&0xff; }  else { tmp = 0x00; }
+		if (len2 > idx) { tmp += ((~data2[len2-idx-1])&0xff) + carry; } else { tmp += carry + 0xff; }
+		carry = tmp >> 8;
+		ret_val[len-1-idx] = int2oct(tmp&0xff,1);
+	}
+	return ret_val;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__compOctetstring
+//
+//  Purpose:
+//    Compare two integer values represented in OCTETSTRING
+//
+//  Parameters:
+//    par1 - *in* *octetstring* - first octetstring value
+//    par2 - *in* *octetstring* - second octetstring value
+//
+//  Return Value:
+//    integer - 0: par1 = par2
+//              1: par1>par2
+//              2: par1<par2
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Negative values are unhandled!
+//
+///////////////////////////////////////////////////////////////////////////////
+INTEGER f__compOctetstring(const OCTETSTRING& par1, const OCTETSTRING& par2)
+{
+	// Return value 0: par1 = par2, 1: par1>par2, 2: par1<par2
+	par1.must_bound("decOctetstring() parameter #1: unbound octetstring value");
+	par2.must_bound("decOctetstring() parameter #2: unbound octetstring value");
+
+	size_t len1 = (size_t)par1.lengthof();
+	size_t len2 = (size_t)par2.lengthof();
+	size_t len = len1 > len2 ? len1 : len2;
+
+    const unsigned char* data1 = (const unsigned char*)par1;
+    const unsigned char* data2 = (const unsigned char*)par2;
+
+	int tmp1 = 0;
+	int tmp2 = 0;
+	for (size_t idx = 0; idx<len; idx++)
+	{
+		if (len1 + idx>= len ) { tmp1 = data1[len1-len+idx]&0xff; }  else { tmp1 = 0x00; }
+		if (len2 + idx>= len) { tmp2 = data2[len2-len+idx]&0xff; } else { tmp2 = 0x00; }
+		if (tmp1>tmp2) { return 1; }
+		if (tmp1<tmp2) { return 2; }
+	}
+	return 0;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_substr_token
+//
+//  Purpose:
+//    The function returns a substring from a value. The starting and the ending
+//    points are defined by the begin and end tokens.
+//
+//  Parameters:
+//    str - *in* *charstring* - the value
+//    begin_token - *in* *charstring* - begin token
+//    end_token - *in* *charstring* - end token
+//
+//  Return Value:
+//    charstring. If one of the tokens is not found it returns an empty string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    If end_token is an empty string the function returns the part of the value
+//    after the begin_token.
+//    If begin_token is an empty string the function returns the part of the
+//    value until the end_token.
+//    If both of them empty string the function returns the part whole value
+//
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__substr__token(const CHARSTRING& str,
+                                 const CHARSTRING& begin_token,
+                                 const CHARSTRING& end_token){
+
+  const char* InStr=(const char*)str;
+  const char* SubStrA=(const char*)begin_token;
+  const char* SubStrB=(const char*)end_token;
+  int lenA=begin_token.lengthof();
+  const char* first=NULL;
+  const char* second;
+
+  if(str.lengthof()==0) return "";
+  if(begin_token.lengthof()>0){
+    first=strstr(InStr,SubStrA);
+    if(first==NULL) return "";
+    first+=lenA;
+  } else first=str;
+  if(end_token.lengthof()>0){
+    second=strstr(first,SubStrB);
+    if(second==NULL) return "";
+  } else second=InStr+str.lengthof();
+  return CHARSTRING(second-first,first);
+}
+
+OCTETSTRING f__substr__token__oct(const OCTETSTRING& str,
+                                 const OCTETSTRING& begin_token,
+                                 const OCTETSTRING& end_token){
+
+  const unsigned char* InStr=(const unsigned char*)str;
+  const unsigned char* SubStrA=(const unsigned char*)begin_token;
+  const unsigned char* SubStrB=(const unsigned char*)end_token;
+  size_t lenA=begin_token.lengthof();
+  size_t lenB=end_token.lengthof();
+  size_t lenstr=str.lengthof();
+  const unsigned char* first=NULL;
+  const unsigned char* second=NULL;
+
+  if(lenstr==0) return OCTETSTRING(0,NULL);
+  if(lenA>0){
+    first=(const unsigned char*)memmem(InStr,lenstr,SubStrA,lenA);
+    if(first==NULL) return OCTETSTRING(0,NULL);
+    first+=lenA;
+  } else first=InStr;
+  if(end_token.lengthof()>0){
+    second=(const unsigned char*)memmem(first,lenstr-(first-InStr),SubStrB,lenB);
+    if(second==NULL) return OCTETSTRING(0,NULL);
+  } else second=InStr+lenstr;
+  return OCTETSTRING(second-first,first);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_strstr
+//
+//  Purpose:
+//    The f_strstr function locates the first  occurrence  of  the string  s2
+//    in string s1 and returns an index of starting pont of the located string,
+//    or  -1 if the string is not found. If  s2 is an empty, the  func-
+//    tion returns 0.
+//
+//  Parameters:
+//    s1 - *in* *charstring* - input string
+//    s2 - *in* *charstring* - string to search
+//    offset - *in* *integer* - start offset.
+//
+//  Return Value:
+//    index of starting pont of the located string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    The offset determines the starting point of the search. Any occurance of
+//    the s2 before the offset is ignored. The offset is optional
+//
+///////////////////////////////////////////////////////////////////////////////
+INTEGER f__strstr(const CHARSTRING& s1,
+                                 const CHARSTRING& s2,
+                                 const INTEGER& offset){
+  if(s2.lengthof()==0) return offset;
+  if(s1.lengthof()==0) return -1;
+  if(offset<0) return -1;
+  if(s1.lengthof()<=offset) return -1;
+
+  const char* str1=(const char*)s1+(int)offset;
+  const char* str2=(const char*)s2;
+  const char* first=strstr(str1,str2);
+  if(first) return first-str1+(int)offset;
+  return -1;
+}
+
+INTEGER f__strstr__oct(const OCTETSTRING& s1,
+                                 const OCTETSTRING& s2,
+                                 const INTEGER& offset){
+  if(s2.lengthof()==0) return 0;
+  if(s1.lengthof()==0) return -1;
+  if(offset<0) return -1;
+  if(s1.lengthof()<=offset) return -1;
+
+  const unsigned char* str1=(const unsigned char*)s1+(int)offset;
+  const unsigned char* str2=(const unsigned char*)s2;
+  const unsigned char* first=(const unsigned char*)memmem(str1,s1.lengthof()-(int)offset,str2,s2.lengthof());
+  if(first) return first-str1+(int)offset;
+  return -1;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_convertIPAddrToBinary
+//
+//  Purpose:
+//    Converts an IPv4 and IPv6 address to its hex representation.
+//    IPv6 address is assumed if the input string contains ':'
+//
+//  Parameters:
+//    pl_ip - *in* *charstring* - input string
+//
+//  Return Value:
+//    hex value of the Ip in an octetstring
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//
+///////////////////////////////////////////////////////////////////////////////
+OCTETSTRING f__convertIPAddrToBinary(const CHARSTRING& pl__ip) {
+  bool ipv6 = index(pl__ip, ':');
+  unsigned char addr[17];
+
+  if(inet_pton(ipv6 ? AF_INET6 : AF_INET, pl__ip, addr)==1) {
+    return OCTETSTRING(ipv6 ? 16 : 4, addr);
+  }
+
+  return OCTETSTRING(0, addr);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__convertBinaryToIPAddr
+//
+//  Purpose:
+//    Converts an IPv4 and IPv6 address to its hex representation.
+//    IPv6 address is assumed if the input string contains ':'
+//
+//  Parameters:
+//    pl_ip - *in* *charstring* - input string
+//
+//  Return Value:
+//    hex value of the Ip in an octetstring
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__convertBinaryToIPAddr(const OCTETSTRING& pl__ip) {
+  bool ipv6 = false;
+  int l=pl__ip.lengthof();
+  char str[INET6_ADDRSTRLEN];
+  if (l==16){
+    ipv6 = true;
+  } else if( l!=4){
+    return CHARSTRING(0, str);
+  }
+
+  if(inet_ntop(ipv6 ? AF_INET6 : AF_INET, (const unsigned char*)pl__ip, str, INET6_ADDRSTRLEN)!=NULL){
+    return CHARSTRING(str);
+  }
+    
+  return CHARSTRING(0, str);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_oct2char_safe
+//
+//  Purpose:
+//    Fault tolerant version of the oct2str Titan built-in function.
+//
+//  Parameters:
+//    s1 - *in* *octetsttring* - input string
+//    s2 - *out* *charstring* - output string
+//
+//  Return Value:
+//    false on fault, ie. on unbound input or invalid character in input.
+//    true on success
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    On fault, the longest chunk that could be decoded is returned.
+//
+///////////////////////////////////////////////////////////////////////////////
+BOOLEAN f__oct2char__safe(const OCTETSTRING& par1, CHARSTRING& par2){
+  if (!par1.is_bound())
+    return BOOLEAN(false);
+  int value_length = par1.lengthof();
+  const unsigned char *octets_ptr = (const unsigned char*)par1;
+  for (int i = 0; i < value_length; i++) {
+    unsigned char octet = octets_ptr[i];
+    if (octet > 127) {
+      par2 = CHARSTRING(i, (const char*)octets_ptr);
+      return BOOLEAN(false);
+    }
+  }
+  par2 = CHARSTRING(value_length, (const char*)octets_ptr);
+  return BOOLEAN(true);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_isNumber
+//
+//  Purpose:
+//    Checks if a charstring starts with digits.
+//    If yes, then it returns the integer number in pl_number and 
+//    the remaining string as a return value.
+//    If the string doesn't start with digits, it will return 0 in pl_number.
+//
+//  Parameters:
+//    pl_string - *in* *charstring* - input string
+//    pl_number - *out* *integer* - output integer
+//
+//  Return Value:
+//    charstring
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__isNumber(const CHARSTRING& pl__string, INTEGER& pl__number){
+  char* ch = (char*)(const char*)pl__string;
+  char* end;
+  pl__number = strtol(ch, &end, 10);
+  if(end == NULL){
+    return CHARSTRING(0,(const char*)"");
+  } else {
+    return CHARSTRING(pl__string.lengthof() - (end - ch), end);
+  }
+}
+
+}
diff --git a/src/TCCConversion_Functions.ttcn b/src/TCCConversion_Functions.ttcn
new file mode 100644
index 0000000..031292e
--- /dev/null
+++ b/src/TCCConversion_Functions.ttcn
@@ -0,0 +1,959 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCConversion_Functions.ttcn
+//  Description:        TCC Useful Functions: Conversion Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-09-23
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCConversion_Functions
+//
+//  Purpose:
+//    This module supports string conversions
+//
+//  Module Parameters:
+//      -
+//
+//  Module depends on:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCConversion_Functions {
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_putInLowercase
+//
+//  Purpose:
+//    Put charstring to lowercase
+//
+//  Parameters:
+//    pl_string - *in* *charstring* - charstring
+//
+//  Return Value:
+//    charstring - converted value
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  external function f_putInLowercase(charstring pl_string) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_putInUppercase
+//
+//  Purpose:
+//    Put charstring to uppercase
+//
+//  Parameters:
+//    pl_string - *in* *charstring* - charstring
+//
+//  Return Value:
+//    charstring - converted value
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  external function f_putInUppercase(charstring pl_string) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_unichar2charstr
+//
+//  Purpose:
+//    Convert universal charstring 2 charstring
+//
+//  Parameters:
+//    p_unichar - *in* *charstring* - unichar 2 convert
+//
+//  Return Value:
+//    charstring - converted value
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_unichar2charstr (in universal charstring p_unichar) return charstring
+{
+  var charstring vl_char := "";
+
+  if (lengthof(p_unichar)==0) {return ""}
+  for (var integer i:= 0;i<lengthof(p_unichar);i:=i+1)
+  {
+    vl_char := vl_char & int2char(unichar2int(p_unichar[i]));
+  }
+  return vl_char
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_charstr2unichar
+//
+//  Purpose:
+//    Convert charstring 2 universal charstring
+//
+//  Parameters:
+//    p_char - *in* *charstring* - char 2 convert
+//
+//  Return Value:
+//    universal charstring - converted value
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_charstr2unichar (in  charstring p_char) return universal charstring
+{
+  var universal charstring vl_unichar := "";
+
+  if (lengthof(p_char)==0) { return "" }
+  for (var integer i:= 0;i<lengthof(p_char);i:=i+1)
+  {
+    vl_unichar := vl_unichar & int2unichar(char2int(p_char[i]));
+  }
+  return vl_unichar
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_replaceFirstOccurenceOfSubstring
+//
+//  Purpose:
+//    Replace first occurance of parSubStrA with parSubStrB in parInStr
+//
+//  Parameters:
+//    parInStr - *in* *charstring* - input string
+//    parSubStrA  - *in* *charstring* - string to replace
+//    parSubStrB  - *in* *charstring* - string to replace with
+//
+//  Return Value:
+//    charstring - modified input string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_replaceFirstOccurenceOfSubstring(
+  in charstring parInStr ,
+  in charstring parSubStrA,
+  in charstring parSubStrB) return charstring
+
+{
+  var integer i:=f_strstr(parInStr,parSubStrA);
+  var charstring OutStr;
+
+  if(i==-1){
+    return parInStr;
+  }
+  OutStr:=
+    substr(parInStr,0,i)&parSubStrB&
+    substr(parInStr,i+lengthof(parSubStrA),
+    lengthof(parInStr)-i-lengthof(parSubStrA));
+
+  return OutStr;
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_replaceEveryOccurenceOfSubstring
+//
+//  Purpose:
+//    Replace every occurance of parSubStrA with parSubStrB in parInStr
+//
+//  Parameters:
+//    parInStr - *in* *charstring* - input string
+//    parSubStrA  - *in* *charstring* - string to replace
+//    parSubStrB  - *in* *charstring* - string to replace with
+//
+//  Return Value:
+//    charstring - modified input string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_replaceEveryOccurenceOfSubstring(
+  in charstring parInStr,
+  in charstring parSubStrA,
+  in charstring parSubStrB) return charstring
+{
+  var integer startRegion := 0;
+  var integer i:=f_strstr(parInStr,parSubStrA);
+  var charstring OutStr := "";
+  var integer vl_sizeA := lengthof(parSubStrA);
+
+  while (i!=-1)
+  {
+    OutStr := OutStr & substr(parInStr,startRegion,i - startRegion) & parSubStrB;
+
+    //continue from saved pointer offset with the length of replacement string
+    startRegion:=i+ vl_sizeA;
+    i:=f_strstr(parInStr,parSubStrA,startRegion);
+  }
+
+  var integer remainderSize := lengthof(parInStr) - startRegion;
+  if(remainderSize > 0) {
+    OutStr := OutStr & substr(parInStr, startRegion, remainderSize);
+  }
+
+  return OutStr;
+}
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_replaceFirstOccurenceOfPattern
+//
+//  Purpose:
+//    Replace first occurance of pattern parSubStrA with parSubStrB in parInStr
+//
+//  Parameters:
+//    parInStr - *in* *charstring* - input string
+//    parSubStrA  - *in* *charstring* - pattern to replace
+//    parSubStrB  - *in* *charstring* - string to replace with
+//
+//  Return Value:
+//    charstring - modified input string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_replaceFirstOccurenceOfPattern(
+  in charstring parInStr,
+  in charstring parSubStrA,
+  in charstring parSubStrB) return charstring
+
+{
+  var charstring v_SubStrA;
+
+  v_SubStrA:=regexp(parInStr, parSubStrA, 0);
+  if(v_SubStrA!="") {
+    return f_replaceFirstOccurenceOfSubstring(parInStr,v_SubStrA,parSubStrB);
+  }
+  else {
+    return parInStr;
+  };
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_replaceEveryOccurenceOfPattern
+//
+//  Purpose:
+//    Replace every occurance of pattern parSubStrA with parSubStrB in parInStr
+//
+//  Parameters:
+//    parInStr - *in* *charstring* - input string
+//    parSubStrA  - *in* *charstring* - string to replace
+//    parSubStrB  - *in* *charstring* - string to replace with
+//
+//  Return Value:
+//    charstring - modified input string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_replaceEveryOccurenceOfPattern(
+  in charstring parInStr,
+  in charstring parSubStrA,
+  in charstring parSubStrB) return charstring
+{
+  var charstring OutStr,v_SubStrA;
+  var charstring MyPattern:= parSubStrA;
+
+  OutStr := parInStr;
+  v_SubStrA:=regexp(OutStr,MyPattern,0);
+
+  while(v_SubStrA!="")
+  {
+    OutStr:=f_replaceEveryOccurenceOfSubstring(OutStr,v_SubStrA,parSubStrB);
+    v_SubStrA:=regexp(OutStr,MyPattern,0);
+  }
+
+  return OutStr;
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_addOctetstring
+//
+//  Purpose:
+//    Add two integer values represented in OCTETSTRING
+//
+//  Parameters:
+//    par1 - *in* *octetstring* - first octetstring value
+//    par2 - *in* *octetstring* - second octetstring value
+//
+//  Return Value:
+//    octetstring - sum of input
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Negative values are unhandled!
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_addOctetstring(in octetstring par1, in octetstring par2)
+return octetstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_subOctetstring
+//
+//  Purpose:
+//    Substract two integer values represented in OCTETSTRING
+//
+//  Parameters:
+//    par1 - *in* *octetstring* - first octetstring value
+//    par2 - *in* *octetstring* - second octetstring value
+//
+//  Return Value:
+//    octetstring - difference of input
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Negative values are unhandled!
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_subOctetstring(in octetstring par1, in octetstring par2)
+return octetstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_compOctetstring
+//
+//  Purpose:
+//    Compare two integer values represented in OCTETSTRING
+//
+//  Parameters:
+//    par1 - *in* *octetstring* - first octetstring value
+//    par2 - *in* *octetstring* - second octetstring value
+//
+//  Return Value:
+//    integer - 0: par1 = par2
+//              1: par1>par2
+//              2: par1<par2
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Negative values are unhandled!
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_compOctetstring(in octetstring par1, in octetstring par2)
+return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_substr_token
+//
+//  Purpose:
+//    The function returns a substring from a value. The starting and the ending
+//    points are defined by the begin and end tokens.
+//
+//  Parameters:
+//    str - *in* *charstring* - the value
+//    begin_token - *in* *charstring* - begin token
+//    end_token - *in* *charstring* - end token
+//
+//  Return Value:
+//    charstring. If one of the tokens is not found it returns an empty string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    If end_token is an empty string the function returns the part of the value
+//    after the begin_token.
+//    If begin_token is an empty string the function returns the part of the
+//    value until the end_token.
+//    If both of them empty string the function returns the part whole value
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_substr_token(in charstring str,
+                                 in charstring begin_token,
+                                 in charstring end_token) return charstring;
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_substr_token_oct
+//
+//  Purpose:
+//    The function returns a substring from a value. The starting and the ending
+//    points are defined by the begin and end tokens.
+//
+//  Parameters:
+//    str - *in* *octetstring* - the value
+//    begin_token - *in* *octetstring* - begin token
+//    end_token - *in* *octetstring* - end token
+//
+//  Return Value:
+//    charstring. If one of the tokens is not found it returns an empty string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    If end_token is an empty string the function returns the part of the value
+//    after the begin_token.
+//    If begin_token is an empty string the function returns the part of the
+//    value until the end_token.
+//    If both of them empty string the function returns the part whole value
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_substr_token_oct(in octetstring str,
+                                 in octetstring begin_token,
+                                 in octetstring end_token) return octetstring;
+
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_substr_all_token
+//
+//  Purpose:
+//    The function returns a list of substrings from a value. The starting and the ending
+//    points are defined by the begin and end tokens.
+//
+//  Parameters:
+//    str - *in* *charstring* - the value
+//    begin_token - *in* *charstring* - begin token
+//    end_token - *in* *charstring* - end token
+//
+//  Return Value:
+//    record of charstring. 
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    If end_token is an empty string the function returns the part of the value
+//    after the begin_token.
+//    If begin_token is an empty string the function returns the part of the
+//    value until the end_token.
+//    If both of them empty string the function returns the part whole value
+//
+//  Note:
+//    These function can be used with 
+//           either TITAN CRL 113 200/5 R3A or newer
+//           or with function test run time
+//    because the function requires a type compatibility support for record of types
+//
+///////////////////////////////////////////////////////////////////////////////
+
+type record of charstring TCC_Conversion_ch_list;
+
+function f_substr_all_tokens(in charstring str,
+  in charstring begin_token,
+  in charstring end_token) return TCC_Conversion_ch_list
+{
+  var TCC_Conversion_ch_list result := {};
+  var integer startIndex := 0;
+  var integer endIndex := 0;
+  var boolean found := true;
+
+  if(lengthof(begin_token) ==0 and lengthof(end_token) == 0) { 
+    result[0]:=str;
+    return result;
+  }
+
+  while (found)
+  {
+    startIndex := f_strstr(str, begin_token, startIndex);
+    if (startIndex > -1)
+    {
+      
+      startIndex := startIndex + lengthof(begin_token);
+      
+      if(lengthof(end_token) == 0){ // empty end token means until the end of the string
+        endIndex := lengthof(str);
+      } else {
+        endIndex := f_strstr(str, end_token, startIndex);
+      }
+
+      if (endIndex > -1) {
+        result[sizeof(result)] := substr(str, startIndex, endIndex - startIndex); // append to string list
+        startIndex := endIndex + lengthof(end_token);
+      } else {
+        found := false;
+      }
+
+    } else {
+      found := false;
+    }
+  }
+
+  return result;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_substr_all_token
+//
+//  Purpose:
+//    The function returns a list of substrings from a value. The starting and the ending
+//    points are defined by the begin and end tokens. The returned values converted to charstring if possible
+//
+//  Parameters:
+//    str - *in* *charstring* - the value
+//    begin_token - *in* *charstring* - begin token
+//    end_token - *in* *charstring* - end token
+//
+//  Return Value:
+//    record of charstring. 
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    If end_token is an empty string the function returns the part of the value
+//    after the begin_token.
+//    If begin_token is an empty string the function returns the part of the
+//    value until the end_token.
+//    If both of them empty string the function returns the part whole value
+//
+//  Note:
+//    These function can be used with 
+//           either TITAN CRL 113 200/5 R3A or newer
+//           or with function test run time
+//    because the function requires a type compatibility support for record of types
+//
+///////////////////////////////////////////////////////////////////////////////
+
+function f_substr_all_tokens_oct(in octetstring str,
+  in octetstring begin_token,
+  in octetstring end_token) return TCC_Conversion_ch_list
+{
+  var TCC_Conversion_ch_list result := {};
+  var octetstring token := ''O;
+  var integer startIndex := 0;
+  var integer endIndex := 0;
+  var boolean found := true;
+  while (found)
+  {
+    startIndex := f_strstr_oct(str, begin_token, startIndex);
+    if (startIndex > -1)
+    {
+      startIndex := startIndex + lengthof(begin_token);
+      endIndex := f_strstr_oct(str, end_token, startIndex);
+
+      if (endIndex > -1) {
+        token := substr(str, startIndex, endIndex - startIndex);
+        if(not f_oct2char_safe(token, result[sizeof(result)])) {// append to string list
+          
+          return valueof(TCC_Conversion_ch_list:{})
+        }
+        startIndex := endIndex + lengthof(end_token);
+      } else {
+        found := false;
+      }
+
+    } else {
+      found := false;
+    }
+  }
+
+  return result;
+}
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_strstr
+//
+//  Purpose:
+//    The f_strstr function locates the first  occurrence  of  the string  s2
+//    in string s1 and returns an index of starting pont of the located string,
+//    or  -1 if the string is not found. If  s2 is an empty, the  func-
+//    tion returns 0.
+//
+//  Parameters:
+//    s1 - *in* *charstring* - input string
+//    s2 - *in* *charstring* - string to search
+//    offset - *in* *integer* - start offset.
+//
+//  Return Value:
+//    index of starting pont of the located string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    The offset determines the starting point of the search. Any occurance of
+//    the s2 before the offset is ignored. The offset is optional
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_strstr(in charstring s1,
+                                 in charstring s2,
+                                 in integer offset:=0) return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_strstr_oct
+//
+//  Purpose:
+//    The f_strstr function locates the first  occurrence  of  the string  s2
+//    in string s1 and returns an index of starting pont of the located string,
+//    or  -1 if the string is not found. If  s2 is an empty, the  func-
+//    tion returns 0.
+//
+//  Parameters:
+//    s1 - *in* *octetstring* - input string
+//    s2 - *in* *octetstring* - string to search
+//    offset - *in* *integer* - start offset.
+//
+//  Return Value:
+//    index of starting pont of the located string
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    The offset determines the starting point of the search. Any occurance of
+//    the s2 before the offset is ignored. The offset is optional
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_strstr_oct(in octetstring s1,
+                                 in octetstring s2,
+                                 in integer offset:=0) return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_OctetIpv4
+//
+//  Purpose:
+//    convertes an IPv4 address given in dotted notation to its hex
+//    representation
+//
+//  Parameters:
+//    pl_ip - *in* *charstring* - input string
+//
+//  Return Value:
+//    hex value of the Ip in an octetstring
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//
+///////////////////////////////////////////////////////////////////////////////
+//type record of integer IntegerList;
+function f_OctetIpv4(in charstring pl_ip) return octetstring{
+//  var IntegerList ret := {};
+  var octetstring oret := ''O;
+  var integer octet := 0;
+  var integer exp := 1;
+//  var integer k := 3;
+  for (var integer i:=lengthof(pl_ip)-1; i>-1;i:=i-1){
+    var integer ch := char2int(pl_ip[i]);
+    if (ch == 46){ // =="."
+      //ret[k] := octet;
+      oret := int2oct(octet,1) & oret;
+//      k:=k-1;
+      exp := 1;
+      octet := 0;
+    } else if(ch > 47 and ch < 58){ // isnum
+      octet := octet + str2int(pl_ip[i]) * exp;
+      if (i == 0) {
+        //ret[k] := octet;
+        oret := int2oct(octet,1) & oret;
+        break;
+      }
+      exp := exp * 10;
+    } else {
+      return ''O;
+    }
+  }
+  return oret;//(int2oct(ret[0],1) & int2oct(ret[1],1) & int2oct(ret[2],1) & int2oct(ret[3],1));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_convertIPAddrToBinary
+//
+//  Purpose:
+//    Converts an IPv4 and IPv6 address to its hex representation.
+//    IPv6 address is assumed if the input string contains ':'
+//
+//  Parameters:
+//    pl_ip - *in* *charstring* - input string
+//
+//  Return Value:
+//    hex value of the Ip in an octetstring
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_convertIPAddrToBinary(in charstring pl_ip) return octetstring;
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_convertBinaryToIPAddr
+//
+//  Purpose:
+//    Converts an IPv4 and IPv6 address to its hex representation.
+//    IPv6 address is assumed if the input string contains ':'
+//
+//  Parameters:
+//    pl_ip - *in* *octetstring* - input string
+//
+//  Return Value:
+//    hex value of the Ip in a charstring
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_convertBinaryToIPAddr(in octetstring pl_ip) return charstring;
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_oct2char_safe
+//
+//  Purpose:
+//    Fault tolerant version of the oct2str Titan built-in function.
+//
+//  Parameters:
+//    s1 - *in* *octetsttring* - input string
+//    s2 - *out* *charstring* - output string
+//
+//  Return Value:
+//    false on fault, ie. on unbound input or invalid character in input.
+//    true on success
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    On fault, the longest chunk that could be decoded is returned.
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_oct2char_safe(in octetstring par1, out charstring par2)
+return boolean;
+
+///////////////////////////////////////////////////////////
+//  Function: f_IPv6_literal
+// 
+//  Purpose:
+//    if parameter is an IPv6 string enclose it in "[" and "]" characters, otherwise do nothing
+// 
+//  Parameters:    
+//    pl_ip - *in* *charstring* - string to check
+//      
+//  Return Value:
+//    charstring - IPv6 string enclosed in "[" and "]" if parameter is an IPv6 string. Otherwise the string received as parameter. 
+// 
+//  Errors:
+//    -
+//
+//  Detailed Comments:
+//    according to RFC 2732 the IPv6 address should be enclosed in "[" and "]" characters within a URI
+//
+///////////////////////////////////////////////////////////
+
+function f_IPv6CreateLiteral(in charstring pl_ip)
+
+return charstring
+
+{
+  var charstring vl_ipAddress := pl_ip;
+  if (vl_ipAddress[0] != "[")
+  {
+    //if one of the first 5 characters is ":" we assume it is an IPv6 address
+
+   for (var integer i := 0; i < 5; i := i + 1)
+    {
+      if (vl_ipAddress[i] == ":")
+      {
+        vl_ipAddress := "[" & vl_ipAddress & "]";
+        break;
+      }
+    }
+  }
+
+  return vl_ipAddress;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_isNumber
+//
+//  Purpose:
+//    Checks if a charstring starts with digits.
+//    If yes, then it returns the integer number in pl_number and 
+//    the remaining string as a return value.
+//    If the string doesn't start with digits, it will return 0 in pl_number.
+//
+//  Parameters:
+//    pl_string - *in* *charstring* - input string
+//    pl_number - *out* *integer* - output integer
+//
+//  Return Value:
+//    charstring
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_isNumber(in charstring pl_string, out integer pl_number) return charstring;
+
+///////////////////////////////////////////////////////////
+//  Function: f_isWhiteSpace
+// 
+//  Purpose:
+//    Tells if a string consists of whitespaces (space, \r, \n, \t).
+//
+//  Parameters:
+//    - pl_str - *in* *charstring* - the string to check
+//
+//  Return Value:
+//    is whitespace? - *boolean* - true, if the string contains only whitespaces
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////
+public function f_isWhiteSpace(in charstring pl_str) return boolean {
+  var integer vl_size := lengthof(pl_str);
+  if (vl_size == 0) {
+    return false;
+  }
+
+  for(var integer j := 0; j < vl_size; j := j + 1) {
+    select (pl_str[j]){
+      case (" ") {}
+      case ("\r") {}
+      case ("\n") {}
+      case ("\t") {}
+      case else {return false;}
+    }
+  }
+  return true;
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_stripWhitespaces
+// 
+//  Purpose:
+//    Strips the whitespaces (space, \r, \n, \t)
+//    from the beginning and end of the parameter string.
+//
+//  Parameters:
+//    - pl_str - *in* *charstring* - the string to strip
+//
+//  Return Value:
+//    stripped string - *out* *charstring* - string without spaces at the beginning and end
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////
+public function f_stripWhitespaces (in charstring pl_str) return charstring {
+  var integer vl_begin := 0, vl_end := lengthof(pl_str);
+  while((vl_begin < vl_end) and f_isWhiteSpace(pl_str[vl_begin])) { vl_begin := vl_begin + 1 };
+  while((vl_end - 1 >= vl_begin) and f_isWhiteSpace(pl_str[vl_end - 1])) { vl_end := vl_end - 1 };
+  return substr(pl_str, vl_begin, vl_end - vl_begin);
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_isInteger
+// 
+//  Purpose:
+//    Function to determine that a charstring contains only digits
+//      from '0' to '9'
+//
+//  Parameters:
+//    - pl_str - *in* *charstring* - the string to check
+//
+//  Return Value:
+//    digits? - *out* *boolean* - true, if each character in pl_str is a digit
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////
+public function f_isInteger (
+  in charstring pl_str) return boolean {
+  for(var integer vl_i := 0; vl_i < lengthof(pl_str); vl_i := vl_i + 1) {
+    if((char2int(pl_str[vl_i]) < char2int("0")) or (char2int(pl_str[vl_i]) > char2int("9"))) { return false; }
+  }
+  if(lengthof(pl_str) == 0) { return false };
+  return true;
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_str2int
+// 
+//  Purpose:
+//    Converts a string to an integer. Leading zeros are extracted from the
+//      beginning of the string, so the runtime will not give warning about
+//      leading zeros
+//
+//  Parameters:
+//    - pl_str - *in* *integer* - the string to convert
+//
+//  Return Value:
+//    number - *out* *integer* - the converted number
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////
+public function f_str2int(in charstring pl_str) return integer {
+  var integer vl_zeros := 0;
+  
+  while ((vl_zeros < lengthof(pl_str)) and (pl_str[vl_zeros] == "0")) { vl_zeros := vl_zeros + 1; }
+  if(vl_zeros == lengthof(pl_str)) { return 0; }
+  return str2int(substr(pl_str,  vl_zeros, lengthof(pl_str) - vl_zeros));
+}
+
+}//end of module
+with {
+extension "version R22B"}
+
diff --git a/src/TCCDateTime.cc b/src/TCCDateTime.cc
new file mode 100644
index 0000000..4ae1db4
--- /dev/null
+++ b/src/TCCDateTime.cc
@@ -0,0 +1,443 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCDateTime.cc
+//  Description:        TCC Useful Functions: DateTime Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2011-06-29
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCDateTime_Functions.hh"
+#include <time.h>
+#include <stdlib.h>
+
+namespace TCCDateTime__Functions 
+{
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__time
+// 
+//  Purpose:
+//    Current calendar time of the system in seconds
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    integer - time value
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+  INTEGER f__time()
+  {
+    time_t cur_time;
+    time( &cur_time );
+    INTEGER i;
+    i.set_long_long_val(cur_time);
+    return i;
+  }
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__ctime
+// 
+//  Purpose:
+//    Convert a time value in seconds to human readable string.
+//    The time represented as local time
+//
+//  Parameters:
+//    pl__sec - *in* *integer* - time value
+// 
+//  Return Value:
+//    integer - converted time value
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__ctime(const INTEGER& pl__sec)
+{
+    time_t cur_time = pl__sec.get_long_long_val();
+    return ctime(&cur_time);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__ctime__UTC
+// 
+//  Purpose:
+//    Convert a time value in seconds to human readable string.
+//    The time represented as UTC
+//
+//  Parameters:
+//    pl__sec - *in* *integer* - time value
+// 
+//  Return Value:
+//    integer - converted time value
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__ctime__UTC(const INTEGER& pl__sec)
+{
+    time_t cur_time = pl__sec.get_long_long_val();
+    return asctime(gmtime(&cur_time));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__getTimeFormatted
+// 
+//  Purpose:
+//    Return the current calendar time in a formatted way
+//
+//  Parameters:
+//    pl__sec - *in* *integer* - time value
+//    pl__format - *in* *charstring* - format string
+// 
+//  Return Value:
+//    charstring - formatted time in string format
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    *Specifier / Replaced by / Example*
+//
+//    ----------------------------------------------------------------------------------------------------------
+//
+//    %a - Abbreviated weekday name * - Thu
+//
+//    %A - Full weekday name * - Thursday
+//
+//    %b - Abbreviated month name * - Aug
+//
+//    %B - Full month name * - August
+//
+//    %c - Date and time representation * - Thu Aug 23 14:55:02 2001
+//
+//    %d - Day of the month (01-31) - 23
+//
+//    %H - Hour in 24h format (00-23) - 14
+//
+//    %I - Hour in 12h format (01-12) - 02
+//
+//    %j - Day of the year (001-366) - 235
+//
+//    %m - Month as a decimal number (01-12) - 08
+//
+//    %M - Minute (00-59) - 55
+//
+//    %p - AM or PM designation - PM
+//
+//    %S - Second (00-61) - 02
+//
+//    %U - Week number with the first Sunday as the first day of week one (00-53) - 33
+//
+//    %w - Weekday as a decimal number with Sunday as 0 (0-6) - 4
+//
+//    %W - Week number with the first Monday as the first day of week one (00-53) - 34
+//
+//    %x - Date representation * - 08/23/01
+//
+//    %X - Time representation * - 14:55:02
+//
+//    %y - Year, last two digits (00-99) - 01
+//
+//    %Y - Year - 2001
+//
+//    %Z - Timezone name or abbreviation - CDT
+//
+//    %% - A % sign - %
+//
+//    ----------------------------------------------------------------------------------------------------------
+//
+//    * The specifiers whose description is marked with an asterisk (*) are locale-dependent.
+// 
+///////////////////////////////////////////////////////////////////////////////
+  CHARSTRING f__getTimeFormatted(const INTEGER& pl__sec, const CHARSTRING& pl__format)
+  {
+    time_t in_time = pl__sec.get_long_long_val();
+    size_t str_len = 255;
+    char ret_val[str_len];
+    strftime (ret_val, str_len, (const char *)pl__format, localtime(&in_time));
+    return ret_val; 
+  }
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__time2sec
+// 
+//  Purpose:
+//    Function to convert a formated time value to seconds.
+//    The time is expressed as local time.
+//
+//  Parameters:
+//    pl__year - *in* *integer* - year (e.g. 2007)
+//    pl__mon - *in* *integer* - month (e.g. 3)
+//    pl__day - *in* *integer* - day (e.g. 7)
+//    pl__hour - *in* *integer* - day (e.g. 12)
+//    pl__min - *in* *integer* - day (e.g. 50)
+//    pl__sec - *in* *integer* - day (e.g. 7)
+// 
+//  Return Value:
+//    integer - time in seconds
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    time in seconds since January 1, 1900
+// 
+///////////////////////////////////////////////////////////////////////////////
+INTEGER f__time2sec(const INTEGER& pl__year,
+		      const INTEGER& pl__mon,
+		      const INTEGER& pl__mday,
+		      const INTEGER& pl__hour,
+		      const INTEGER& pl__min,
+		      const INTEGER& pl__sec) 
+  {
+    struct tm tms;
+    tms.tm_sec = pl__sec;
+    tms.tm_min = pl__min;
+    tms.tm_hour = pl__hour;
+    tms.tm_mday = pl__mday;
+    tms.tm_mon = pl__mon - 1;
+    tms.tm_year = pl__year - 1900;
+    tms.tm_wday = 0;
+    tms.tm_yday = 0;
+    tms.tm_isdst = -1;
+
+    time_t t = mktime(&tms);
+    INTEGER i;
+    i.set_long_long_val(t);
+    return i;
+  }
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__time2sec__UTC
+// 
+//  Purpose:
+//    Function to convert a formated time value to seconds.
+//    The time is expressed as UTC.
+//
+//  Parameters:
+//    pl__year - *in* *integer* - year (e.g. 2007)
+//    pl__mon - *in* *integer* - month (e.g. 3)
+//    pl__day - *in* *integer* - day (e.g. 7)
+//    pl__hour - *in* *integer* - day (e.g. 12)
+//    pl__min - *in* *integer* - day (e.g. 50)
+//    pl__sec - *in* *integer* - day (e.g. 7)
+// 
+//  Return Value:
+//    integer - time in seconds
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    time in seconds since January 1, 1900
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+INTEGER f__time2sec__UTC(const INTEGER& pl__year,
+		      const INTEGER& pl__mon,
+		      const INTEGER& pl__mday,
+		      const INTEGER& pl__hour,
+		      const INTEGER& pl__min,
+		      const INTEGER& pl__sec) 
+  {
+    struct tm tms;
+    tms.tm_sec = pl__sec;
+    tms.tm_min = pl__min;
+    tms.tm_hour = pl__hour;
+    tms.tm_mday = pl__mday;
+    tms.tm_mon = pl__mon - 1;
+    tms.tm_year = pl__year - 1900;
+    tms.tm_wday = 0;
+    tms.tm_yday = 0;
+    tms.tm_isdst = 0;
+
+    time_t t = mktime(&tms);
+    t-= timezone;
+
+    INTEGER i;
+    i.set_long_long_val(t);
+    return i;
+  }
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__getCurrentDateWithOffset
+// 
+//  Purpose:
+//    Generate a date from the actual date and time plus the parameter
+//    in seconds e.g. getSdate(30) will return a charstring containing 
+//    the date and time of 30 seconds later
+//
+//  Parameters:
+//    pl__sec - *in* *integer* - offset time value
+// 
+//  Return Value:
+//    charstring - formatted time in string format
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////  
+  CHARSTRING f__getCurrentDateWithOffset(const INTEGER& pl__sec)
+  {
+    time_t cur_time;
+    time( &cur_time );
+    cur_time += pl__sec.get_long_long_val();
+    return ctime (&cur_time);
+  }
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__getCurrentGMTDate
+// 
+//  Purpose:
+//    Return the current GMT date in format RFC 1123-Date 
+//    e.g.:Sat, 13 Nov 2010 23:30:02 GMT
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    charstring - formatted time in string format
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////  
+  CHARSTRING f__getCurrentGMTDate()
+  {
+    time_t cur_time;
+    time( &cur_time );
+
+    return asctime( gmtime( &cur_time ) );
+  }
+  
+  
+//////////////////////////////////////////////////////////////////////////////
+//  Function: f__tic
+// 
+//  Purpose:
+//    Return the number of clock ticks used by the application since 
+//    the program was launched
+//
+//    OR
+//
+//    Return the amount of CPU time in microseconds since the last call of f__tic
+//
+//    OR ...
+//
+//    Warning! This function depends on used library version. Be careful!
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    integer - tics since program start
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+/////////////////////////////////////////////////////////////////////////////// 
+INTEGER f__tic()
+{
+    INTEGER i;
+    i.set_long_long_val(clock());
+    return i;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//  Function: f__toc
+// 
+//  Purpose:
+//    Elapsed seconds since time t (only when f__tic() returns the number of 
+//    clock ticks elapsed since the program was launched)
+//
+//    Warning! This function depends on used library version. Be careful!
+//
+//  Parameters:
+//    t - *in* *integer* - time value
+// 
+//  Return Value:
+//    float - elapsed seconds
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    f__tic counts clock tics since program start. f__toc counts seconds
+//    since clock() readout in t till current time
+// 
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__toc(const INTEGER& t)
+{
+    clock_t tt = (clock_t)t.get_long_long_val();
+    return FLOAT((double)(clock()-tt)/CLOCKS_PER_SEC);
+}
+  
+//////////////////////////////////////////////////////////////////////////////
+//  Function: f__timeDiff
+// 
+//  Purpose:
+//    Difference between two time
+//
+//  Parameters:
+//    t_start - *in* *integer* - start time
+//    t_stop - *in* *integer* - stop time
+// 
+//  Return Value:
+//    integer - t_stop-t_start
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+INTEGER f__timeDiff(const INTEGER& t_stop, const INTEGER& t_start)
+{
+    if(!t_stop.is_bound())
+    {
+        TTCN_error("Stop time is unbound in call to function TimeDiff");
+    }
+    if(!t_start.is_bound())
+    {
+        TTCN_error("Start time is unbound in call to function TimeDiff");
+    }
+    return t_stop-t_start;
+}
+
+} // end of Namespace
diff --git a/src/TCCDateTime_Functions.ttcn b/src/TCCDateTime_Functions.ttcn
new file mode 100644
index 0000000..365fbc5
--- /dev/null
+++ b/src/TCCDateTime_Functions.ttcn
@@ -0,0 +1,365 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCDateTime_Functions.ttcn
+//  Description:        TCC Useful Functions: DateTime Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2011-06-29
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCDateTime_Functions
+// 
+//  Purpose:
+//    This module supports date and time handling
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCDateTime_Functions {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_time
+// 
+//  Purpose:
+//    Current calendar time of the system in seconds
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    integer - time value
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_time() return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_ctime
+// 
+//  Purpose:
+//    Convert a time value in seconds to human readable string
+//    The time represented as local time
+//
+//  Parameters:
+//    pl_sec - *in* *integer* - time value
+// 
+//  Return Value:
+//    integer - converted time value
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////  
+external function f_ctime(integer pl_sec) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_ctime_UTC
+// 
+//  Purpose:
+//    Convert a time value in seconds to human readable string
+//    The time represented as UTC
+//
+//  Parameters:
+//    pl_sec - *in* *integer* - time value
+// 
+//  Return Value:
+//    integer - converted time value
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////  
+external function f_ctime_UTC(integer pl_sec) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getTimeFormatted
+// 
+//  Purpose:
+//    Return the current calendar time in a formatted way
+//
+//  Parameters:
+//    pl_sec - *in* *integer* - time value in seconds
+//    pl_format - *in* *charstring* - format string
+// 
+//  Return Value:
+//    charstring - formatted time in string format
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    *Specifier / Replaced by / Example*
+//
+//    ----------------------------------------------------------------------------------------------------------
+//
+//    %a - Abbreviated weekday name * - Thu
+//
+//    %A - Full weekday name * - Thursday
+//
+//    %b - Abbreviated month name * - Aug
+//
+//    %B - Full month name * - August
+//
+//    %c - Date and time representation * - Thu Aug 23 14:55:02 2001
+//
+//    %d - Day of the month (01-31) - 23
+//
+//    %H - Hour in 24h format (00-23) - 14
+//
+//    %I - Hour in 12h format (01-12) - 02
+//
+//    %j - Day of the year (001-366) - 235
+//
+//    %m - Month as a decimal number (01-12) - 08
+//
+//    %M - Minute (00-59) - 55
+//
+//    %p - AM or PM designation - PM
+//
+//    %S - Second (00-61) - 02
+//
+//    %U - Week number with the first Sunday as the first day of week one (00-53) - 33
+//
+//    %w - Weekday as a decimal number with Sunday as 0 (0-6) - 4
+//
+//    %W - Week number with the first Monday as the first day of week one (00-53) - 34
+//
+//    %x - Date representation * - 08/23/01
+//
+//    %X - Time representation * - 14:55:02
+//
+//    %y - Year, last two digits (00-99) - 01
+//
+//    %Y - Year - 2001
+//
+//    %Z - Timezone name or abbreviation - CDT
+//
+//    %% - A % sign - %
+//
+//    ----------------------------------------------------------------------------------------------------------
+//
+//    * The specifiers whose description is marked with an asterisk (*) are locale-dependent.
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_getTimeFormatted(integer pl_sec, charstring pl_format) 
+return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_time2sec
+// 
+//  Purpose:
+//    function to convert a formated time value to seconds
+//    The time represented as local time
+//
+//  Parameters:
+//    pl_year - *in* *integer* - year (e.g. 2007)
+//    pl_mon - *in* *integer* - month (e.g. 3)
+//    pl_day - *in* *integer* - day (e.g. 7)
+//    pl_hour - *in* *integer* - day (e.g. 12)
+//    pl_min - *in* *integer* - day (e.g. 50)
+//    pl_sec - *in* *integer* - day (e.g. 7)
+// 
+//  Return Value:
+//    integer - time in seconds
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    time in seconds since January 1, 1900
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_time2sec(
+  integer pl_year, 
+  integer pl_mon, 
+  integer pl_day, 
+  integer pl_hour,
+  integer pl_min,
+  integer pl_sec) 
+return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_time2sec_UTC
+// 
+//  Purpose:
+//    function to convert a formated time value to seconds
+//    The time represented as UTC
+//
+//  Parameters:
+//    pl_year - *in* *integer* - year (e.g. 2007)
+//    pl_mon - *in* *integer* - month (e.g. 3)
+//    pl_day - *in* *integer* - day (e.g. 7)
+//    pl_hour - *in* *integer* - day (e.g. 12)
+//    pl_min - *in* *integer* - day (e.g. 50)
+//    pl_sec - *in* *integer* - day (e.g. 7)
+// 
+//  Return Value:
+//    integer - time in seconds
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    time in seconds since January 1, 1900
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_time2sec_UTC(
+  integer pl_year, 
+  integer pl_mon, 
+  integer pl_day, 
+  integer pl_hour,
+  integer pl_min,
+  integer pl_sec) 
+return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getCurrentDateWithOffset
+// 
+//  Purpose:
+//    Generate a date from the actual date and time plus the parameter
+//    in seconds e.g. getSdate(30) will return a charstring containing 
+//    the date and time of 30 seconds later
+//
+//  Parameters:
+//    pl_sec - *in* *integer* - offset time value
+// 
+//  Return Value:
+//    charstring - formatted time in string format
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_getCurrentDateWithOffset(integer pl_sec) return charstring;
+ 
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getCurrentGMTDate
+// 
+//  Purpose:
+//    Return the current GMT date in format RFC 1123-Date 
+//    ex :Sat, 13 Nov 2010 23:30:02 GMT
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    charstring - formatted time in string format
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////  
+external function f_getCurrentGMTDate() return charstring;
+
+//external function f_getCurrentTimeValue() return TimeValue;
+
+//////////////////////////////////////////////////////////////////////////////
+//  Function: f_tic
+// 
+//  Purpose:
+//    Return the number of clock ticks used by the application since 
+//    the program was launched
+//
+//    OR
+//
+//    Return the amount of CPU time in microseconds since the last call of f_tic
+//
+//    OR ...
+//
+//    Warning! This function depends on used library version. Be careful!
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    integer - tics since program start
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+/////////////////////////////////////////////////////////////////////////////// 
+external function f_tic() return integer;
+
+//////////////////////////////////////////////////////////////////////////////
+//  Function: f_toc
+// 
+//  Purpose:
+//    Elapsed seconds since time t (only when f_tic() returns the number of 
+//    clock ticks elapsed since the program was launched)
+//
+//    Warning! This function depends on used library version. Be careful!
+//
+//  Parameters:
+//    t - *in* *integer* - time value
+// 
+//  Return Value:
+//    float - elapsed seconds
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    f_tic counts clock tics since program start. f_toc counts seconds
+//    since clock() readout in t till current time
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_toc(integer t) return float;
+  
+//////////////////////////////////////////////////////////////////////////////
+//  Function: f_timeDiff
+// 
+//  Purpose:
+//    Difference between two time
+//
+//  Parameters:
+//    t_start - *in* *integer* - start time
+//    t_stop - *in* *integer* - stop time
+// 
+//  Return Value:
+//    integer - t_stop-t_start
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_timeDiff(integer t_stop, integer t_start) return integer;
+
+}
diff --git a/src/TCCEncoding.cc b/src/TCCEncoding.cc
new file mode 100644
index 0000000..f79911a
--- /dev/null
+++ b/src/TCCEncoding.cc
@@ -0,0 +1,377 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCEncoding.cc
+//  Description:        TCC Useful Functions: Message Encoding Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2012-06-28
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCEncoding_Functions.hh"
+
+namespace TCCEncoding__Functions {
+
+CHARSTRING enc_Base64(const OCTETSTRING& msg, bool use_linebreaks);
+OCTETSTRING dec_Base64(const CHARSTRING& b64, bool warn_invalid_char);
+
+////////////////////////////
+// MIME Base64 (RFC 2045) //
+////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: enc__MIME__Base64
+// 
+//  Purpose:
+//    Encode message to MIME Base64 format (RFC 2045)
+//
+//  Parameters:
+//    p__msg - *in* *octetstring* - message to encode
+// 
+//  Return Value:
+//    charstring - encoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING enc__MIME__Base64(const OCTETSTRING& p__msg)
+{
+  return enc_Base64(p__msg, true);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: dec__MIME__Base64
+// 
+//  Purpose:
+//    Decode message from MIME Base64 format (RFC 2045)
+//
+//  Parameters:
+//    p__b64 - *in* *charstring* - message to decode
+// 
+//  Return Value:
+//    octetstring - decoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+OCTETSTRING dec__MIME__Base64(const CHARSTRING& p__b64)
+{
+  return dec_Base64(p__b64, false);
+}
+
+////////////////////////////
+// LDIF Base64 (RFC 2849) //
+////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: enc__LDIF__Base64
+// 
+//  Purpose:
+//    Encode message to LDIF Base64 format (RFC 2849)
+//
+//  Parameters:
+//    p__msg - *in* *octetstring* - message to encode
+// 
+//  Return Value:
+//    charstring - encoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING enc__LDIF__Base64(const OCTETSTRING& p__msg)
+{
+  return enc_Base64(p__msg, false);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: dec__LDIF__Base64
+// 
+//  Purpose:
+//    Decode message from LDIF Base64 format (RFC 2849)
+//
+//  Parameters:
+//    p__b64 - *in* *charstring* - message to decode
+// 
+//  Return Value:
+//    octetstring - decoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+OCTETSTRING dec__LDIF__Base64(const CHARSTRING& p__b64)
+{
+  return dec_Base64(p__b64, true);
+}
+
+
+// implementation
+
+CHARSTRING enc_Base64(const OCTETSTRING& msg, bool use_linebreaks)
+{
+  const char *code_table = {
+    "ABCDEFGHIJKLMNOP"
+    "QRSTUVWXYZabcdef"
+    "ghijklmnopqrstuv"
+    "wxyz0123456789+/"
+  };
+  const char pad = '=';
+  const unsigned char *p_msg = (const unsigned char *)msg;
+  int octets_left = msg.lengthof();
+  //char *output = new char[(octets_left/3+1)*4 + (octets_left/76+1)*2 + 1];
+  // quick approximation:
+  char *output = new char[((octets_left*22)>>4) + 7];
+  char *p_output = output;
+  int n_4chars = 0;
+  while(octets_left >= 3) {
+    *p_output++ = code_table[p_msg[0] >> 2];
+    *p_output++ = code_table[((p_msg[0] << 4) | (p_msg[1] >> 4)) & 0x3f];
+    *p_output++ = code_table[((p_msg[1] << 2) | (p_msg[2] >> 6)) & 0x3f];
+    *p_output++ = code_table[p_msg[2] & 0x3f];
+    n_4chars++;
+    if(use_linebreaks && n_4chars>=19 && octets_left != 3) {
+      *p_output++ = '\r';
+      *p_output++ = '\n';
+      n_4chars = 0;
+    }
+    p_msg += 3;
+    octets_left -= 3;
+  }
+  switch(octets_left) {
+  case 1:
+    *p_output++ = code_table[p_msg[0] >> 2];
+    *p_output++ = code_table[(p_msg[0] << 4) & 0x3f];
+    *p_output++ = pad;
+    *p_output++ = pad;
+    break;
+  case 2:
+    *p_output++ = code_table[p_msg[0] >> 2];
+    *p_output++ = code_table[((p_msg[0] << 4) | (p_msg[1] >> 4)) & 0x3f];
+    *p_output++ = code_table[(p_msg[1] << 2) & 0x3f];
+    *p_output++ = pad;
+    break;
+  default:
+    break;
+  }
+  *p_output = '\0';
+  CHARSTRING ret_val(output);
+  delete []output;
+  return ret_val;
+}
+
+OCTETSTRING dec_Base64(const CHARSTRING& b64, bool warn_invalid_char)
+{
+  const unsigned char decode_table[] = {
+    80, 80, 80, 80, 80, 80, 80, 80,   80, 80, 80, 80, 80, 80, 80, 80,
+    80, 80, 80, 80, 80, 80, 80, 80,   80, 80, 80, 80, 80, 80, 80, 80,
+    80, 80, 80, 80, 80, 80, 80, 80,   80, 80, 80, 62, 80, 80, 80, 63,
+    52, 53, 54, 55, 56, 57, 58, 59,   60, 61, 80, 80, 80, 70, 80, 80,
+    80,  0,  1,  2,  3,  4,  5,  6,    7,  8,  9, 10, 11, 12, 13, 14,
+    15, 16, 17, 18, 19, 20, 21, 22,   23, 24, 25, 80, 80, 80, 80, 80,
+    80, 26, 27, 28, 29, 30, 31, 32,   33, 34, 35, 36, 37, 38, 39, 40,
+    41, 42, 43, 44, 45, 46, 47, 48,   49, 50, 51, 80, 80, 80, 80, 80
+  };
+  const unsigned char *p_b64 = (const unsigned char *) ((const char *) b64);
+  int chars_left = b64.lengthof();
+  unsigned char *output = new unsigned char[((chars_left>>2)+1)*3];
+  unsigned char *p_output = output;
+  unsigned int bits = 0;
+  size_t n_bits = 0;
+  bool non_base64_char = false;
+  while(chars_left--) {
+    unsigned char dec;
+    if(*p_b64 > 0 && (dec = decode_table[*p_b64])<64) {
+      bits <<= 6;
+      bits |= dec;
+      n_bits += 6;
+      if(n_bits>=8) {
+        *p_output++ = (bits >> (n_bits-8)) & 0xff;
+        n_bits-=8;
+      }
+    } else if (*p_b64 == '=') {
+      break;
+    } else {
+      non_base64_char = true;
+    }
+    p_b64++;
+  }
+  if(warn_invalid_char && non_base64_char) {
+      TTCN_Logger::begin_event(TTCN_WARNING);
+      TTCN_Logger::log_event_str("Warning: Invalid character in Base64 encoded "
+        "data: ");
+      b64.log();
+      TTCN_Logger::end_event();
+  }
+  OCTETSTRING ret_val(p_output - output, output);
+  delete []output;
+  return ret_val;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__enc__TBCD
+// 
+//  Purpose:
+//    Encode charstring to TBCD
+//
+//  Parameters:
+//    pl__char - *in* *charstring* - message to encode
+// 
+//  Return Value:
+//    octetstring - TBCD encoding
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+OCTETSTRING f__enc__TBCD(const CHARSTRING& pl__char)
+{
+ const unsigned char code_table[] = {
+    0x00,0x01,0x02,0x03,0x04,
+    0x05,0x06,0x07,0x08,0x09 
+  };
+ const char* p_char = (const char*) pl__char;
+ int char_length = pl__char.lengthof();
+ int oct_length;
+ 
+ if ((char_length % 2) == 1){
+  oct_length = (char_length + 1) / 2;
+ }
+ else {
+  oct_length = (char_length) / 2;
+ }
+ 
+ unsigned char half_byte;
+ unsigned char *output = new unsigned char[oct_length]; 
+  
+ for (int i = 0; i < char_length; i++) {    
+   if((p_char[i] >= 0x30) && (p_char[i] <= 0x39)) {    
+     half_byte =  code_table[p_char[i]-0x30];    
+   }
+   else if (p_char[i] == 0x2A)
+     half_byte = 0x0A;
+   else if (p_char[i] == 0x23)
+     half_byte = 0x0B;
+   else if (p_char[i] == 0x61)
+     half_byte = 0x0C;
+   else if (p_char[i] == 0x62)
+     half_byte = 0x0D;
+   else if (p_char[i] == 0x63) 
+     half_byte = 0x0E;
+   else {  
+      TTCN_Logger::log(TTCN_WARNING,"Warning : Invalid TBCD digit!");
+      delete []output;
+      return OCTETSTRING(0,0);
+   }
+     
+  if ((i % 2) == 0) {    
+    output[i/2] = half_byte; 
+    if((i+1) == char_length) {
+      output[i/2] = output[i/2] | 0xF0;
+    }    
+  }
+  else {   
+    output[(i-1)/2] = output[(i-1)/2] | ( half_byte << 4);
+  } 
+ } 
+  
+  OCTETSTRING ret_val(oct_length, output);
+  delete []output;
+  return ret_val;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__dec__TBCD
+// 
+//  Purpose:
+//    Decode octetstring from TBCD encoding
+//
+//  Parameters:
+//    pl__oct - *in* *octetstring* - message to decode
+// 
+//  Return Value:
+//    charstring - decoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__dec__TBCD(const OCTETSTRING& pl__oct) 
+{
+ unsigned const char* p_char = (const unsigned char*) pl__oct;
+ int oct_length = pl__oct.lengthof();
+ char *output = new char[oct_length*2+1];
+ 
+ const char *code_table = {
+    "0123456789*#abc"
+  };
+ unsigned char msb;
+ unsigned char lsb;
+  
+ int i = 0;
+ while (i < oct_length) { 
+    msb = (unsigned char)((p_char[i] & 0xF0) >> 4);
+    lsb = (unsigned char)(p_char[i] & 0x0F);
+        
+    if(lsb != 0x0F){ // lsb not filler
+      output[2*i] = code_table[lsb];
+    }
+    else { // lsb is filler 
+      TTCN_Logger::log(TTCN_WARNING,"Warning : Filler digit at invalid location!");
+      delete []output;
+      return CHARSTRING("");
+    } 
+       
+    if(msb != 0x0F) { // msb not filler
+      output[2*i+1] = code_table[msb];
+      if (i == (oct_length-1)) {
+        output[2*i+2] = '\0';
+      }      
+    }
+    else { // msb is filler    
+      if (i == (oct_length-1))  {   
+        output[2*i+1] = '\0';
+      }
+      else {
+        TTCN_Logger::log(TTCN_WARNING,"Warning : Filler digit at invalid location!");
+        delete []output;
+        return CHARSTRING("");      
+      }      
+    }     
+   i=i+1; 
+ }  
+  CHARSTRING ret_val(output);
+  delete []output;
+  return ret_val;   
+}
+
+}//namespace
diff --git a/src/TCCEncoding_Functions.ttcn b/src/TCCEncoding_Functions.ttcn
new file mode 100644
index 0000000..9bb1082
--- /dev/null
+++ b/src/TCCEncoding_Functions.ttcn
@@ -0,0 +1,735 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCEncoding_Functions.ttcn
+//  Description:        TCC Useful Functions: Message Encoding Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-08-05
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCEncoding_Functions
+// 
+//  Purpose:
+//    This module supports message based encoding of certain types
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCEncoding_Functions {
+
+
+// 24.008  10.5.4.7
+// Q.763   3.9
+type enumerated NumberPlan
+{
+  unknownSpare(0),       // MobileL3 unknown / ISUP spare
+  ISDN_E_164(1),         // 
+  spare1(2),             // MobileL3 - / ISUP spare 
+  data(3),               // 
+  telex(4),              //   
+  reserved1(5),          // MobileL3 - / ISUP reserved for national use
+  reserved2(6),          // MobileL3 - / ISUP reserved for national use  
+  spare2(7),             // MobileL3 - / ISUP spare
+  national(8),           // MobileL3 national numbering plan / ISUP -
+  private_(9),           // MobileL3 private numbering plan  / ISUP - 
+  reservedCTS(11),       // MobileL3 reserved for CTS / ISUP - 
+  reservedExtension(15)  // MobileL3 reserved for extension  / ISUP - 
+}
+
+
+// Q.763   3.9
+type enumerated ISUP_NatureOfAddress
+{
+  spare(0),
+  subscriberNumber(1),
+  unknown(2),
+  nationalNumber(3),
+  internationalNumber(4), 
+  networkRoutingNumber(5),
+  networkRoutingNumberNationalNrFormat(6),
+  networkRoutingNumberNetworkSpecificNrFormat(7),
+  networkRoutingNumberConcatenatedWith_CDN(8)   
+}
+
+// Q.763   3.9
+type enumerated ISUP_NumberingIncompleteIndicator
+{
+  numberComplete(0),   // 0
+  numberIncomplete(1)  // 1
+}
+
+// Q.763   3.9
+type record ISUP_Called_Party_Number
+{
+  ISUP_NatureOfAddress               natureOfAddressIndicator, 
+  NumberPlan                         numberingPlanIndicator,
+  ISUP_NumberingIncompleteIndicator  iNN, 
+  hexstring                          addressSignalDigits
+} 
+
+// Q.763   3.10
+type enumerated ISUP_ScreeningIndicator
+{
+  user_provided_not_verified(0),    // 00
+  user_provided_verified_passed(1), // 01
+  user_provided_verified_failed(2), // 10
+  network_provided(3)               // 11
+}
+
+// Q.763   3.10
+type enumerated ISUP_AddressPresentationRestrictedIndicator
+{
+  presentation_allowed(0),                     // 00
+  presentation_restricted(1),                  // 01
+  address_not_available(2),                    // 10
+  reserved(3)                                  // 11            
+}
+
+// Q.763   3.10
+type record ISUP_Calling_Party_Number
+{
+  ISUP_NatureOfAddress               natureOfAddressIndicator, 
+  ISUP_ScreeningIndicator            screening_indicator,
+  ISUP_AddressPresentationRestrictedIndicator address_presentation_restricted_indicator,
+  NumberPlan                         numberingPlanIndicator,
+  ISUP_NumberingIncompleteIndicator  iNN, 
+  hexstring                          addressSignalDigits
+} 
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_encode_ISUP_Called_Party_Number
+// 
+//  Purpose:
+//      Function for encoding ISUP_Called_Party_Number type to octetstring
+//      Q.763   3.9
+// 
+//  Parameters:
+//    pl_ISUP_Called_Party_Number - *in* <ISUP_Called_Party_Number> -
+//
+//  Return Value:
+//    *octetstring* - the converted number in octetstring format
+// 
+//  Errors:
+//    -
+// 
+//  Detailed Comments:
+//   -
+///////////////////////////////////////////////////////////////////////////////
+function f_encode_ISUP_Called_Party_Number
+(in ISUP_Called_Party_Number pl_ISUP_Called_Party_Number) return octetstring 
+{ 
+  if(enum2int(pl_ISUP_Called_Party_Number.numberingPlanIndicator) > 7)
+  {
+   log("Error : Invalid numberingPlanIndicator")
+   return(''O)
+  }
+
+  var integer vl_i;
+  var octetstring vl_oct;
+  var hexstring vl_digits := pl_ISUP_Called_Party_Number.addressSignalDigits; 
+  var integer vl_size := lengthof(pl_ISUP_Called_Party_Number.addressSignalDigits);
+  var bitstring vl_oddEvenIndicator := '0'B;
+  if((vl_size mod 2) == 1) {
+    vl_oddEvenIndicator := '1'B;
+    vl_digits :=  vl_digits & '0'H;
+    vl_size := vl_size + 1;
+  } 
+
+  vl_oct := bit2oct(vl_oddEvenIndicator & 
+            int2bit(enum2int(pl_ISUP_Called_Party_Number.natureOfAddressIndicator), 7) &  
+	    int2bit(enum2int(pl_ISUP_Called_Party_Number.iNN), 1) &  
+	    int2bit(enum2int(pl_ISUP_Called_Party_Number.numberingPlanIndicator), 3) &  
+            '0000'B)
+			  			  
+  vl_size := vl_size / 2;
+  
+  for (vl_i := 0; vl_i < vl_size; vl_i := vl_i + 1)
+  {
+    vl_oct := vl_oct & hex2oct(vl_digits[(2*vl_i) + 1] & vl_digits[2*vl_i]);
+  }
+
+  return(vl_oct)
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_encode_ISUP_Calling_Party_Number
+// 
+//  Purpose:
+//      Function for encoding ISUP_Calling_Party_Number type to octetstring
+//      Q.763   3.10
+// 
+//  Parameters:
+//    pl_ISUP_Calling_Party_Number - *in* <ISUP_Calling_Party_Number> -
+//
+//  Return Value:
+//    *octetstring* - the converted number in octetstring format
+// 
+//  Errors:
+//    -
+// 
+//  Detailed Comments:
+//   -
+///////////////////////////////////////////////////////////////////////////////
+function f_encode_ISUP_Calling_Party_Number
+(in ISUP_Calling_Party_Number pl_ISUP_Calling_Party_Number) return octetstring 
+{ 
+  if(enum2int(pl_ISUP_Calling_Party_Number.numberingPlanIndicator) > 7)
+  {
+   log("Error : Invalid numberingPlanIndicator")
+   return(''O)
+  }
+
+  var integer vl_i;
+  var octetstring vl_oct;
+  var hexstring vl_digits := pl_ISUP_Calling_Party_Number.addressSignalDigits; 
+  var integer vl_size := lengthof(pl_ISUP_Calling_Party_Number.addressSignalDigits);
+  var bitstring vl_oddEvenIndicator := '0'B;
+  if((vl_size mod 2) == 1) {
+    vl_oddEvenIndicator := '1'B;
+    vl_digits :=  vl_digits & '0'H;
+    vl_size := vl_size + 1;
+  } 
+
+  vl_oct := bit2oct(vl_oddEvenIndicator & 
+            int2bit(enum2int(pl_ISUP_Calling_Party_Number.natureOfAddressIndicator), 7) &
+        int2bit(enum2int(pl_ISUP_Calling_Party_Number.iNN), 1) &
+        int2bit(enum2int(pl_ISUP_Calling_Party_Number.numberingPlanIndicator), 3) &
+        int2bit(enum2int(pl_ISUP_Calling_Party_Number.address_presentation_restricted_indicator), 2) &
+        int2bit(enum2int(pl_ISUP_Calling_Party_Number.screening_indicator), 2))
+                          
+  vl_size := vl_size / 2;
+  
+  for (vl_i := 0; vl_i < vl_size; vl_i := vl_i + 1)
+  {
+    vl_oct := vl_oct & hex2oct(vl_digits[(2*vl_i) + 1] & vl_digits[2*vl_i]);
+  }
+
+  return(vl_oct)
+}
+
+// 24.008  10.5.4.7
+type enumerated MobileL3_TypeOfNumber
+{
+  unknown(0),
+  internationalNumber(1),
+  nationalNumber(2),
+  networkSpecificNumber(3),
+  dedicatedAccess(4),
+  reserved1(5),
+  reserved2(6),
+  reservedForExtension(7)  
+}
+
+// 24.008  10.5.4.7
+type record MobileL3_CalledPartyBCDNumber
+{
+ NumberPlan              numberingPlanIdentification,
+ MobileL3_TypeOfNumber   typeOfNumber,
+ hexstring               numberDigits 
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_encode_MobileL3_CalledPartyBCDNumber
+// 
+//  Purpose:
+//      Function for encoding MobileL3_CalledPartyBCDNumber type to octetstring
+//      24.008  10.5.4.7
+// 
+//  Parameters:
+//    pl_MobileL3_CalledPartyBCDNumber - *in* <MobileL3_CalledPartyBCDNumber> -
+//
+//  Return Value:
+//    *octetstring* - the converted number in octetstring format
+// 
+//  Errors:
+//    -
+// 
+//  Detailed Comments:
+//   -
+///////////////////////////////////////////////////////////////////////////////
+function f_encode_MobileL3_CalledPartyBCDNumber
+(in MobileL3_CalledPartyBCDNumber pl_MobileL3_CalledPartyBCDNumber) return octetstring 
+{
+  var integer vl_i;
+  var octetstring vl_oct;
+  var hexstring vl_digits := pl_MobileL3_CalledPartyBCDNumber.numberDigits; 
+  var integer vl_size := lengthof(pl_MobileL3_CalledPartyBCDNumber.numberDigits);
+  if((vl_size mod 2) == 1) {    
+    vl_digits :=  vl_digits & 'F'H;
+    vl_size := vl_size + 1;
+  }   
+  
+  vl_oct :=   bit2oct('1'B &   
+              int2bit(enum2int(pl_MobileL3_CalledPartyBCDNumber.typeOfNumber), 3) & 
+              int2bit(enum2int(pl_MobileL3_CalledPartyBCDNumber.numberingPlanIdentification), 4))
+
+  vl_size := vl_size / 2;
+  
+  for (vl_i := 0; vl_i < vl_size; vl_i := vl_i + 1)
+  {
+    vl_oct := vl_oct & hex2oct(vl_digits[(2*vl_i) + 1] & vl_digits[2*vl_i]);
+  }
+  return (vl_oct);
+}
+
+////////////////////////////
+// MIME Base64 (RFC 2045) //
+////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: enc_MIME_Base64
+// 
+//  Purpose:
+//    Encode message to MIME Base64 format (RFC 2045)
+//
+//  Parameters:
+//    p_msg - *in* *octetstring* - message to encode
+// 
+//  Return Value:
+//    charstring - encoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function enc_MIME_Base64(in octetstring p_msg) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: dec_MIME_Base64
+// 
+//  Purpose:
+//    Decode message from MIME Base64 format (RFC 2045)
+//
+//  Parameters:
+//    p_b64 - *in* *charstring* - message to decode
+// 
+//  Return Value:
+//    octetstring - decoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function dec_MIME_Base64(in charstring p_b64) return octetstring;
+
+////////////////////////////
+// LDIF Base64 (RFC 2849) //
+////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: enc_LDIF_Base64
+// 
+//  Purpose:
+//    Encode message to LDIF Base64 format (RFC 2849)
+//
+//  Parameters:
+//    p_msg - *in* *octetstring* - message to encode
+// 
+//  Return Value:
+//    charstring - encoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function enc_LDIF_Base64(in octetstring p_msg) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: dec_LDIF_Base64
+// 
+//  Purpose:
+//    Decode message from LDIF Base64 format (RFC 2849)
+//
+//  Parameters:
+//    p_b64 - *in* *charstring* - message to decode
+// 
+//  Return Value:
+//    octetstring - decoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function dec_LDIF_Base64(in charstring p_b64) return octetstring;
+
+
+//////////////////////////////////////////////////////////
+//  Function: f_encGSM7bit
+//
+//  Purpose:
+//    GSM 7-bit encoding (GSM 03.38)
+//
+//  Parameters:
+//    pl_str - *in* *universal charstring* - USSD string
+//
+//  Return value:
+//    *ocetstring* - encoded string
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////
+function f_encGSM7bit(in universal charstring pl_str) return octetstring {  
+  var integer vl_len, i, v_unichar_code;
+  var bitstring vl_ret :=''B, vl_ret2 := ''B, vl_padstr := ''B, vl_bitstr := ''B;
+
+  for (i := 0; i < lengthof(pl_str); i := i + 1) 
+  {              
+    v_unichar_code := unichar2int(pl_str[i])
+    if( v_unichar_code <= 255 )
+    {
+      if(c_GSM_7_bit_Default_Alphabet_Encoder[v_unichar_code] != ''B)
+      {
+        vl_ret := vl_ret & c_GSM_7_bit_Default_Alphabet_Encoder[v_unichar_code]
+      }
+      else
+      {
+        log("Warning : Invalid character ", pl_str[i], " will be encoded as space!")
+	vl_ret := vl_ret & '0000010'B;
+      }
+    } 
+    else if ((v_unichar_code >= 915) and (v_unichar_code <= 937))  // greek 
+    {            
+      if(c_GSM_7_bit_Greek_Encoder[v_unichar_code-915] != ''B)
+      {   
+        vl_ret := vl_ret & c_GSM_7_bit_Greek_Encoder[v_unichar_code-915] 
+      }
+      else
+      {
+	log("Warning : Invalid character ", pl_str[i], " will be encoded as space!")
+	vl_ret := vl_ret & '0000010'B;
+      }    
+    }
+    else if (v_unichar_code == 8364)    // euro
+    {      
+      vl_ret := vl_ret & '11011001010011'B
+    }
+    else
+    {
+      log("Warning : Invalid character ", pl_str[i], " will be encoded as space!");
+      vl_ret := vl_ret & '0000010'B;
+    }        
+  }
+
+  if(lengthof(vl_ret) mod 8 != 1) {
+    vl_padstr := int2bit(0, 8 - lengthof(vl_ret) mod 8); 
+  } else {
+    vl_padstr := '1011000'B;
+  }
+
+  vl_ret := vl_ret & vl_padstr;
+  vl_len := lengthof(vl_ret)/8;
+   
+
+  for (i := 0; i < vl_len; i := i + 1) 
+  {
+    vl_bitstr := substr(vl_ret, i*8, 8);   
+    vl_ret2 := vl_ret2 & vl_bitstr[7] & vl_bitstr[6] & vl_bitstr[5] & vl_bitstr[4] & vl_bitstr[3] & vl_bitstr[2] & vl_bitstr[1] & vl_bitstr[0];
+  } 
+
+  return bit2oct(vl_ret2);
+}
+
+//////////////////////////////////////////////////////////
+//  Function: f_decGSM7bit
+//
+//  Purpose:
+//    GSM 7-bit decoding (GSM 03.38)
+//
+//  Parameters:
+//    pl_gsm7bit - *in* *ocetstring* - GSM 7bit encoded string
+//
+//  Return value:
+//    *universal charstring* - decoded string
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////
+function f_decGSM7bit(in octetstring pl_gsm7bit) return universal charstring {  
+  var bitstring vl_7bitstr := oct2bit(pl_gsm7bit);
+  var bitstring vl_reversed := ''B;
+  var bitstring vl_8bits := ''B;
+  var bitstring vl_7bits := ''B;
+  var universal charstring vl_ret := "";
+  var universal charstring vl_char := "";
+  var integer vl_index;
+
+  for (var integer i := 0; i < lengthof(vl_7bitstr); i := i + 8) {
+    vl_8bits := substr(vl_7bitstr, i, 8);
+    vl_reversed := vl_reversed & vl_8bits[7] & vl_8bits[6] & vl_8bits[5] & vl_8bits[4] & vl_8bits[3] & vl_8bits[2] & vl_8bits[1] & vl_8bits[0];
+  } 
+
+  var integer vl_septets := lengthof(vl_reversed) / 7;
+
+  for (var integer i := 0; i < vl_septets; i := i + 1) {
+    vl_7bits := substr(vl_reversed, i * 7, 7);
+    vl_index := bit2int('0'B & vl_7bits[6] & vl_7bits[5] & vl_7bits[4] & vl_7bits[3] & vl_7bits[2] & vl_7bits[1] & vl_7bits[0]);
+    
+    if(vl_index < sizeof(c_GSM_7_bit_Default_Alphabet_Decoder)) {
+      if (vl_index != 27)
+      {    
+        vl_char := c_GSM_7_bit_Default_Alphabet_Decoder[vl_index];
+      } 
+      else // extension character
+      {
+        vl_7bits := substr(vl_reversed, (i+1) * 7, 7);
+        vl_index := bit2int('0'B & vl_7bits[6] & vl_7bits[5] & vl_7bits[4] & vl_7bits[3] & vl_7bits[2] & vl_7bits[1] & vl_7bits[0]); 
+        vl_char := c_GSM_7_bit_Default_Alphabet_Extensions_Decoder[vl_index];
+	if (vl_char == "")
+	{
+	  vl_char := " ";
+	  log("Warning : Unknown extension character ",vl_index," will be decoded as space!")  
+	}	
+	i:= i+1;
+      }   
+    } 
+   
+    vl_ret := vl_ret & vl_char;
+  } 
+
+  return vl_ret;
+}
+
+///////////////////////////////////////////
+// Constants needed for GSM 7-bit encoding
+///////////////////////////////////////////
+type record of bitstring BitstringList;
+
+const BitstringList c_GSM_7_bit_Default_Alphabet_Encoder := {
+''B,''B,''B,''B,''B,''B,''B,''B,''B,''B,  // 0-9
+'0101000'B,''B,'11011000101000'B,'1011000'B,''B,''B,''B,''B,''B,''B,  // 10-19
+''B,''B,''B,''B,''B,''B,''B,''B,''B,''B,  // 20-29
+''B,''B,'0000010'B,'1000010'B,'0100010'B,'1100010'B,'0100000'B,'1010010'B,'0110010'B,'1110010'B,  // 30-39
+'0001010'B,'1001010'B,'0101010'B,'1101010'B,'0011010'B,'1011010'B,'0111010'B,'1111010'B,'0000110'B,'1000110'B,  // 40-49
+'0100110'B,'1100110'B,'0010110'B,'1010110'B,'0110110'B,'1110110'B,'0001110'B,'1001110'B,'0101110'B,'1101110'B,  // 50-59
+'0011110'B,'1011110'B,'0111110'B,'1111110'B,'0000000'B,'1000001'B,'0100001'B,'1100001'B,'0010001'B,'1010001'B,  // 60-69
+'0110001'B,'1110001'B,'0001001'B,'1001001'B,'0101001'B,'1101001'B,'0011001'B,'1011001'B,'0111001'B,'1111001'B,  // 70-79
+'0000101'B,'1000101'B,'0100101'B,'1100101'B,'0010101'B,'1010101'B,'0110101'B,'1110101'B,'0001101'B,'1001101'B,  // 80-89
+'0101101'B,'11011000011110'B,'11011001111010'B,'11011000111110'B,'11011000010100'B,'1000100'B,''B,'1000011'B,'0100011'B,'1100011'B,  // 90-99
+'0010011'B,'1010011'B,'0110011'B,'1110011'B,'0001011'B,'1001011'B,'0101011'B,'1101011'B,'0011011'B,'1011011'B,  //100-109
+'0111011'B,'1111011'B,'0000111'B,'1000111'B,'0100111'B,'1100111'B,'0010111'B,'1010111'B,'0110111'B,'1110111'B, //110-119
+'0001111'B,'1001111'B,'0101111'B,'11011000001010'B,'11011000000001'B,'11011001001010'B,'11011001011110'B,''B,''B,''B,  //120-129
+''B,''B,''B,''B,''B,''B,''B,''B,''B,''B,  //130-139
+''B,''B,''B,''B,''B,''B,''B,''B,''B,''B,  //140-149
+''B,''B,''B,''B,''B,''B,''B,''B,''B,''B,  //150-159
+''B,'0010000'B,''B,'1000000'B,'0010010'B,'1100000'B,''B,'1111101'B,''B,''B,  //160-169
+''B,''B,''B,''B,''B,''B,''B,''B,''B,''B,  //170-179
+''B,''B,''B,''B,''B,''B,''B,''B,''B,''B,  //180-189
+''B,'0000011'B,''B,''B,''B,''B,'1101101'B,'0111000'B,'0011100'B,'1001000'B,  //190-199
+''B,'1111100'B,''B,''B,''B,''B,''B,''B,''B,'1011101'B,  //200-209
+''B,''B,''B,''B,'0011101'B,''B,'1101000'B,''B,''B,''B,  //210-219
+'0111101'B,''B,''B,'0111100'B,'1111111'B,''B,''B,''B,'1101111'B,'1111000'B,  //220-229
+'1011100'B,''B,'0010000'B,'1010000'B,''B,''B,'1110000'B,''B,''B,''B,  //230-239
+''B,'1011111'B,'0001000'B,''B,''B,''B,'0011111'B,''B,'0011000'B,'0110000'B,  //240-249
+''B,''B,'0111111'B,''B,''B,''B                   //250-255
+}
+
+const BitstringList c_GSM_7_bit_Greek_Encoder :=
+{
+  '1100100'B,   //gamma
+  '0000100'B,   //delta
+  ''B,''B,''B,
+  '1001100'B,   //theta
+  ''B,''B,
+  '0010100'B,   //lambda
+  ''B,''B,
+  '0101100'B,   //xi
+  ''B,
+  '0110100'B,   //pi
+  ''B,''B,
+  '0001100'B,   //sigma
+  ''B,''B,
+  '0100100'B,   //phi
+  ''B,
+  '1110100'B,   //psi
+  '1010100'B    //omega
+}
+
+
+type record of universal charstring Extension_List;
+  
+const Extension_List c_GSM_7_bit_Default_Alphabet_Extensions_Decoder:= 
+ {  "","","","","","","","","","",       //0-9
+    "\f","","","","","","","","","",     //10-19
+    "^","","","","","","","","","",      //20-29
+    "","","","","","","","","","",       //30-39
+    "{","}","","","","","","\\","","",   //40-49
+    "","","","","","","","","","",       //50-59
+    "[","~","]", "","|", "","","","","", //60-69
+    "","","","","","","","","","",       //70-79
+    "","","","","","","","","","",       //80-89
+    "","","","","","","","","","",       //90-99 
+    "",char(0,0,32,172), "","","","","","","","",  //100-109
+    "","","","","","","","","","",       //110-119
+    "","","","","","","",""             //120-127
+ } 
+
+
+type record of universal charstring UnicharList;
+
+const UnicharList c_GSM_7_bit_Default_Alphabet_Decoder :=
+{
+"@", "£", "$","¥", "è", "é", "ù", "ì", "ò", "Ç",
+"\n", "Ø",  "ø",  "\r",  "Å",  "å", char(0,0,3,148),  "_", char(0,0,3,166),  char(0,0,3,147),
+char(0,0,3,155), char(0,0,3,169), char(0,0,3,160), char(0,0,3,168), char(0,0,3,163), char(0,0,3,152), char(0,0,3,158), "27 extension", "Æ", "æ",
+"ß","É"," ","!","\"","#","¤","%","&","''", 
+"(", ")", "*", "+", ",", "-", ".", "/", "0", "1",
+"2", "3", "4","5","6","7","8","9",":",";",
+"<", "=", ">", "?", "¡", "A", "B", "C", "D", "E", 
+"F", "G", "H", "I", "J", "K", "L", "M", "N", "O", 
+"P","Q","R","S","T","U","V","W","X","Y",
+"Z","Ä","Ö","Ñ","Ü","§","¿","a","b","c",
+"d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
+"n", "o","p","q","r","s","t","u","v","w",
+"x","y","z","ä","ö","ñ","ü","à"
+}
+
+// ISO10646
+// http://www.unicode.org/
+// char(0,0,3,148) greek capital letter delta
+// char(0,0,3,166) greek capital letter phi
+// char(0,0,3,147) greek capital letter gamma
+// char(0,0,3,155) greek capital letter lambda
+// char(0,0,3,169) greek capital letter omega
+// char(0,0,3,160) greek capital letter pi
+// char(0,0,3,168) greek capital letter psi
+// char(0,0,3,163) greek capital letter sigma
+// char(0,0,3,152) greek capital letter theta
+// char(0,0,3,158) greek capital letter xi
+// char(0,0,32,172) euro sign
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_is_TBCD
+//
+//  Purpose:
+//    Function to check if a charstring contains only hex digits
+//
+//  Parameters:
+//    pl_number - *in* *charstring* - string to check
+//
+//  Return Value:
+//    *boolean* - result of check
+//
+//  Errors:
+//    -
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_is_TBCD(in charstring pl_number) return boolean
+{
+  var integer vl_iterations := lengthof(pl_number);
+  for (var integer i := 0; i < vl_iterations; i := i + 1)
+  {
+    select (pl_number[i])
+    {
+      case ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F") {}
+      case else { return false;}
+    }
+   }
+  return true;
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//  Function: f_enc_TBCD
+// 
+//  Purpose:
+//    Encode charstring to TBCD
+//
+//  Parameters:
+//    pl_char - *in* *charstring* - message to encode
+// 
+//  Return Value:
+//    octetstring - TBCD encoding
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_enc_TBCD(in charstring pl_char) return octetstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_dec_TBCD
+// 
+//  Purpose:
+//    Decode octetstring from TBCD encoding
+//
+//  Parameters:
+//    pl_oct - *in* *octetstring* - message to decode
+// 
+//  Return Value:
+//    charstring - decoded message
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_dec_TBCD(in octetstring pl_oct) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_enc_TBCD_hex
+//
+//  Purpose:
+//    This function converts the hexstring into TBCD-String format.
+//
+//  Parameters:
+//    pl_hex - *hexstring* - phone number
+//
+//  Return Value:
+//    *octetstring* - Input converted into TBCD-String format
+//
+///////////////////////////////////////////////////////////////////////////////
+public function f_enc_TBCD_hex(in hexstring pl_hex) return octetstring
+{
+  var integer vl_size:= lengthof(pl_hex);
+  if((vl_size mod 2) == 1) {
+    pl_hex := pl_hex & 'F'H;
+    vl_size := vl_size + 1;
+  }
+
+  var integer vl_i;
+  var octetstring vl_oct := ''O;
+
+  for (vl_i := 0; vl_i < vl_size; vl_i := vl_i + 2) {
+    vl_oct := vl_oct & hex2oct(pl_hex[vl_i + 1] & pl_hex[vl_i]);
+  }
+
+  return vl_oct;
+}
+
+} with {extension "version R22B"}
diff --git a/src/TCCEnv.cc b/src/TCCEnv.cc
new file mode 100644
index 0000000..b3cd96b
--- /dev/null
+++ b/src/TCCEnv.cc
@@ -0,0 +1,95 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCEnv.cc
+//  Description:        TCC Useful Functions: Environment Handling Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2008-01-18
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <stdlib.h>
+#include "memory.h"
+#include <string.h>
+#include "TCCEnv_Functions.hh"
+
+namespace TCCEnv__Functions {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__GetEnv
+// 
+//  Purpose:
+//    Return the environment variable specified via p_env_name
+//
+//  Parameters:
+//    p__env__name - *in* *charstring* - name of the environment variable
+// 
+//  Return Value:
+//    charstring - value of the environment variable
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__GetEnv(const CHARSTRING& p__env__name)
+{
+  const char *val = getenv((const char *)p__env__name);
+  if(!val)return CHARSTRING("");
+  else return CHARSTRING(val);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__PutEnv
+// 
+//  Purpose:
+//    Set the environment variable p_env_name to p_env_value.
+//
+//  Parameters:
+//    p__env__name - *in* *charstring* - name of the environment variable
+//    p__env__value - *in* *charstring* - value of the environment variable
+// 
+//  Return Value:
+//    boolean - true if set of environment variable was successful, false else
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+BOOLEAN f__PutEnv(const CHARSTRING& p__env__name,
+  const CHARSTRING& p__env__value)
+{
+  if(p__env__name.lengthof()) {
+    char *env = 
+        mprintf("%s=%s", (const char*)p__env__name, (const char*)p__env__value);    
+        
+    int result = putenv(env);
+    
+    if(result) {
+      TTCN_warning("putenv failed with error code %d.", result);
+      return BOOLEAN(FALSE);
+    }
+  }
+  return BOOLEAN(TRUE);
+}
+
+/*INTEGER f__UnsetEnv(const CHARSTRING& p__env__name)
+{
+  return INTEGER(unsetenv((const char *)p__env__name));
+}*/
+
+}//namespace
diff --git a/src/TCCEnv_Functions.ttcn b/src/TCCEnv_Functions.ttcn
new file mode 100644
index 0000000..355354c
--- /dev/null
+++ b/src/TCCEnv_Functions.ttcn
@@ -0,0 +1,82 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCEnv_Functions.ttcn
+//  Description:        TCC Useful Functions: Environment Handling Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2008-01-18
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCEnv_Functions
+// 
+//  Purpose:
+//    This module supports handling of environment e.g. environment variable
+//    operations
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCEnv_Functions {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_GetEnv
+// 
+//  Purpose:
+//    Return the environment variable specified via p_env_name
+//
+//  Parameters:
+//    p_env_name - *in* *charstring* - name of the environment variable
+// 
+//  Return Value:
+//    charstring - value of the environment variable
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_GetEnv(in charstring p_env_name) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_PutEnv
+// 
+//  Purpose:
+//    Set the environment variable p_env_name to p_env_value.
+//
+//  Parameters:
+//    p_env_name - *in* *charstring* - name of the environment variable
+//    p_env_value - *in* *charstring* - value of the environment variable
+// 
+//  Return Value:
+//    boolean - true if set of environment variable was successful, false else
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_PutEnv(in charstring p_env_name, in charstring p_env_value)
+return boolean;
+
+//external function f_UnsetEnv(in charstring p_env_name) return integer;
+
+}
diff --git a/src/TCCFileIO.cc b/src/TCCFileIO.cc
new file mode 100644
index 0000000..7197eca
--- /dev/null
+++ b/src/TCCFileIO.cc
@@ -0,0 +1,1302 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCFileIO.cc
+//  Description:        TCC Useful Functions: FileIO Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2009-04-09
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCFileIO_Functions.hh"
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/file.h>
+#include <string.h>
+#include <strings.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+
+#include <map>
+#include <string>
+#include <sstream>
+
+
+#define BUF_SIZE 512
+
+namespace TCCFileIO__Functions
+{
+
+/* http://www-h.eng.cam.ac.uk/help/tpl/unix/HP/bsd_to_hpux.html contains more
+   possible solutions.  */
+#if defined (SOLARIS) || defined (SOLARIS8)
+#define LOCK_SH 1
+#define LOCK_EX 2
+#define LOCK_NB 4
+#define LOCK_UN 8
+
+int flock (int fd, int op)
+{
+  int i;
+  switch (op)
+    {
+      case LOCK_SH:
+      case LOCK_EX:
+        i = lockf (fd, F_LOCK, 0);
+        break;
+      case LOCK_SH | LOCK_NB:
+      case LOCK_EX | LOCK_NB:
+        i = lockf (fd, F_TLOCK, 0);
+        if (i == -1)
+          if (errno == EAGAIN || errno == EACCES)
+            errno = EWOULDBLOCK;
+        break;
+      case LOCK_UN:
+        i = lockf (fd, F_ULOCK, 0);
+        break;
+      default:
+        i = -1;
+        errno = EINVAL;
+        break;
+    }
+  return i;
+}
+#endif
+
+#ifdef ENABLE_CHECKING
+/* For storing the opened files globally.  */
+static std::map<int, std::string> opened_files;
+#endif
+void f__FIO__warning (const char *pl__msg, ...)
+  __attribute__((format(printf, 1, 2)));
+void f__FIO__error (const char *pl__msg, ...)
+  __attribute__((format(printf, 1, 2)));
+
+#ifdef VERBOSE_DEBUG
+void f__FIO__warning (const char *pl__msg, ...)
+{
+  TTCN_Logger::begin_event (TTCN_WARNING);
+  TTCN_Logger::log_event ("TCCFileIO: ");
+  va_list ap;
+  va_start (ap, pl__msg);
+  TTCN_Logger::log_event_va_list (pl__msg, ap);
+  va_end (ap);
+  TTCN_Logger::end_event ();
+}
+
+void f__FIO__error (const char *pl__msg, ...)
+{
+  TTCN_Logger::begin_event (TTCN_ERROR);
+  TTCN_Logger::log_event ("TCCFileIO: ");
+  va_list ap;
+  va_start (ap, pl__msg);
+  TTCN_Logger::log_event_va_list (pl__msg, ap);
+  va_end (ap);
+  TTCN_Logger::end_event ();
+}
+#else
+void f__FIO__warning (const char */*pl__msg*/, ...)
+{
+}
+
+void f__FIO__error (const char */*pl__msg*/, ...)
+{
+}
+#endif
+
+/* Function: f__FIO__get__error__string
+
+   Returns the actual error message.
+
+   Returns:
+   The actual error message as a string.  */
+CHARSTRING f__FIO__get__error__string ()
+{
+  return CHARSTRING (strerror (errno));
+}
+
+/* Function: f__FIO__get__error__code
+
+   Returns the actual error code.
+
+   Returns:
+   The actual error message as a string.  */
+INTEGER f__FIO__get__error__code ()
+{
+  return INTEGER (errno);
+}
+
+/* Function: f__FIO__realize__error
+
+   Builds the error message.  (For internal use only.)
+
+   Returns:
+   Always -1.  */
+INTEGER f__FIO__realize__error (const char* pl__func,
+  const char* pl__msg, const char* pl__file,
+  const int pl__line)
+{
+  f__FIO__error ("%s:%s:%s(%s:%i)",pl__func,pl__msg,strerror (errno),pl__file,pl__line);
+  /* Always return -1 on error.  */
+  return INTEGER (-1);
+}
+
+#ifdef ENABLE_CHECKING
+/* Function: f__FIO__opened
+
+   Checks if the file with the given name is already opened.  This function
+   runs in linear time.  (For internal use only.)
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   The file descriptor of the file or -1 if the file is not yet opened.  */
+INTEGER f__FIO__opened (const CHARSTRING& pl__name)
+{
+  /* Linear time.  */
+  for (std::map<int, std::string>::const_iterator iter =
+    opened_files.begin (); iter != opened_files.end (); iter++)
+    {
+      if ((iter->second).c_str () == pl__name)
+        return INTEGER (iter->first);
+    }
+  return INTEGER (-1);
+}
+
+/* Function: f__FIO__opened
+
+   Checks if there is a file opened with the given file descriptor.  This
+   function runs in logarithmic time.  (For internal use only.)
+
+   Parameters:
+     FD - The descriptor for the file.
+
+   Returns:
+   The name of the file or an empty string if the file is not yet opened.  */
+CHARSTRING f__FIO__opened (const INTEGER& pl__fd)
+{
+  /* Logarithmic time.  */
+  std::map<int, std::string>::const_iterator iter =
+    opened_files.find (pl__fd);
+  return (iter != opened_files.end () ?
+    CHARSTRING ((iter->second).c_str ()) : CHARSTRING ());
+}
+#endif
+
+/* Function: f__FIO__open
+
+   Opens a file with the given name in the given mode.  It creates the file if
+   it doesn't exist.  (For internal use only.)
+
+   Parameters:
+     NAME - The name of the file.
+     FLAGS - The way to open the file.
+
+   Returns:
+   The file descriptor for the file or -1 on error.  The error message is
+   available through the f__FIO__get__error function.  */
+INTEGER f__FIO__open (const CHARSTRING& pl__name, const int pl__flags)
+{
+#ifdef ENABLE_CHECKING
+  if (!(f__FIO__opened (pl__name) < 0))
+    return f__FIO__realize__error ("f__FIO__open",
+      "The file is already opened", __FILE__, __LINE__);
+#endif
+  int fd = open (pl__name, pl__flags, S_IRUSR | S_IWUSR | S_IRGRP |
+    S_IROTH);
+  if (fd < 0)
+    return f__FIO__realize__error ("f__FIO__open", "Cannot open file",
+      __FILE__, __LINE__);
+#ifdef ENABLE_CHECKING
+  opened_files[fd] = (const char *) pl__name;
+#endif
+  return INTEGER (fd);
+}
+
+/* Function: f__FIO__open__rdonly
+
+   A wrapper function for f__FIO__open.  It opens the file with the given name
+   for reading only.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   What f__FIO__open returns.  */
+INTEGER f__FIO__open__rdonly (const CHARSTRING& pl__name)
+{
+  return f__FIO__open (pl__name, O_RDONLY);
+}
+
+/* Function: f__FIO__open__append__wronly
+
+   A wrapper function for f__FIO__open.  It opens the file with the given name
+   for writing only.  If the file already exists it is opened in appending
+   mode.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   What f__FIO__open returns.  */
+INTEGER f__FIO__open__append__wronly (const CHARSTRING& pl__name)
+{
+  return f__FIO__open (pl__name, O_APPEND | O_WRONLY | O_CREAT);
+}
+
+/* Function: f__FIO__open__append__rdwr
+
+   A wrapper function for f__FIO__open.  It opens the file with the given name
+   for reading and writing.  If the file already exists it is opened in
+   appending mode.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   What f__FIO__open returns.  */
+INTEGER f__FIO__open__append__rdwr (const CHARSTRING& pl__name)
+{
+  return f__FIO__open (pl__name, O_APPEND | O_RDWR | O_CREAT);
+}
+
+/* Function: f__FIO__open__trunc__wronly
+
+   A wrapper function for f__FIO__open.  It opens the file with the given name
+   for writing only.  If the file was not empty it is truncated.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   What f__FIO__open returns.  */
+INTEGER f__FIO__open__trunc__wronly (const CHARSTRING& pl__name)
+{
+  return f__FIO__open (pl__name, O_TRUNC | O_WRONLY | O_CREAT);
+}
+
+/* Function: f__FIO__open__trunc__rdwr
+
+   A wrapper function for f__FIO__open.  It opens the file with the given name
+   for reading and writing.  If the file was not empty it is truncated.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   What f__FIO__open returns.  */
+INTEGER f__FIO__open__trunc__rdwr (const CHARSTRING& pl__name)
+{
+  return f__FIO__open (pl__name, O_TRUNC | O_RDWR | O_CREAT);
+}
+
+/* Function: f__FIO__close
+
+   Closes a file associated with the given file descriptor.
+
+   Parameters:
+     FD - The file descriptor to close.
+
+   Returns:
+   What the POSIX function close returns.  */
+INTEGER f__FIO__close (const INTEGER& pl__fd)
+{
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::iterator iter = opened_files.find (pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__close", "The file is not opened",
+      __FILE__, __LINE__);
+  opened_files.erase (iter);
+#endif
+  return close (pl__fd);
+}
+
+/* Function: f__FIO__open__append__wronly__excl
+
+   A wrapper function for f__FIO__open.  It opens the file with the given name
+   for writing only in exclusive mode.  If the file already exists it is
+   opened in appending mode.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   What f__FIO__open returns or -1 if the file cannot be locked.  */
+INTEGER f__FIO__open__append__wronly__excl (const CHARSTRING& pl__name)
+{
+  int fd = f__FIO__open (pl__name, O_APPEND | O_WRONLY | O_CREAT);
+  if (!(fd < 0))
+    if (flock (fd, LOCK_EX | LOCK_NB) < 0)
+      {
+        f__FIO__close (fd);
+        return f__FIO__realize__error ("f__FIO__open__append__wronly__excl",
+          "Cannot lock file", __FILE__, __LINE__);
+      }
+  return fd;
+}
+
+/* Function: f__FIO__open__append__rdwr__excl
+
+   A wrapper function for f__FIO__open.  It opens the file with the given name
+   for reading and writing in exclusive mode.  If the file already exists it
+   is opened in appending mode.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   What f__FIO__open returns or -1 if the file cannot be locked.  */
+INTEGER f__FIO__open__append__rdwr__excl (const CHARSTRING& pl__name)
+{
+  int fd = f__FIO__open (pl__name, O_APPEND | O_RDWR | O_CREAT);
+  if (!(fd < 0))
+    if (flock (fd, LOCK_EX | LOCK_NB) < 0)
+      {
+        f__FIO__close (fd);
+        return f__FIO__realize__error ("f__FIO__open__append__rdwr__excl",
+          "Cannot lock file", __FILE__, __LINE__);
+      }
+  return fd;
+}
+
+/* Function: f__FIO__open__trunc__wronly__excl
+
+   A wrapper function for f__FIO__open.  It opens the file with the given name
+   for writing only in exclusive mode.  If the file was not empty it is
+   truncated.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   What f__FIO__open returns or -1 if the file cannot be locked.  */
+INTEGER f__FIO__open__trunc__wronly__excl (const CHARSTRING& pl__name)
+{
+  int fd = f__FIO__open (pl__name, O_TRUNC | O_WRONLY | O_CREAT);
+  if (!(fd < 0))
+    if (flock (fd, LOCK_EX | LOCK_NB) < 0)
+      {
+        f__FIO__close (fd);
+        return f__FIO__realize__error ("f__FIO__open__trunc__wronly__excl",
+          "Cannot lock file", __FILE__, __LINE__);
+      }
+  return fd;
+}
+
+/* Function: f__FIO__open__trunc__rdwr__excl
+
+   A wrapper function for f__FIO__open.  It opens the file with the given name
+   for reading and writing in exclusive mode.  If the file was not empty it is
+   truncated.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   What f__FIO__open returns or -1 if the file cannot be locked.  */
+INTEGER f__FIO__open__trunc__rdwr__excl (const CHARSTRING& pl__name)
+{
+  int fd = f__FIO__open (pl__name, O_TRUNC | O_RDWR | O_CREAT);
+  if (!(fd < 0))
+    if (flock (fd, LOCK_EX | LOCK_NB) < 0)
+      {
+        f__FIO__close (fd);
+        return f__FIO__realize__error ("f__FIO__open__trunc__rdwr__excl",
+          "Cannot lock file", __FILE__, __LINE__);
+      }
+  return fd;
+}
+
+/* Function:  f__FIO__seek__home
+
+   Moves the file pointer to the beginning of the file.
+
+   Parameters:
+     FD - A file descriptor.
+
+   Returns:
+   What the POSIX function lseek returns.  */
+INTEGER f__FIO__seek__home (const INTEGER& pl__fd)
+{
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::const_iterator iter =
+    opened_files.find ((int) pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__seek__home",
+      "The file is not opened", __FILE__, __LINE__);
+#endif
+  return lseek (pl__fd, 0, SEEK_SET);
+}
+
+/* Function: f__FIO__seek__end
+
+   Moves the file pointer to the end of the file.
+
+   Parameters:
+     FD - A file descriptor.
+
+   Returns:
+   What the POSIX function lseek returns.  */
+INTEGER f__FIO__seek__end (const INTEGER& pl__fd)
+{
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::const_iterator iter =
+    opened_files.find ((int) pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__seek__end",
+      "The file is not opened", __FILE__, __LINE__);
+#endif
+  return lseek (pl__fd, 0, SEEK_END);
+}
+
+/* Function: f__FIO__seek__forward
+
+   Moves the file pointer forward with a given number of bytes from the
+   current position.
+
+   Parameters:
+     FD - A file descriptor.
+     BYTES - The number of bytes.
+
+   Returns:
+   What the POSIX function lseek returns.  */
+INTEGER f__FIO__seek__forward (const INTEGER& pl__fd,
+  const INTEGER& pl__bytes)
+{
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::const_iterator iter =
+    opened_files.find ((int) pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__seek__forward",
+      "The file is not opened", __FILE__, __LINE__);
+#endif
+  return lseek (pl__fd, pl__bytes, SEEK_CUR);
+}
+
+/* Function: f__FIO__seek__backward
+
+   Moves the file pointer backward with a given number of bytes from the
+   current position.
+
+   Parameters:
+     FD - A file descriptor.
+     BYTES - The number of bytes.
+
+   Returns:
+   What the POSIX function lseek returns.  */
+INTEGER f__FIO__seek__backward (const INTEGER& pl__fd,
+  const INTEGER& pl__bytes)
+{
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::const_iterator iter =
+    opened_files.find ((int) pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__seek__backward",
+      "The file is not opened", __FILE__, __LINE__);
+#endif
+  return lseek (pl__fd, -pl__bytes, SEEK_CUR);
+}
+
+/* Function: f__FIO__flush
+
+   Transfers ("flushes") all modified in-core data of the file referred to by
+   the file descriptor to the disk device.
+
+   Parameters:
+     FD - A file descriptor.
+
+   Returns:
+   What fsync returns.  */
+INTEGER f__FIO__flush (const INTEGER& pl__fd)
+{
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::const_iterator iter =
+    opened_files.find ((int) pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__flush", "The file is not opened",
+      __FILE__, __LINE__);
+#endif
+  return fsync ((int) pl__fd);
+}
+
+/* Function: f__FIO__write
+
+   Writes the given data to the file associated with the given file
+   descriptor.  It works with textual and binary data.  (For internal use
+   only.)
+
+   Parameters:
+     FD - A file descriptor.
+     DATA - The data to write to the file.
+
+   Returns:
+   The number of bytes written or -1 on error.  */
+template <class T>
+INTEGER f__FIO__write (const INTEGER& pl__fd, const T& pl__data,
+  bool pl__flush = false)
+{
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::const_iterator iter =
+    opened_files.find ((int) pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__write", "The file is not opened",
+      __FILE__, __LINE__);
+#endif
+  int bytes = write (pl__fd, (const void *) pl__data, pl__data.lengthof ());
+  if (bytes < 0)
+    return f__FIO__realize__error ("f__FIO__write", "Cannot write to file",
+      __FILE__, __LINE__);
+  if (pl__flush)
+    f__FIO__flush (pl__fd);
+  /* We can safely return here.  */
+  return INTEGER (bytes);
+}
+
+/* Function: f__FIO__write__text
+
+   A wrapper function for f__FIO__write.  It writes textual data.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The text to write to the file.
+
+   Returns:
+   What f__FIO__write returns.  */
+INTEGER f__FIO__write__text (const INTEGER& pl__fd,
+  const CHARSTRING& pl__text)
+{
+  return f__FIO__write<CHARSTRING> (pl__fd, pl__text);
+}
+
+/* Function: f__FIO__write__text__flush
+
+   A wrapper function for f__FIO__write.  It writes textual data and calls
+   f__FIO__flush.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The text to write to the file.
+
+   Returns:
+   What f__FIO__write returns.  */
+INTEGER f__FIO__write__text__flush (const INTEGER& pl__fd,
+  const CHARSTRING& pl__text)
+{
+  return f__FIO__write<CHARSTRING> (pl__fd, pl__text, true);
+}
+
+/* Function: f__FIO__write__data
+
+   A wrapper function for f__FIO__write.  It writes binary data.
+
+   Parameters:
+     FD - A file descriptor.
+     DATA - The data to write to the file.
+
+   Returns:
+   What f__FIO__write returns.  */
+INTEGER f__FIO__write__data (const INTEGER& pl__fd,
+  const OCTETSTRING& pl__data)
+{
+  return f__FIO__write<OCTETSTRING> (pl__fd, pl__data);
+}
+
+/* Function: f__FIO__write__data__flush
+
+   A wrapper function for f__FIO__write.  It writes binary data and calls
+   f__FIO__flush.
+
+   Parameters:
+     FD - A file descriptor.
+     DATA - The data to write to the file.
+
+   Returns:
+   What f__FIO__write returns.  */
+INTEGER f__FIO__write__data__flush (const INTEGER& pl__fd,
+  const OCTETSTRING& pl__data)
+{
+  return f__FIO__write<OCTETSTRING> (pl__fd, pl__data, true);
+}
+
+/* Function: f__FIO__read
+
+   Reads a given number of bytes to a given buffer from a file associated with
+   the given file descriptor.  (For internal use only.)
+
+   Parameters:
+     FD - A file descriptor.
+     DATA - The buffer where the data will be stored.
+     BYTES - The number of bytes to read.
+
+   Returns:
+   The number of bytes read or -1 if the requested number of bytes couldn't be
+   read.  */
+template <class T, class U>
+INTEGER f__FIO__read (const INTEGER& pl__fd, T& pl__data,
+  const INTEGER& pl__bytes)
+{
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::iterator iter = opened_files.find (pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__read", "The file is not opened",
+      __FILE__, __LINE__);
+#endif
+  int bytes = 0;
+  U *buf = (U *) Malloc (sizeof (U) * ((int) pl__bytes));
+  memset (buf, 0, sizeof (U) * ((int) pl__bytes));
+  bytes = read (pl__fd, buf, pl__bytes);
+  if (bytes < 0)
+    {
+      Free (buf);
+      return f__FIO__realize__error ("f__FIO__read", "Read error", __FILE__,
+        __LINE__);
+    }
+  pl__data = T (bytes, buf);
+  Free (buf);
+  return INTEGER (bytes);
+}
+
+/* Function: f__FIO__read__text
+
+   A wrapper function for f__FIO__read.  It reads textual data.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The buffer for storing the text.
+     BYTES - The number of bytes to read.
+
+   Returns:
+   What f__FIO__read returns.  */
+INTEGER f__FIO__read__text (const INTEGER& pl__fd, CHARSTRING& pl__text,
+  const INTEGER& pl__bytes)
+{
+  return f__FIO__read<CHARSTRING, char> (pl__fd, pl__text, pl__bytes);
+}
+
+/* Function: f__FIO__read__data
+
+   A wrapper function for f__FIO__read.  It reads binary data.
+
+   Parameters:
+     FD - A file descriptor.
+     DATA - The buffer for storing the data.
+     BYTES - The number of bytes to read.
+
+   Returns:
+   What f__FIO__read returns.  */
+INTEGER f__FIO__read__data (const INTEGER& pl__fd, OCTETSTRING& pl__data,
+  const INTEGER& pl__bytes)
+{
+  return f__FIO__read<OCTETSTRING, unsigned char> (pl__fd, pl__data,
+    pl__bytes);
+}
+
+/* Function: f__FIO__read__text__until
+
+   It reads textual data until a given pattern is matched.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The buffer for storing the text.
+     SEPARATOR - The separator pattern.
+
+   Returns:
+   The number of bytes read from the file, not including the delimiter.  In
+   case of error it returns -1.  */
+INTEGER f__FIO__read__text__until (const INTEGER& pl__fd,
+  CHARSTRING& pl__text, const CHARSTRING& pl__separator)
+{
+  char *buf = NULL; /* For the whole line.  */
+  char *out = NULL;
+  char buf_tmp[BUF_SIZE + 1]; /* For reading chunks.  */
+  unsigned int buf_size = BUF_SIZE << 1;
+  unsigned int byte_num = 0;
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::iterator iter = opened_files.find (pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__read__text__until",
+      "The file is not opened", __FILE__, __LINE__);
+#endif
+  while (true)
+    {
+      bzero (buf_tmp, BUF_SIZE);
+      /* Try to read BUF_SIZE bytes.  */
+      int bytes = read (pl__fd, buf_tmp, BUF_SIZE);
+      buf_tmp[bytes] = '\0'; /* Never forget.  */
+      if (bytes < 0)
+        {
+          if (buf)
+            Free (buf);
+          return f__FIO__realize__error ("f__FIO__read__text__until",
+            "Read error", __FILE__, __LINE__);
+        }
+      else if (bytes == 0)
+        {
+          if (buf != NULL)
+            Free (buf);
+          return f__FIO__realize__error ("f__FIO__read__text__until",
+            "End of file", __FILE__, __LINE__);
+        }
+      if (buf == NULL || byte_num + bytes >= buf_size)
+	{
+	  int new_size = 2 * buf_size;
+	  char *new_buf = (char *) Realloc (buf, sizeof (char) * new_size);
+	  /* Blank it first time.  */
+	  if (new_size == BUF_SIZE << 2)
+	    bzero (new_buf, new_size);
+	  if (!new_buf)
+	    {
+              if (buf != NULL)
+                Free (buf);
+              return f__FIO__realize__error ("f__FIO__read__text__until",
+                "Cannot allocate memory", __FILE__, __LINE__);
+ 	    }
+	  buf = new_buf;
+	  buf_size = new_size;
+	}
+      memcpy (buf + byte_num, buf_tmp, bytes);
+      byte_num += bytes;
+      /* We always have space for the trailing '\0'.  */
+      buf[byte_num] = '\0';
+      if (strlen (buf) >= strlen (pl__separator))
+	if (strstr (buf, pl__separator) != NULL)
+	  break;
+    }
+  int back = buf + byte_num - strstr (buf, pl__separator) -
+    strlen (pl__separator);
+  /* Ignore the characters after the delimiter.  */
+  lseek (pl__fd, -back, SEEK_CUR);
+  if (out == NULL)
+    /* I miss "Calloc" a lot.  */
+    out = (char *) Malloc (((strstr (buf, pl__separator) - buf) + 1) *
+      sizeof (char));
+  int out_len = strstr (buf, pl__separator) - buf;
+  bzero (out, out_len + 1);
+  memcpy (out, buf, out_len);
+  out[out_len] = '\0';
+  pl__text = CHARSTRING (out_len, out);
+  Free (out);
+  Free (buf);
+  return out_len;
+}
+
+/* Function: f__FIO__read__data__until
+
+   It reads binary data until a given pattern is matched.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The buffer for storing the data.
+     SEPARATOR - The separator pattern.
+
+   Returns:
+   The number of bytes read from the file, not including the delimiter.  In
+   case of error it returns -1.  */
+INTEGER f__FIO__read__data__until (const INTEGER& pl__fd,
+  OCTETSTRING& pl__data, const OCTETSTRING& pl__separator)
+{
+  int buf_size = BUF_SIZE;
+  int buf_num = 0;
+  unsigned char *buf = NULL;
+  unsigned char c;
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::iterator iter = opened_files.find (pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__read__data__until",
+      "The file is not opened", __FILE__, __LINE__);
+#endif
+  while (true)
+    {
+      int bytes = read (pl__fd, &c, 1);
+      if (bytes < 0)
+        {
+          if (buf)
+            Free (buf);
+          /* Return -1 and print out a probably useful error message.  */
+          return f__FIO__realize__error ("f__FIO__read__data__until",
+            "Read error", __FILE__, __LINE__);
+        }
+      /* EOF is reached before we first matched the pattern.  */
+      else if (bytes == 0)
+        {
+          if (buf)
+            Free (buf);
+          return f__FIO__realize__error ("f__FIO__read__data__until",
+            "End of file", __FILE__, __LINE__);
+        }
+      if (buf == NULL || buf_num == (int) (sizeof (unsigned char) * buf_size))
+        {
+          int new_size = buf_size * 2;
+          unsigned char *new_buf = (unsigned char *) Realloc (buf,
+            sizeof (unsigned char) * new_size);
+          if (!new_buf)
+            {
+              if (buf)
+                Free (buf);
+              return f__FIO__realize__error ("f__FIO__read__data__until",
+                "Cannot allocate memory", __FILE__, __LINE__);
+            }
+          buf = new_buf;
+          buf_size = new_size;
+        }
+      buf[buf_num++] = c;
+      if (buf_num >= pl__separator.lengthof () &&
+          !memcmp ((const unsigned char *) (buf + buf_num -
+            pl__separator.lengthof ()), (const unsigned char *) pl__separator,
+            pl__separator.lengthof ()))
+        break;
+    }
+  pl__data = OCTETSTRING (buf_num - pl__separator.lengthof (), buf);
+  Free (buf);
+  return INTEGER (pl__data.lengthof ());
+}
+
+/*Function:  f__FIO__set__filedescriptor__previousline
+   It sets the file descriptor to the begin of the previous line.
+
+   Parameters:
+     FD - A file descriptor.
+
+   Returns:
+    If there was no problem, then the return value will be 1.  */
+INTEGER f__FIO__set__filedescriptor__previousline (const INTEGER& pl__fd)
+{
+  char buf_tmp[BUF_SIZE+ 1]; /* For reading chunks.  */
+  int bytes = 0;
+  int founded = 0;
+
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::iterator iter = opened_files.find (pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__read__text__until",
+      "The file is not opened", __FILE__, __LINE__);
+#endif
+  while (true) {    
+      bzero (buf_tmp, BUF_SIZE);
+      /* Try to read BUF_SIZE bytes.  */
+      int length = lseek(pl__fd,0,SEEK_CUR);
+      if (length >= BUF_SIZE){
+          lseek(pl__fd,-BUF_SIZE,SEEK_CUR);
+          bytes = read (pl__fd, buf_tmp, BUF_SIZE);
+          length = BUF_SIZE;
+          buf_tmp[bytes] = '\0'; /* Never forget.  */
+        }
+      else if (length>0){
+          lseek(pl__fd,-length,SEEK_CUR);
+          bytes = read (pl__fd, buf_tmp, length);
+          buf_tmp[bytes] = '\0'; /* Never forget.  */
+      }
+      else if (length == 0) {
+          return 0;
+      }
+      else {
+          return -1;
+      }
+           
+      int p = bytes-1;
+      while ((buf_tmp[p] != '\n') && (p != 0) ) {
+        p--;
+      }
+      
+      if ((p != 0) && (founded == 0)) {
+    	  founded++;
+    	  p--;
+    	  while ((buf_tmp[p] != '\n') && (p != 0) ) {
+    	          p--;
+    	  }
+    	  if ((p != 0) && (founded == 1)) {
+    	      	  lseek(pl__fd,-(length-p)+1,SEEK_CUR);
+    	      	  return 1;
+    	  }  
+      }
+           
+      if ((p != 0) && (founded == 1)) {
+    	  lseek(pl__fd,-(length-p)+1,SEEK_CUR);
+    	  return 1; 	      	  
+      }
+          
+      lseek(pl__fd,-length,SEEK_CUR);
+  }   
+}
+
+/* Function: f__FIO__read__data__TLV
+
+   It reads binary data until a full ASN.1 TLV structure is read.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The buffer for storing the data.
+
+   Returns:
+   The number of bytes read from the file.  In
+   case of error it returns -1.  */
+INTEGER f__FIO__read__data__TLV (const INTEGER& pl__fd,
+  OCTETSTRING& pl__data)
+{
+  unsigned char *buf = NULL; /* For the whole line.  */
+  char buf_tmp[BUF_SIZE]; /* For reading chunks.  */
+  unsigned int buf_size = BUF_SIZE << 1;
+  unsigned int byte_num = 0;
+  ASN_BER_TLV_t tlv;
+  size_t tlvlength;
+#ifdef ENABLE_CHECKING
+  std::map<int, std::string>::iterator iter = opened_files.find (pl__fd);
+  if (iter == opened_files.end ())
+    return f__FIO__realize__error ("f__FIO__read__data__TLV",
+      "The file is not opened", __FILE__, __LINE__);
+#endif
+  while (true)
+    {
+      /* Try to read BUF_SIZE bytes.  */
+      int bytes = read (pl__fd, buf_tmp, BUF_SIZE);
+      if (bytes < 0)
+        {
+          if (buf)
+            Free (buf);
+          return f__FIO__realize__error ("f__FIO__read__data__TLV",
+            "Read error", __FILE__, __LINE__);
+        }
+      else if (bytes == 0)
+        {
+          if (buf != NULL)
+            Free (buf);
+          return f__FIO__realize__error ("f__FIO__read__data__TLV",
+            "End of file", __FILE__, __LINE__);
+        }
+      if (buf == NULL || byte_num + bytes >= buf_size)
+	{
+	  int new_size = 2 * buf_size;
+	  unsigned char *new_buf = (unsigned char *) Realloc (buf, sizeof (char) * new_size);
+	  /* Blank it first time.  */
+	  if (new_size == BUF_SIZE << 2)
+	    bzero (new_buf, new_size);
+	  if (!new_buf)
+	    {
+              if (buf != NULL)
+                Free (buf);
+              return f__FIO__realize__error ("f__FIO__read__data__TLV",
+                "Cannot allocate memory", __FILE__, __LINE__);
+ 	    }
+	  buf = new_buf;
+	  buf_size = new_size;
+	}
+      memcpy (buf + byte_num, buf_tmp, bytes);
+      byte_num += bytes;
+
+      /* Check for TLV structure */
+      if (ASN_BER_str2TLV(byte_num,buf,tlv,BER_ACCEPT_ALL))
+        {
+	  tlvlength = tlv.get_len();
+	  break;
+        }
+    }
+  /* Ignore the characters after the delimiter.  */
+  lseek (pl__fd, -(byte_num - tlvlength), SEEK_CUR);
+
+  pl__data = OCTETSTRING (tlvlength, buf);
+  Free (buf);
+  return tlvlength;
+}
+
+/* Function: f__FIO__chdir
+
+   It changes the current directory.
+
+   Parameters:
+     NAME - The name of the new directory.
+
+   Returns:
+   Boolean value for successful or unsuccessful directory change  */
+BOOLEAN f__FIO__chdir(const CHARSTRING& pl__name)
+{
+  if(chdir((const char *)(pl__name)))
+  {
+    f__FIO__realize__error ("f__FIO__chdir",
+                "Cannot change directory", __FILE__, __LINE__);
+    return FALSE;
+  }
+  else
+    return TRUE;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_mkdir
+// 
+//  Purpose:
+//    Create a new directory
+//
+//  Parameters:
+//    p_dir_name - *in* *charstring* - name of the directory to create
+// 
+//  Return Value:
+//    boolean - indicate the successful or unsuccessful directory creation
+//
+//  Errors:
+//    In the case of unsuccessful operation the cause of the error can be 
+//    queried  by the f_FIO_get_error_code, f_FIO_get_error_string functions
+// 
+//  Detailed description:
+//    The path to the directory must exist, so the existence of the path
+//    should be checked, and the missing directories should be created
+//    recursively.
+// 
+///////////////////////////////////////////////////////////////////////////////
+BOOLEAN f__FIO__mkdir(const CHARSTRING& pl__dir__name)
+{
+  if(mkdir((const char *)(pl__dir__name),0777))
+  {
+    f__FIO__realize__error ("f_FIO_mkdir",
+                "Cannot make a directory", __FILE__, __LINE__);
+    return FALSE;
+  }
+  else
+    return TRUE;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_rmdir
+// 
+//  Purpose:
+//    Removes a directory
+//
+//  Parameters:
+//    p_dir_name - *in* *charstring* - name of the directory to remove
+// 
+//  Return Value:
+//    boolean - indicate the successful or unsuccessful directory creation
+//
+//  Errors:
+//    In the case of unsuccessful operation the cause of the error can be 
+//    queried  by the f_FIO_get_error_code, f_FIO_get_error_string functions
+// 
+//  Detailed description:
+//    The directories must be empty, so the child directories should be 
+//    cleaned and deleted recursively.
+// 
+///////////////////////////////////////////////////////////////////////////////
+BOOLEAN f__FIO__rmdir(const CHARSTRING& pl__dir__name)
+{
+  if(rmdir((const char *)(pl__dir__name)))
+  {
+    f__FIO__realize__error ("f__FIO__rmdir",
+                "Cannot make a directory", __FILE__, __LINE__);
+    return FALSE;
+  }
+  else
+    return TRUE;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_fileOrDirExists
+// 
+//  Purpose:
+//    Checks the existence of files and directories.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+// 
+//  Return Value:
+//    boolean - indicate the exictense of the file or diectory
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+BOOLEAN f__FIO__fileOrDirExists(const CHARSTRING& filename ) {
+  struct stat buffer ;
+  if(stat( (const char *)filename, &buffer )==0) {
+    return TRUE ;
+  }
+  return FALSE ;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_stat
+// 
+//  Purpose:
+//    Query the permissions of the file or directory.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+//    p_permissions - *out* *FIO_permissions* - the permissions of the object
+// 
+//  Return Value:
+//    boolean - indicate sucessfull execution
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+BOOLEAN f__FIO__stat(const CHARSTRING& p__name,
+                     FIO__permissions& p__permissions ) {
+  struct stat buffer;
+  mode_t   st_mode;
+  if(stat( (const char *)p__name, &buffer )) {
+    f__FIO__realize__error ("f__FIO__stat",
+                "Cannot stat", __FILE__, __LINE__);
+    return FALSE;
+  }
+  st_mode=buffer.st_mode;
+  p__permissions.set__uid()=st_mode & S_ISUID;
+  p__permissions.set__gid()=st_mode & S_ISGID;
+  p__permissions.sticky__bit()=st_mode & S_ISVTX;
+  p__permissions.owner__read()=st_mode & S_IRUSR;
+  p__permissions.owner__write()=st_mode & S_IWUSR;
+  p__permissions.owner__execute()=st_mode & S_IXUSR;
+  p__permissions.group__read()=st_mode & S_IRGRP;
+  p__permissions.group__write()=st_mode & S_IWGRP;
+  p__permissions.group__execute()=st_mode & S_IXGRP;
+  p__permissions.other__read()=st_mode & S_IROTH;
+  p__permissions.other__write()=st_mode & S_IWOTH;
+  p__permissions.other__execute()=st_mode & S_IXOTH;
+  
+  return TRUE;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_chmod
+// 
+//  Purpose:
+//    Change the permissions of the file or directory.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+//    p_permissions - *in* *FIO_permissions* - the permissions of the object
+// 
+//  Return Value:
+//    boolean - indicate sucessfull execution
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    Change the permissions of the file or directory according to the 
+//    p_permissions. If the value of the field is:
+//       - true: set the permission
+//       - false: clear the permission
+//       - omit: doesn't change the permission
+// 
+///////////////////////////////////////////////////////////////////////////////
+BOOLEAN f__FIO__chmod(const CHARSTRING& p__name,
+                      const FIO__permissions& p__permissions ) {
+  struct stat buffer;
+  mode_t   st_mode;
+  if(stat( (const char *)p__name, &buffer )) {
+    f__FIO__realize__error ("f__FIO__chmod",
+                "Cannot stat", __FILE__, __LINE__);
+    return FALSE;
+  }
+  st_mode=buffer.st_mode;
+  if(p__permissions.set__uid().ispresent()){
+    if(p__permissions.set__uid()()){
+      st_mode |= S_ISUID;
+    } else {
+      st_mode &= ~S_ISUID;
+    }
+  }
+  if(p__permissions.set__gid().ispresent()){
+    if(p__permissions.set__gid()()){
+      st_mode |= S_ISGID;
+    } else {
+      st_mode &= ~S_ISGID;
+    }
+  }
+  if(p__permissions.sticky__bit().ispresent()){
+    if(p__permissions.sticky__bit()()){
+      st_mode |= S_ISVTX;
+    } else {
+      st_mode &= ~S_ISVTX;
+    }
+  }
+  if(p__permissions.owner__read().ispresent()){
+    if(p__permissions.owner__read()()){
+      st_mode |= S_IRUSR;
+    } else {
+      st_mode &= ~S_IRUSR;
+    }
+  }
+  if(p__permissions.owner__write().ispresent()){
+    if(p__permissions.owner__write()()){
+      st_mode |= S_IWUSR;
+    } else {
+      st_mode &= ~S_IWUSR;
+    }
+  }
+  if(p__permissions.owner__execute().ispresent()){
+    if(p__permissions.owner__execute()()){
+      st_mode |= S_IXUSR;
+    } else {
+      st_mode &= ~S_IXUSR;
+    }
+  }
+  if(p__permissions.group__read().ispresent()){
+    if(p__permissions.group__read()()){
+      st_mode |= S_IRGRP;
+    } else {
+      st_mode &= ~S_IRGRP;
+    }
+  }
+  if(p__permissions.group__write().ispresent()){
+    if(p__permissions.group__write()()){
+      st_mode |= S_IWGRP;
+    } else {
+      st_mode &= ~S_IWGRP;
+    }
+  }
+  if(p__permissions.group__execute().ispresent()){
+    if(p__permissions.group__execute()()){
+      st_mode |= S_IXGRP;
+    } else {
+      st_mode &= ~S_IXGRP;
+    }
+  }
+  if(p__permissions.other__read().ispresent()){
+    if(p__permissions.other__read()()){
+      st_mode |= S_IROTH;
+    } else {
+      st_mode &= ~S_IROTH;
+    }
+  }
+  if(p__permissions.other__write().ispresent()){
+    if(p__permissions.other__write()()){
+      st_mode |= S_IWOTH;
+    } else {
+      st_mode &= ~S_IWOTH;
+    }
+  }
+  if(p__permissions.other__execute().ispresent()){
+    if(p__permissions.other__execute()()){
+      st_mode |= S_IXOTH;
+    } else {
+      st_mode &= ~S_IXOTH;
+    }
+  }
+  
+  if(chmod( (const char *)p__name, st_mode )) {
+    f__FIO__realize__error ("f__FIO__chmod",
+                "Cannot chmod", __FILE__, __LINE__);
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
+}
diff --git a/src/TCCFileIO_Functions.ttcn b/src/TCCFileIO_Functions.ttcn
new file mode 100644
index 0000000..058197c
--- /dev/null
+++ b/src/TCCFileIO_Functions.ttcn
@@ -0,0 +1,525 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCFileIO_Functions.ttcn
+//  Description:        TCC Useful Functions: FileIO Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2009-04-09
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCFileIO_Functions
+// 
+//  Purpose:
+//    This module supports file I/O handling
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCFileIO_Functions {
+
+/* Function: f_FIO_open_rdonly
+
+   A wrapper function for f_FIO_open.  It opens the file with the given name
+   for reading only.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   A valid file descriptor or -1 on error.  */
+external function f_FIO_open_rdonly (in charstring pl_name) return integer;
+
+/* Function: f_FIO_open_append_wronly
+
+   A wrapper function for f_FIO_open.  It opens the file with the given name
+   for writing only.  If the file already exists it is opened in appending
+   mode.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   A valid file descriptor or -1 on error.  */
+external function f_FIO_open_append_wronly (in charstring pl_name)
+  return integer;
+
+/* Function: f_FIO_open_append_rdwr
+
+   A wrapper function for f_FIO_open.  It opens the file with the given name
+   for reading and writing.  If the file already exists it is opened in
+   appending mode.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   A valid file descriptor or -1 on error.  */
+external function f_FIO_open_append_rdwr (in charstring pl_name)
+  return integer;
+
+/* Function: f_FIO_open_trunc_wronly
+
+   A wrapper function for f_FIO_open.  It opens the file with the given name
+   for writing only.  If the file was not empty it is truncated.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   A valid file descriptor or -1 on error.  */
+external function f_FIO_open_trunc_wronly (in charstring pl_name)
+  return integer;
+
+/* Function: f_FIO_open_trunc_rdwr
+
+   A wrapper function for f_FIO_open.  It opens the file with the given name
+   for reading and writing.  If the file was not empty it is truncated.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   A valid file descriptor or -1 on error.  */
+external function f_FIO_open_trunc_rdwr (in charstring pl_name)
+  return integer;
+
+/* Function: f_FIO_open_append_wronly_excl
+
+   A wrapper function for f_FIO_open.  It opens the file with the given name
+   for writing only in exclusive mode.  If the file already exists it is
+   opened in appending mode.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   A valid file descriptor or -1 on error.  */
+external function f_FIO_open_append_wronly_excl (in charstring pl_name)
+  return integer;
+
+/* Function: f_FIO_open_append_rdwr_excl
+
+   A wrapper function for f_FIO_open.  It opens the file with the given name
+   for reading and writing in exclusive mode.  If the file already exists it
+   is opened in appending mode.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   A valid file descriptor or -1 on error.  */
+external function f_FIO_open_append_rdwr_excl (in charstring pl_name)
+  return integer;
+
+/* Function: f_FIO_open_trunc_wronly_excl
+
+   A wrapper function for f_FIO_open.  It opens the file with the given name
+   for writing only in exclusive mode.  If the file was not empty it is
+   truncated.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   A valid file descriptor or -1 on error.  */
+external function f_FIO_open_trunc_wronly_excl (in charstring pl_name)
+  return integer;
+
+/* Function: f_FIO_open_trunc_rdwr_excl
+
+   A wrapper function for f_FIO_open.  It opens the file with the given name
+   for reading and writing in exclusive mode.  If the file was not empty it is
+   truncated.
+
+   Parameters:
+     NAME - The name of the file.
+
+   Returns:
+   A valid file descriptor or -1 on error.  */
+external function f_FIO_open_trunc_rdwr_excl (in charstring pl_name)
+  return integer;
+
+/* Function: f_FIO_close
+
+   Closes a file associated with the given file descriptor.
+
+   Parameters:
+     FD - The file descriptor to close.
+
+   Returns:
+   What the POSIX function close returns.  */
+external function f_FIO_close (in integer pl_fd) return integer;
+
+/* Function:  f_FIO_seek_home
+
+   Moves the file pointer to the beginning of the file.
+
+   Parameters:
+     FD - A file descriptor.
+
+   Returns:
+   What the POSIX function lseek returns.  */
+external function f_FIO_seek_home (in integer pl_fd) return integer;
+
+/* Function: f_FIO_seek_end
+
+   Moves the file pointer to the end of the file.
+
+   Parameters:
+     FD - A file descriptor.
+
+   Returns:
+   What the POSIX function lseek returns.  */
+external function f_FIO_seek_end (in integer pl_fd) return integer;
+
+/* Function: f_FIO_seek_forward
+
+   Moves the file pointer forward with a given number of bytes from the
+   current position.
+
+   Parameters:
+     FD - A file descriptor.
+     BYTES - The number of bytes.
+
+   Returns:
+   What the POSIX function lseek returns.  */
+external function f_FIO_seek_forward (in integer pl_fd,
+  in integer pl_bytes) return integer;
+
+/* Function: f_FIO_seek_backward
+
+   Moves the file pointer backward with a given number of bytes from the
+   current position.
+
+   Parameters:
+     FD - A file descriptor.
+     BYTES - The number of bytes.
+
+   Returns:
+   What the POSIX function lseek returns.  */
+external function f_FIO_seek_backward (in integer pl_fd,
+  in integer pl_bytes) return integer;
+
+/* Function: f_FIO_write_data
+
+   A wrapper function for f_FIO_write.  It writes binary data.
+
+   Parameters:
+     FD - A file descriptor.
+     DATA - The data to write to the file.
+
+   Returns:
+   Number of bytes written or -1 on error.  */
+external function f_FIO_write_data (in integer pl_fd,
+  in octetstring pl_data) return integer;
+
+/* Function: f_FIO_write_text
+
+   A wrapper function for f_FIO_write.  It writes textual data.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The text to write to the file.
+
+   Returns:
+   Number of bytes written or -1 on error.  */
+external function f_FIO_write_text (in integer pl_fd,
+  in charstring pl_text) return integer;
+
+/* Function: f_FIO_write_data_flush
+
+   A wrapper function for f_FIO_write.  It writes binary data and calls
+   f_FIO_flush.
+
+   Parameters:
+     FD - A file descriptor.
+     DATA - The data to write to the file.
+
+   Returns:
+   Number of bytes written or -1 on error.  */
+external function f_FIO_write_data_flush (in integer pl_fd,
+  in octetstring pl_data) return integer;
+
+/* Function: f_FIO_write_text_flush
+
+   A wrapper function for f_FIO_write.  It writes textual data and calls
+   f_FIO_flush.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The text to write to the file.
+
+   Returns:
+   Number of bytes written or -1 on error.  */
+external function f_FIO_write_text_flush (in integer pl_fd,
+  in charstring pl_text) return integer;
+
+/* Function: f_FIO_flush
+
+   Transfers ("flushes") all modified in-core data of the file referred to by
+   the file descriptor to the disk device.
+
+   Parameters:
+     FD - A file descriptor.
+
+   Returns:
+   What the POSIX function fsync returns.  */
+external function f_FIO_flush (in integer pl_fd) return integer;
+
+/* Function: f_FIO_read_data
+
+   A wrapper function for f_FIO_read.  It reads binary data.
+
+   Parameters:
+     FD - A file descriptor.
+     DATA - The buffer for storing the data.
+     BYTES - The number of bytes to read.
+
+   Returns:
+   Number of bytes read or -1 on error.  */
+external function f_FIO_read_data (in integer pl_fd, inout octetstring pl_data,
+  in integer pl_bytes) return integer;
+
+/* Function: f_FIO_read_text
+
+   A wrapper function for f_FIO_read.  It reads textual data.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The buffer for storing the text.
+     BYTES - The number of bytes to read.
+
+   Returns:
+   Number of bytes read or -1 on error.  */
+external function f_FIO_read_text (in integer pl_fd, inout charstring pl_text,
+  in integer pl_bytes) return integer;
+
+/* Function: f_FIO_read_text_until
+
+   A wrapper function for f_FIO_read_until.  It reads textual data.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The buffer for storing the text.
+     SEPARATOR - The separator pattern.
+
+   Returns:
+   Number of bytes read or -1 on error.  */
+external function f_FIO_read_text_until (in integer pl_fd,
+  inout charstring pl_text, in charstring pl_separator) return integer;
+
+/* Function: f_FIO_read_data_until
+
+   A wrapper function for f_FIO_read_until.  It reads binary data.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The buffer for storing the data.
+     SEPARATOR - The separator pattern.
+
+   Returns:
+   Number of bytes read or -1 on error.  */
+external function f_FIO_read_data_until (in integer pl_fd,
+  inout octetstring pl_data, in octetstring pl_separator) return integer;
+
+/* Function: f_FIO_read_data_TLV
+
+   A wrapper function for f_FIO_read.  It reads a full ASN.1 TLV
+   structure in binary data format.
+
+   Parameters:
+     FD - A file descriptor.
+     TEXT - The buffer for storing the data.
+     SEPARATOR - The separator pattern.
+
+   Returns:
+   Number of bytes read or -1 on error.  */
+external function f_FIO_read_data_TLV (in integer pl_fd,
+  inout octetstring pl_data) return integer;
+
+/* Function: f_FIO_get_error_string
+
+   Returns the actual error message.
+
+   Returns:
+   The actual error message as a string.  */
+external function f_FIO_get_error_string () return charstring;
+
+/* Function: f_FIO_get_error_code
+
+   Returns the actual error code.
+
+   Returns:
+   The actual error code.  */
+external function f_FIO_get_error_code () return integer;
+
+/* Function: f_FIO_set_filedescriptor_previousline
+
+   Returns:
+     If there was no problem, then the return value will be 1.
+
+*/
+external function f_FIO_set_filedescriptor_previousline (in integer pl_fd) return integer;
+
+/* Function: f_FIO_chdir
+
+   A wrapper function for f_FIO_chdir.  It changes the current directory.
+
+   Parameters:
+     NAME - The name of the new directory.
+
+   Returns:
+   Boolean value for successful or unsuccessful directory change  */
+external function f_FIO_chdir (in charstring pl_name) return boolean;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_mkdir
+// 
+//  Purpose:
+//    Create a new directory
+//
+//  Parameters:
+//    p_dir_name - *in* *charstring* - name of the directory to create
+// 
+//  Return Value:
+//    boolean - indicate the successful or unsuccessful directory creation
+//
+//  Errors:
+//    In the case of unsuccessful operation the cause of the error can be 
+//    queried  by the f_FIO_get_error_code, f_FIO_get_error_string functions
+// 
+//  Detailed description:
+//    The path to the directory must exist, so the existence of the path
+//    should be checked, and the missing directories should be created
+//    recursively.
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_FIO_mkdir (in charstring p_dir_name) return boolean;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_rmdir
+// 
+//  Purpose:
+//    Removes a directory
+//
+//  Parameters:
+//    p_dir_name - *in* *charstring* - name of the directory to remove
+// 
+//  Return Value:
+//    boolean - indicate the successful or unsuccessful directory creation
+//
+//  Errors:
+//    In the case of unsuccessful operation the cause of the error can be 
+//    queried  by the f_FIO_get_error_code, f_FIO_get_error_string functions
+// 
+//  Detailed description:
+//    The directories must be empty, so the child directories should be 
+//    cleaned and deleted recursively.
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_FIO_rmdir (in charstring p_dir_name) return boolean;
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_fileOrDirExists
+// 
+//  Purpose:
+//    Checks the existence of files and directories.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+// 
+//  Return Value:
+//    boolean - indicate the exictense of the file or diectory
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_FIO_fileOrDirExists (in charstring p_name) return boolean;
+
+
+type record FIO_permissions{
+  boolean   set_uid       optional, // Set user ID on execution.
+  boolean   set_gid       optional, // Set group ID on execution.
+  boolean   sticky_bit    optional, // Save text image  after execution.
+  boolean   owner_read    optional, // Read by owner.
+  boolean   owner_write   optional, // Write by owner.
+  boolean   owner_execute optional, // Execute by owner.
+  boolean   group_read    optional, // Read by group.
+  boolean   group_write   optional, // Write by group.
+  boolean   group_execute optional, // Execute by group.
+  boolean   other_read    optional, // Read by others.
+  boolean   other_write   optional, // Write by others.
+  boolean   other_execute optional  // Execute by others.
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_stat
+// 
+//  Purpose:
+//    Query the permissions of the file or directory.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+//    p_permissions - *out* *FIO_permissions* - the permissions of the object
+// 
+//  Return Value:
+//    boolean - indicate sucessfull execution
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_FIO_stat (in charstring p_name,
+                              out FIO_permissions p_permissions) return boolean;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FIO_chmod
+// 
+//  Purpose:
+//    Change the permissions of the file or directory.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+//    p_permissions - *in* *FIO_permissions* - the permissions of the object
+// 
+//  Return Value:
+//    boolean - indicate sucessfull execution
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    Change the permissions of the file or directory according to the 
+//    p_permissions. If the value of the field is:
+//       - true: set the permission
+//       - false: clear the permission
+//       - omit: doesn't change the permission
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_FIO_chmod (in charstring p_name,
+                               in FIO_permissions p_permissions) return boolean;
+
+}
diff --git a/src/TCCFileSystem.cc b/src/TCCFileSystem.cc
new file mode 100644
index 0000000..93fffe6
--- /dev/null
+++ b/src/TCCFileSystem.cc
@@ -0,0 +1,59 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCFileSystem.cc
+//  Description:        TCC Useful Functions: FileSystem Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2011-07-14
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCFileSystem_Functions.hh"
+#include <sys/statvfs.h>
+
+namespace TCCFileSystem__Functions
+{
+
+INTEGER f__FS__bsize(const CHARSTRING& filename ) {
+  struct statvfs buffer ;
+  if(statvfs( (const char *)filename, &buffer )==0) {
+    return INTEGER (buffer.f_bsize);
+  }
+  else{return INTEGER (-1);}
+}
+
+INTEGER f__FS__block(const CHARSTRING& filename ) {
+  struct statvfs buffer ;
+  if(statvfs( (const char *)filename, &buffer )==0) {
+    return INTEGER(buffer.f_blocks);
+  }
+  else{return INTEGER (-1);}
+}
+
+INTEGER f__FS__bfree(const CHARSTRING& filename ) {
+  struct statvfs buffer ;
+  if(statvfs( (const char *)filename, &buffer )==0) {
+    return INTEGER(buffer.f_bavail);
+  }
+  else{return INTEGER (-1);}
+}
+
+
+INTEGER f__FS__dspacerate(const CHARSTRING& filename ) {
+  struct statvfs buffer ;
+  if(statvfs( (const char *)filename, &buffer )==0) {
+    return INTEGER(buffer.f_bavail*100/buffer.f_blocks);
+  }
+  else{return INTEGER (-1);}
+}
+
+}
diff --git a/src/TCCFileSystem_Functions.ttcn b/src/TCCFileSystem_Functions.ttcn
new file mode 100644
index 0000000..113d698
--- /dev/null
+++ b/src/TCCFileSystem_Functions.ttcn
@@ -0,0 +1,120 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCC_FileSystem_Functions.ttcn
+//  Description:        TCC Useful Functions: FileSystem Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2011-07-14
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCFileSystem_Functions
+// 
+//  Purpose:
+//    This module supports File System information
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+
+module TCCFileSystem_Functions {
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FS_bsize
+// 
+//  Purpose:
+//    Query the file system block size.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+// 
+//  Return Value:
+//    integer - the file system block size or -1 on error
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_FS_bsize (in charstring p_name) return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FS_blocks
+// 
+//  Purpose:
+//    Query the total number of blocks.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+// 
+//  Return Value:
+//   integer - the total number of blocks or -1 on error
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_FS_block (in charstring p_name) return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FS_bfree
+// 
+//  Purpose:
+//    Query the total number of free blocks.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+// 
+//  Return Value:
+//    integer - the total number of free blocks or -1 on error
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_FS_bfree (in charstring p_name) return integer;
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_FS_dspacerate
+// 
+//  Purpose:
+//    Query the free space rate.
+//
+//  Parameters:
+//    p_name - *in* *charstring* - name of the file or directory to check
+// 
+//  Return Value:
+//    integer - the free space rate or -1 on error
+//
+//  Errors:
+//    -
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_FS_dspacerate (in charstring p_name) return integer;
+
+}
diff --git a/src/TCCIPsec.cc b/src/TCCIPsec.cc
new file mode 100644
index 0000000..e7b3621
--- /dev/null
+++ b/src/TCCIPsec.cc
@@ -0,0 +1,795 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCIPsec.cc
+//  Description:        TCC Useful Functions: IPsec Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2012-10-31
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCIPsec_Definitions.hh"
+#include "TCCIPsec_Functions.hh"
+#include "Logger.hh"
+
+#if defined USE_IPSEC || defined USE_KAME_IPSEC
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/time.h>
+
+#ifdef LINUX
+#include <linux/pfkeyv2.h>
+#else
+#include <net/pfkeyv2.h>
+#endif
+
+#if defined USE_KAME_IPSEC
+// Missing constants
+#define IPSEC_POLICY_DISCARD    0       /* discard the packet */
+#define IPSEC_POLICY_NONE       1       /* bypass IPsec engine */
+#define IPSEC_POLICY_IPSEC      2       /* pass to IPsec */
+//#define IPSEC_POLICY_ENTRUST    3       /* consulting SPD if present. */
+//#define IPSEC_POLICY_BYPASS     4       /* only for privileged socket. */
+#define IPSEC_DIR_INBOUND       1
+#define IPSEC_DIR_OUTBOUND      2
+#define IPSEC_DIR_FORWARD       3
+#define IPSEC_MODE_ANY          0
+#define IPSEC_MODE_TRANSPORT    1
+#define IPSEC_MODE_TUNNEL       2
+#define IPSEC_LEVEL_DEFAULT     0       /* reference to system default */
+#define IPSEC_LEVEL_USE         1       /* use SA if present. */
+#define IPSEC_LEVEL_REQUIRE     2       /* require SA. */
+#define IPSEC_LEVEL_UNIQUE      3       /* unique SA. */
+#endif // defined USE_KAME_IPSEC
+
+// Note: IPPROTO_ESP == 50, IPPROTO_AH == 51, IPPROTO_IPCOMP == 108
+
+#endif // defined USE_IPSEC || defined USE_KAME_IPSEC
+#define UDP_ENCAP_ESPINUDP  2
+#define DEFAULT_NATT_PORT 4500
+
+namespace TCCIPsec__Functions {
+
+using namespace TCCIPsec__Definitions;
+
+#if defined USE_IPSEC || defined USE_KAME_IPSEC
+
+struct Error {
+  int result;
+  Error ( int r ) : result ( r ) {}
+private:
+  Error ();
+};
+
+int           sd = -1;
+
+class PfKey
+{
+  unsigned int  seq;
+  unsigned char rdBuf[2048];
+
+  int cnvErr ( int osErr ) {
+    int err = TCCIPsec__Result::socketError;
+    switch ( osErr ) {
+      case EPERM:
+      case EACCES:
+        err = TCCIPsec__Result::insufficientPrivilege; break;
+      case ESRCH:
+      case ENOENT:
+        err = TCCIPsec__Result::notFound; break;
+      case EINVAL:
+        err = TCCIPsec__Result::parameterInvalid; break;
+      case EEXIST:
+        err = TCCIPsec__Result::alreadyExisted; break;
+      default: ;
+    }
+    return err;
+  }
+
+  inline void dump ( const char * descr, const void * buf, unsigned int len )
+  {
+//    const unsigned char * data = (const unsigned char*) buf;
+    TTCN_Logger::begin_event( TTCN_DEBUG );
+    TTCN_Logger::log_event( "%s:   Dump of %03X bytes: ", descr, len );
+/*    if ( data == 0 ) {
+      TTCN_Logger::log_event( "Null pointer" );
+    } else {
+      TTCN_Logger::log_event("\n %03X ", 0);
+      for ( unsigned int i=0; i < len; i++ ) {
+        TTCN_Logger::log_event( " %02X", data[i] );
+        if ( i % 16 == 15 ) {
+          TTCN_Logger::log_char( '\n' );
+          TTCN_Logger::log_event( " %03X ", i + 1 );
+        }
+      }
+    }*/
+    TTCN_Logger::end_event();
+  }
+    
+public:
+  PfKey () throw ( Error ) {
+    if (sd < 0){
+      sd = socket ( PF_KEY, SOCK_RAW, PF_KEY_V2 );
+      if ( sd < 0 ) {
+	TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::PfKey: OS error: %i: \"%s\"", errno, strerror ( errno ) );
+	throw Error( cnvErr ( errno ) );
+      }
+    }
+    seq = 0;
+    //    timeval tv;
+    //    seq = ( gettimeofday ( & tv, 0 ) == 0 ) ? tv.tv_usec + tv.tv_sec * 1000000 : 0;
+    TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::PfKey: sd: %i,   seq: 0x%08X", sd, seq );
+  }
+  ~PfKey () { /*close ( sd );*/ }
+  unsigned int getSeq () { return seq; }
+
+  int receive ( const void ** buf ) throw ( Error ) {
+    for (;;) {
+      * buf = 0;
+      int r = recv ( sd, rdBuf, sizeof ( rdBuf ), MSG_DONTWAIT );
+      if ( r < 0 ) {
+        if ( errno != EAGAIN ) {
+          TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::receive: OS error: %i: \"%s\"", errno, strerror ( errno ) );
+          throw Error( cnvErr ( errno ) );
+        }
+        return 0;
+      }
+      if ( r == 0 )
+        return 0;
+      dump ( "TCCIPsec: PfKey::receive: ", rdBuf, r );
+      sadb_msg  * msg = (sadb_msg*) rdBuf;
+      if ( (unsigned int) r < sizeof ( sadb_msg ) ||
+           msg->sadb_msg_version != PF_KEY_V2 ||
+           r < msg->sadb_msg_len ||
+           msg->sadb_msg_seq != seq ||
+           (int) msg->sadb_msg_pid != getpid () ) {
+        TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::receive: Received mesasage discarded" );
+        continue;
+      }
+      * buf = (const void*) rdBuf;
+      return r;
+    }
+  }
+
+  void send ( const void * data, size_t len ) throw ( Error ) {
+    while ( len > 0 ) {
+      dump ( "TCCIPsec: PfKey::send: ", data, len );
+      int r = ::send ( sd, data, len, MSG_DONTWAIT );
+      TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::send: done" );
+      if ( r < 0 ) {
+        if ( errno != EAGAIN ) {
+          TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::send: OS error: %i: \"%s\"", errno, strerror ( errno ) );
+          throw Error( cnvErr ( errno ) );
+        }
+        r = 0;
+      }
+      if ( (size_t) r > len )
+        throw Error( cnvErr ( errno ) );
+      ( * (unsigned char**) & data ) += r;
+      len -= r;
+    }
+  }
+  
+  void checkAnswer () throw ( Error ) {
+    const void * buf;
+    int r = 0;
+    for ( int i = 1;; ++i ) {
+      r = receive ( & buf );
+      if ( r > 0 ) break;
+      if ( i > 5 ) {
+        TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::checkAnswer: No answer" );
+        return;
+      }
+      TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::checkAnswer: try again (%i)", i );
+      usleep ( 0 );
+    }
+    int res = ((const sadb_msg*) rdBuf )->sadb_msg_errno;
+    if ( res != 0 ) {
+      TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::checkAnswer: OS error: %i: \"%s\"", res, strerror ( res ) );
+      throw Error( cnvErr ( res ) );
+    }        
+    TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: PfKey::checkAnswer: Answer received: Ok" );
+  }
+}; //end of class PfKey
+
+static const unsigned short SADB_MSG_LEN64 = sizeof ( sadb_msg ) / 8;
+
+int setSadbMsg ( void * buf, unsigned char type, unsigned char saType, unsigned short len, unsigned int seq )
+{
+  sadb_msg  * msg = (sadb_msg*) buf;
+  
+  msg->sadb_msg_version = PF_KEY_V2;
+  msg->sadb_msg_type = type;
+  msg->sadb_msg_errno = 0;
+  msg->sadb_msg_satype = saType;  // Depends on enum values of TCCIPsec_Protocol
+  msg->sadb_msg_len = len;
+  msg->sadb_msg_reserved = 0;
+  msg->sadb_msg_seq = seq;
+  msg->sadb_msg_pid = getpid ();
+  return sizeof ( * msg );
+}
+
+int set_saEndPoint( void *buf, const char *address, int port)
+{
+   sockaddr_in *pSockAddr = (sockaddr_in *)buf;
+   memset(pSockAddr, 0, sizeof(*pSockAddr));
+   int res = inet_pton(AF_INET, address, &(pSockAddr->sin_addr));
+   if(res > 0) {
+     pSockAddr->sin_family = AF_INET;
+     pSockAddr->sin_port = htons(port);
+     return sizeof(*pSockAddr);
+   }else
+     throw Error ( TCCIPsec__Result::parameterInvalid );
+}
+
+int setAddressPart ( void * buf, unsigned short type, const char * address,
+                     int prefixLen = c__TCCIPsec__prefixAll,
+                     int proto = TCCIPsec__TranspProto::anyTranspProto,
+                     int port = c__TCCIPsec__anyPort
+                   ) throw ( Error )
+{
+  sockaddr_in       sockAddr;
+  memset ( & sockAddr, 0, sizeof ( sockAddr ) );
+  sockaddr_in6      sockAddr6;
+  memset ( & sockAddr6, 0, sizeof ( sockAddr6 ) );
+  const void        * pAddr;
+  int               sockLen = 0;
+  int res = inet_pton ( AF_INET, address, & sockAddr.sin_addr );
+  if ( res > 0 ) {
+    sockAddr.sin_family = AF_INET;
+    sockAddr.sin_port = htons ( port );
+    pAddr = & sockAddr;
+    sockLen = sizeof ( sockAddr );
+    if ( prefixLen == c__TCCIPsec__prefixAll ) prefixLen = 32;
+  } else {
+    res = inet_pton ( AF_INET6, address, & sockAddr6.sin6_addr );
+    if ( res <= 0 )
+      throw Error ( TCCIPsec__Result::parameterInvalid );
+    sockAddr6.sin6_family = AF_INET6;
+    sockAddr6.sin6_port = htons ( port );
+    pAddr = & sockAddr6;
+    sockLen = sizeof ( sockAddr6 );
+    if ( prefixLen == c__TCCIPsec__prefixAll ) prefixLen = 128;
+  }
+  sadb_address  * addrExt = (sadb_address*) buf;
+  int len64 = sizeof ( * addrExt ) / 8 + ( sockLen + 7 ) / 8;
+  memset ( buf, 0, len64 * 8 );
+  addrExt->sadb_address_len = len64;
+  addrExt->sadb_address_exttype = type;
+  addrExt->sadb_address_proto = proto;
+  addrExt->sadb_address_prefixlen = prefixLen;
+  //addrExt->sadb_address_reserved = 0;
+  memcpy ( addrExt + 1, pAddr, sockLen);
+  return len64 * 8 ;
+}
+
+int castKey ( const TCCIPsec__Key & keyIn, char * key) throw ( Error )
+{
+  int len = 0;
+  switch ( keyIn.get_selection() ) {
+    case TCCIPsec__Key::ALT_hex:{
+      unsigned char *hexkey = (unsigned char*)(const unsigned char*)hex2oct(keyIn.hex());
+      len = keyIn.hex().lengthof()/2;
+      memcpy(key, hexkey, len);
+      break;
+    }
+  case TCCIPsec__Key::ALT_text:
+    key = (char*)(const char*) ( keyIn.text() );
+    len = keyIn.text().lengthof ();
+    break;
+  default:
+    throw Error ( TCCIPsec__Result::parameterInvalid );
+  }
+  return len;
+}
+
+void f__IPsec__setParityBit(unsigned char* data){
+  unsigned char d;
+  unsigned char p = 1;
+  d = *data;
+  while (d>>=1){
+    if(d & 1) {if(p) p=0; else p=1;} // inverting
+  }
+  if (p) *data |= p; else *data &=(~1); // setting the bit
+}
+
+void f__IPsec__setParityBits(unsigned char *data, int l){
+  unsigned char *d = data;
+  while (l--){
+    f__IPsec__setParityBit(++d);
+  }
+}
+
+inline unsigned short ipSecModeToIPMode ( const TCCIPsec__IPsecMode & ipSecMode ) throw ( Error ) {
+  switch ( (int) ipSecMode ) {
+    case TCCIPsec__IPsecMode::anyMode:   return IPSEC_MODE_ANY;
+    case TCCIPsec__IPsecMode::transport:    return IPSEC_MODE_TRANSPORT;
+    case TCCIPsec__IPsecMode::tunnel: return IPSEC_MODE_TUNNEL;
+    default: throw Error ( TCCIPsec__Result::parameterInvalid );
+  }
+}
+
+TCCIPsec__Result f__IPsec__SADB__add (
+    const CHARSTRING& srcAddress,
+    const CHARSTRING& dstAddress,
+    const TCCIPsec__Protocol& protocol,
+    const INTEGER& spi,
+    const TCCIPsec__ExtensionList& extensionList,
+    const TCCIPsec__Algorithm& alg,
+    const BOOLEAN& setparitybit = 0,
+    const BOOLEAN& useNatt = 0,
+    const TCCIPsec__IPsecMode& ipSecMode = TCCIPsec__IPsecMode::anyMode)
+{
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SADB__add: Enter" );
+  bool setparity = setparitybit;
+  try {
+    int                     encrAlgo = SADB_EALG_NONE;
+    //    const char *   encrKey = 0;
+    char encrKey[255];
+    int                     encrKeyLen = 0;
+    int                     authAlgo = SADB_AALG_NONE;
+    //    const char *   authKey = 0;
+    char authKey[255];
+    int                     authKeyLen = 0;
+    switch ( alg.get_selection() ) {
+      case TCCIPsec__Algorithm::ALT_encr:
+        encrAlgo = TCCIPsec__EAlgo::enum_type ( alg.encr().algo() );
+        encrKeyLen = castKey ( alg.encr().key(), encrKey );
+	if (setparity) f__IPsec__setParityBits((unsigned char*)encrKey, encrKeyLen);
+        break;
+      case TCCIPsec__Algorithm::ALT_auth:
+        authAlgo = TCCIPsec__AAlgo::enum_type ( alg.auth().algo() );
+        authKeyLen = castKey ( alg.auth().key(), authKey );
+        break;
+      case TCCIPsec__Algorithm::ALT_encrAndAuth:
+        encrAlgo = TCCIPsec__EAlgo::enum_type ( alg.encrAndAuth().ealgo() );
+        encrKeyLen = castKey ( alg.encrAndAuth().ekey(), encrKey );
+        authAlgo = TCCIPsec__AAlgo::enum_type ( alg.encrAndAuth().aalgo() );
+        authKeyLen = castKey ( alg.encrAndAuth().akey(), authKey );
+	if (setparity) f__IPsec__setParityBits((unsigned char*)encrKey, encrKeyLen);
+        break;
+      default:
+        throw Error ( TCCIPsec__Result::parameterInvalid );
+    }
+    PfKey           pfKey;
+    unsigned char   msg[1024];
+    int             len = sizeof ( sadb_msg );
+    len += setAddressPart ( msg + len, SADB_EXT_ADDRESS_SRC, srcAddress );
+    len += setAddressPart ( msg + len, SADB_EXT_ADDRESS_DST, dstAddress );
+    sadb_sa     * saExt = (sadb_sa*) ( msg + len );
+    saExt->sadb_sa_len = sizeof ( * saExt ) / 8;
+    saExt->sadb_sa_exttype = SADB_EXT_SA;
+    saExt->sadb_sa_spi = htonl ( (unsigned int)spi.get_long_long_val() );
+    saExt->sadb_sa_replay = 0;
+    saExt->sadb_sa_state = 0;
+    saExt->sadb_sa_auth = authAlgo;
+    saExt->sadb_sa_encrypt = encrAlgo;
+    saExt->sadb_sa_flags = 0; // TODO: check
+    len += sizeof ( * saExt );
+    if ( encrAlgo != SADB_EALG_NONE ) {
+      sadb_key     * keyExt = (sadb_key*) ( msg + len );
+      int   keyLen64 = ( encrKeyLen + 7 ) / 8;
+      keyExt->sadb_key_len = sizeof ( * keyExt ) / 8 + keyLen64;
+      keyExt->sadb_key_exttype = SADB_EXT_KEY_ENCRYPT;
+      keyExt->sadb_key_bits = encrKeyLen * 8;
+      keyExt->sadb_key_reserved = 0;
+      len += sizeof ( * keyExt );
+      memcpy ( msg + len, encrKey, encrKeyLen );
+      if ( encrKeyLen < keyLen64 * 8 )
+        memset ( msg + len + encrKeyLen, 0, keyLen64 * 8 - encrKeyLen );
+      len += keyLen64 * 8;
+    }
+    if ( authAlgo != SADB_AALG_NONE ) {
+      sadb_key     * keyExt = (sadb_key*) ( msg + len );
+      int   keyLen64 = ( authKeyLen + 7 ) / 8;
+      keyExt->sadb_key_len = sizeof ( * keyExt ) / 8 + keyLen64;
+      keyExt->sadb_key_exttype = SADB_EXT_KEY_AUTH;
+      keyExt->sadb_key_bits = authKeyLen * 8;
+      keyExt->sadb_key_reserved = 0;
+      len += sizeof ( * keyExt );
+      memcpy ( msg + len, authKey, authKeyLen );
+      if ( authKeyLen < keyLen64 * 8 )
+        memset ( msg + len + authKeyLen, 0, keyLen64 * 8 - authKeyLen );
+      len += keyLen64 * 8;
+    }
+    int nExtensions = extensionList.size_of ();
+    for ( int i = 0; i < nExtensions; ++i ) {
+      bool  isHLT = false;
+      sadb_lifetime * ltExt = 0;
+      switch ( extensionList[i].get_selection () ) {
+        case TCCIPsec__Extension::ALT_hardLifetime:
+          isHLT = true;
+        case TCCIPsec__Extension::ALT_softLifetime:
+          ltExt = (sadb_lifetime*) ( msg + len );
+          ltExt->sadb_lifetime_len = sizeof ( * ltExt ) / 8;
+          ltExt->sadb_lifetime_exttype = isHLT ?
+              SADB_EXT_LIFETIME_HARD : SADB_EXT_LIFETIME_SOFT;
+          ltExt->sadb_lifetime_allocations = 0;
+          ltExt->sadb_lifetime_bytes = 0;
+          ltExt->sadb_lifetime_addtime = isHLT ?
+              extensionList[i].hardLifetime () : extensionList[i].softLifetime ();
+          ltExt->sadb_lifetime_usetime = 0;
+          len += sizeof ( * ltExt );
+          break;
+        case TCCIPsec__Extension::ALT_policyId:
+#if defined USE_KAME_IPSEC
+          {
+            sadb_x_sa2    * sa2Ext = 0;
+            sa2Ext = ( sadb_x_sa2* ) ( msg + len );
+            memset ( sa2Ext, 0, sizeof ( * sa2Ext ) );
+            sa2Ext->sadb_x_sa2_len = sizeof ( * sa2Ext ) / 8;
+            sa2Ext->sadb_x_sa2_exttype = SADB_X_EXT_SA2;
+            sa2Ext->sadb_x_sa2_mode = ipSecModeToIPMode(ipSecMode);
+            sa2Ext->sadb_x_sa2_reqid = extensionList[i].policyId ();
+            len += sizeof ( * sa2Ext );
+
+            if (useNatt) {
+                
+                /*NAT-T type*/
+                sadb_x_nat_t_type  * natt_type=0;
+                natt_type = ( sadb_x_nat_t_type* ) ( msg + len );
+                memset(natt_type, 0, sizeof(* natt_type));
+                natt_type->sadb_x_nat_t_type_len = sizeof(* natt_type) / 8 ;
+                natt_type->sadb_x_nat_t_type_exttype = SADB_X_EXT_NAT_T_TYPE;
+                natt_type->sadb_x_nat_t_type_type = UDP_ENCAP_ESPINUDP;
+                len += sizeof( *natt_type );
+                  
+                /*NAT-T source port */
+                sadb_x_nat_t_port *natt_port=0;
+                natt_port = (sadb_x_nat_t_port *) (msg + len);
+                memset(natt_port, 0, sizeof(* natt_port));
+                natt_port->sadb_x_nat_t_port_len = sizeof(* natt_port) / 8;
+                natt_port->sadb_x_nat_t_port_exttype = SADB_X_EXT_NAT_T_SPORT;
+                natt_port->sadb_x_nat_t_port_port = htons(DEFAULT_NATT_PORT);
+                len += sizeof(* natt_port);    
+
+                /*NAT-T destination port */
+                natt_port = (sadb_x_nat_t_port *) (msg + len);
+                memset(natt_port, 0, sizeof(* natt_port));
+                natt_port->sadb_x_nat_t_port_len = sizeof(* natt_port) / 8;
+                natt_port->sadb_x_nat_t_port_exttype = SADB_X_EXT_NAT_T_DPORT;
+                natt_port->sadb_x_nat_t_port_port = htons(DEFAULT_NATT_PORT);
+                len += sizeof(* natt_port);
+            
+            }
+ 
+            break;
+          }
+#else
+          throw Error ( TCCIPsec__Result::notImplemented );
+#endif // defined USE_KAME_IPSEC
+        default:
+          throw Error ( TCCIPsec__Result::parameterInvalid );
+      }
+    }
+    setSadbMsg ( & msg, SADB_ADD, protocol, len / 8, pfKey.getSeq () );
+    pfKey.send ( & msg, len );
+    pfKey.checkAnswer ();
+  } catch ( Error err ) {
+    TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SADB__add: Leave (error)" );
+    return err.result;
+  }
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SADB__add: Leave (ok)" );
+  return TCCIPsec__Result::ok;
+}
+
+TCCIPsec__Result f__IPsec__SADB__delete (
+    const CHARSTRING& srcAddress,
+    const CHARSTRING& dstAddress,
+    const TCCIPsec__Protocol& protocol,
+    const INTEGER& spi )
+{
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SADB__delete: Enter" );
+  try {
+    PfKey           pfKey;
+    unsigned char   msg[1024];
+    int             len = sizeof ( sadb_msg );
+    len += setAddressPart ( msg + len, SADB_EXT_ADDRESS_SRC, srcAddress );
+    len += setAddressPart ( msg + len, SADB_EXT_ADDRESS_DST, dstAddress );
+    sadb_sa     * saExt = (sadb_sa*) ( msg + len );
+    saExt->sadb_sa_len = sizeof ( * saExt ) / 8;
+    saExt->sadb_sa_exttype = SADB_EXT_SA;
+    saExt->sadb_sa_spi = htonl ( (unsigned int)spi.get_long_long_val() );
+    saExt->sadb_sa_replay = 0;
+    saExt->sadb_sa_state = 0;
+    saExt->sadb_sa_auth = 0;
+    saExt->sadb_sa_encrypt = 0;
+    saExt->sadb_sa_flags = 0; // TODO: check
+    len += sizeof ( * saExt );
+    setSadbMsg ( & msg, SADB_DELETE, protocol, len / 8, pfKey.getSeq () );
+    pfKey.send ( & msg, len );
+    pfKey.checkAnswer ();
+  } catch ( Error err ) {
+    TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SADB__delete: Leave (error)" );
+    return err.result;
+  }
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SADB__delete: Leave (ok)" );
+  return TCCIPsec__Result::ok;
+}
+
+TCCIPsec__Result f__IPsec__SADB__flush ()
+{
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SADB__flush: Enter" );
+  try {
+    PfKey     pfKey;
+    sadb_msg  msg;
+    setSadbMsg ( & msg, SADB_FLUSH, SADB_SATYPE_UNSPEC, SADB_MSG_LEN64, pfKey.getSeq () );
+    pfKey.send ( & msg, sizeof ( msg ) );
+    pfKey.checkAnswer ();
+  } catch ( Error err ) {
+    TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SADB__flush: Leave (error)" );
+    return err.result;
+  }
+  return TCCIPsec__Result::ok;
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SADB__flush: Leave (ok)" );
+}
+
+#if defined USE_KAME_IPSEC
+
+inline unsigned short ipSecProtoToIPProto ( const TCCIPsec__Protocol & ipSecProto ) throw ( Error ) {
+  switch ( (int) ipSecProto ) {
+    case TCCIPsec__Protocol::esp:   return IPPROTO_ESP;
+    case TCCIPsec__Protocol::ah:    return IPPROTO_AH;
+    //case TCCIPsec__Protocol::ipComp: return IPPROTO_IPCOMP
+    default: throw Error ( TCCIPsec__Result::parameterInvalid );
+  }
+}
+
+inline unsigned char ipSecRuleLevelToLevel ( const TCCIPsec__RuleLevel & ipSecRuleLevel,
+                                             int * id ) throw ( Error ) {
+  switch ( ipSecRuleLevel.get_selection () ) {
+    case TCCIPsec__RuleLevel::ALT_defaultLevel: return IPSEC_LEVEL_DEFAULT;
+    case TCCIPsec__RuleLevel::ALT_use: return IPSEC_LEVEL_USE;
+    case TCCIPsec__RuleLevel::ALT_require: return IPSEC_LEVEL_REQUIRE;
+    case TCCIPsec__RuleLevel::ALT_unique:
+      * id = ipSecRuleLevel.unique().id();
+      return IPSEC_LEVEL_UNIQUE;
+    default: throw Error ( TCCIPsec__Result::parameterInvalid );
+  }
+}
+
+TCCIPsec__Result f__IPsec__SPDB__add (
+    const CHARSTRING& srcAddress,
+    const INTEGER& srcPrefixLen,
+    const INTEGER& srcPort,
+    const CHARSTRING& dstAddress,
+    const INTEGER& dstPrefixLen,
+    const INTEGER& dstPort,
+    const TCCIPsec__TranspProto& transpProto,
+    const TCCIPsec__PolicyDirection& dir,
+    const TCCIPsec__PolicyRule& rule )
+{
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SPDB__add: Enter" );
+  try {
+    PfKey           pfKey;
+    unsigned char   msg[1024]={0};
+    int             len = sizeof ( sadb_msg );
+    len += setAddressPart ( msg + len, SADB_EXT_ADDRESS_SRC, srcAddress, srcPrefixLen, transpProto, srcPort );
+    len += setAddressPart ( msg + len, SADB_EXT_ADDRESS_DST, dstAddress, dstPrefixLen, transpProto, dstPort );
+    sadb_x_policy   * policyExt = (sadb_x_policy*) ( msg + len );
+    memset ( policyExt, 0, sizeof ( * policyExt ) ); // for better portability
+    policyExt->sadb_x_policy_len = sizeof ( * policyExt ) / 8;
+    policyExt->sadb_x_policy_exttype = SADB_X_EXT_POLICY;
+    policyExt->sadb_x_policy_dir = dir; // Depends on enum values of TCCIPsec_PolicyDirection
+    //policyExt->sadb_x_policy_reserved = 0;
+    //policyExt->sadb_x_policy_id = 0;
+    //policyExt->sadb_x_policy_priority = 0; from kernel version 2.6.6
+    len += sizeof ( * policyExt );
+    switch ( rule.get_selection () ) {
+      case TCCIPsec__PolicyRule::ALT_discard:
+        policyExt->sadb_x_policy_type = IPSEC_POLICY_DISCARD; break;
+      case TCCIPsec__PolicyRule::ALT_noneRule:
+        policyExt->sadb_x_policy_type = IPSEC_POLICY_NONE; break;
+      case TCCIPsec__PolicyRule::ALT_ipSec: {
+        policyExt->sadb_x_policy_type = IPSEC_POLICY_IPSEC;
+        int nRules = rule.ipSec().size_of ();
+        if ( nRules < 1 || nRules > 2 ) {
+          throw Error ( TCCIPsec__Result::parameterInvalid );
+        }
+        for ( int i = 0; i < nRules; ++i ) {
+          const TCCIPsec__Rule &    ipSecRule = rule.ipSec()[i];
+          if (!(ipSecRule.mode().get_selection () == TCCIPsec__Mode::ALT_transport || 
+               ipSecRule.mode().get_selection () == TCCIPsec__Mode::ALT_tunnel))
+            throw Error ( TCCIPsec__Result::parameterInvalid );
+          sadb_x_ipsecrequest   * policyExt2 = (sadb_x_ipsecrequest*) ( msg + len );
+          memset ( policyExt2, 0, sizeof ( * policyExt2 ) ); // for better portability
+          policyExt2->sadb_x_ipsecrequest_len = sizeof ( *policyExt2 );
+          policyExt2->sadb_x_ipsecrequest_proto = ipSecProtoToIPProto ( (int) ipSecRule.protocol() );
+          if ( ipSecRule.mode().get_selection () == TCCIPsec__Mode::ALT_transport){ 
+             policyExt2->sadb_x_ipsecrequest_mode = IPSEC_MODE_TRANSPORT;
+          }
+          else {  
+             policyExt2->sadb_x_ipsecrequest_mode = IPSEC_MODE_TUNNEL;
+          }   
+          int reqId = 0;
+          unsigned char level = ipSecRuleLevelToLevel ( rule.ipSec()[i].level (), & reqId );
+          policyExt2->sadb_x_ipsecrequest_level = level;
+          //policyExt2->sadb_x_ipsecrequest_reserved1 = 0;
+          policyExt2->sadb_x_ipsecrequest_reqid = reqId;
+          //policyExt2->sadb_x_ipsecrequest_reserved2 = 0;
+          policyExt->sadb_x_policy_len += sizeof ( *policyExt2 ) / 8;
+          len += sizeof ( *policyExt2 );
+          if ( ipSecRule.mode().get_selection () == TCCIPsec__Mode::ALT_tunnel){
+            TCCIPsec__Tunnel tunnel = ipSecRule.mode().tunnel(); 
+            len += set_saEndPoint( msg+len, tunnel.srcAddr(), tunnel.srcPort());
+            len += set_saEndPoint( msg+len, tunnel.dstAddr(), tunnel.dstPort());
+          }
+        }
+        break;
+      }
+      default:
+        throw Error ( TCCIPsec__Result::parameterInvalid );
+    }
+    setSadbMsg ( & msg, SADB_X_SPDADD, SADB_SATYPE_UNSPEC, len/8, pfKey.getSeq () );
+    pfKey.send ( & msg, len );
+    pfKey.checkAnswer ();
+  } catch ( Error err ) {
+    TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SPDB__add: Leave (error)" );
+    return err.result;
+  }
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SPDB__add: Leave (ok)" );
+  return TCCIPsec__Result::ok;
+}
+
+TCCIPsec__Result f__IPsec__SPDB__delete (
+    const CHARSTRING& srcAddress,
+    const INTEGER& srcPrefixLen,
+    const INTEGER& srcPort,
+    const CHARSTRING& dstAddress,
+    const INTEGER& dstPrefixLen,
+    const INTEGER& dstPort,
+    const TCCIPsec__TranspProto& transpProto,
+    const TCCIPsec__PolicyDirection& dir )
+{
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SPDB__delete: Enter" );
+  try {
+    PfKey           pfKey;
+    unsigned char   msg[1024];
+    int             len = sizeof ( sadb_msg );
+    len += setAddressPart ( msg + len, SADB_EXT_ADDRESS_SRC, srcAddress, srcPrefixLen, transpProto, srcPort );
+    len += setAddressPart ( msg + len, SADB_EXT_ADDRESS_DST, dstAddress, dstPrefixLen, transpProto, dstPort );
+    sadb_x_policy   * policyExt = (sadb_x_policy*) ( msg + len );
+    memset ( policyExt, 0, sizeof ( * policyExt ) ); // for better portability
+    policyExt->sadb_x_policy_len = sizeof ( * policyExt ) / 8;
+    policyExt->sadb_x_policy_exttype = SADB_X_EXT_POLICY;
+    //policyExt->sadb_x_policy_type = 0;
+    policyExt->sadb_x_policy_dir = dir; // Depends on enum values of TCCIPsec_PolicyDirection
+    //policyExt->sadb_x_policy_reserved = 0;
+    //policyExt->sadb_x_policy_id = 0;
+    //policyExt->sadb_x_policy_priority = 0; from kernel version 2.6.6
+    len += sizeof ( * policyExt );
+    setSadbMsg ( & msg, SADB_X_SPDDELETE, SADB_SATYPE_UNSPEC, len / 8, pfKey.getSeq () );
+    pfKey.send ( & msg, len );
+    pfKey.checkAnswer ();
+  } catch ( Error err ) {
+    TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SPDB__delete: Leave (error)" );
+    return err.result;
+  }
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SPDB__delete: Leave (ok)" );
+  return TCCIPsec__Result::ok;
+}
+
+TCCIPsec__Result f__IPsec__SPDB__flush ()
+{
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SPDB__flush: Enter" );
+  try {
+    PfKey     pfKey;
+    sadb_msg  msg;
+    setSadbMsg ( & msg, SADB_X_SPDFLUSH, SADB_SATYPE_UNSPEC, SADB_MSG_LEN64, pfKey.getSeq () );
+    pfKey.send ( & msg, sizeof ( msg ) );
+    pfKey.checkAnswer ();
+  } catch ( Error err ) {
+    TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SPDB__flush: Leave (error)" );
+    return err.result;
+  }
+  TTCN_Logger::log ( TTCN_DEBUG, "TCCIPsec: f__IPsec__SPDB__flush: Leave (ok)" );
+  return TCCIPsec__Result::ok;
+}
+#endif // defined USE_KAME_IPSEC
+
+#endif // defined USE_IPSEC || defined USE_KAME_IPSEC
+
+#if ! defined USE_IPSEC && ! defined USE_KAME_IPSEC
+TCCIPsec__Result f__IPsec__SADB__add (
+    const CHARSTRING& srcAddress,
+    const CHARSTRING& dstAddress,
+    const TCCIPsec__Protocol& protocol,
+    const INTEGER& spi,
+    const TCCIPsec__ExtensionList& extensionList,
+    const TCCIPsec__Algorithm& alg,
+    const BOOLEAN& setparitybit = 0,
+    const BOOLEAN& useNatt = 0,
+    const TCCIPsec__IPsecMode& ipSecMode = TCCIPsec__IPsecMode::anyMode)
+{
+  static bool first = true;
+  if ( first ) {
+    TTCN_Logger::log ( TTCN_WARNING, "TCCIPsec: f__IPsec__SADB__add: IPsec support was not specified during compilation" );
+    first = false;
+  }
+  return TCCIPsec__Result::notImplemented;
+}
+TCCIPsec__Result f__IPsec__SADB__delete (
+    const CHARSTRING& srcAddress,
+    const CHARSTRING& dstAddress,
+    const TCCIPsec__Protocol& protocol,
+    const INTEGER& spi )
+{
+  static bool first = true;
+  if ( first ) {
+    TTCN_Logger::log ( TTCN_WARNING, "TCCIPsec: f__IPsec__SADB__delete: IPsec support was not specified during compilation" );
+    first = false;
+  }
+  return TCCIPsec__Result::notImplemented;
+}
+TCCIPsec__Result f__IPsec__SADB__flush ()
+{
+  static bool first = true;
+  if ( first ) {
+    TTCN_Logger::log ( TTCN_WARNING, "TCCIPsec: f__IPsec__SADB__flush: IPsec support was not specified during compilation" );
+    first = false;
+  }
+  return TCCIPsec__Result::notImplemented;
+}
+#endif // ! defined USE_IPSEC && ! defined USE_KAME_IPSEC
+
+#if ! defined USE_KAME_IPSEC
+TCCIPsec__Result f__IPsec__SPDB__add (
+    const CHARSTRING& srcAddress,
+    const INTEGER& srcPrefixLen,
+    const INTEGER& srcPort,
+    const CHARSTRING& dstAddress,
+    const INTEGER& dstPrefixLen,
+    const INTEGER& dstPort,
+    const TCCIPsec__TranspProto& transpProto,
+    const TCCIPsec__PolicyDirection& dir,
+    const TCCIPsec__PolicyRule& rule )
+{
+  static bool first = true;
+  if ( first ) {
+    TTCN_Logger::log ( TTCN_WARNING, "TCCIPsec: f__IPsec__SPDB__add: IPsec SPDB support was not specified during compilation" );
+    first = false;
+  }
+  return TCCIPsec__Result::notImplemented;
+}
+TCCIPsec__Result f__IPsec__SPDB__delete (
+    const CHARSTRING& srcAddress,
+    const INTEGER& srcPrefixLen,
+    const INTEGER& srcPort,
+    const CHARSTRING& dstAddress,
+    const INTEGER& dstPrefixLen,
+    const INTEGER& dstPort,
+    const TCCIPsec__TranspProto& transpProto,
+    const TCCIPsec__PolicyDirection& dir )
+{
+  static bool first = true;
+  if ( first ) {
+    TTCN_Logger::log ( TTCN_WARNING, "TCCIPsec: f__IPsec__SPDB__delete: IPsec SPDB support was not specified during compilation" );
+    first = false;
+  }
+  return TCCIPsec__Result::notImplemented;
+}
+TCCIPsec__Result f__IPsec__SPDB__flush ()
+{
+  static bool first = true;
+  if ( first ) {
+    TTCN_Logger::log ( TTCN_WARNING, "TCCIPsec: f__IPsec__SPDB__flush: IPsec SPDB support was not specified during compilation" );
+    first = false;
+  }
+  return TCCIPsec__Result::notImplemented;
+}
+#endif //! defined USE_KAME_IPSEC
+
+}
diff --git a/src/TCCIPsec_Definitions.ttcn b/src/TCCIPsec_Definitions.ttcn
new file mode 100644
index 0000000..0cb87b2
--- /dev/null
+++ b/src/TCCIPsec_Definitions.ttcn
@@ -0,0 +1,636 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCIPsec_Definitions.ttcn
+//  Description:        TCC Useful Functions: Definitions for IPsec functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2012-10-31
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+module TCCIPsec_Definitions {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_IPsecResult
+//
+//  Purpose:
+//     Declares the possible return values of IPsec handling functions
+//
+//  Elements:
+//    ok:
+//      The function finished successfully
+//    parameterInvalid:
+//      One of the function parameters was invalid
+//      The error is indicated either by the library or the kernel.
+//    alreadyExisted:
+//      Entry already existed while trying to add it
+//    notFound:
+//      Entry was not found while trying to delete or modify it
+//    insufficientPrivilege:
+//      The calling process does not have the necessary privilege to use the
+//      PF_KEY interface or to handle the databases of IPsec.
+//    notImplemented:
+//      Not implemented:
+//        The library is compiled without IPsec support or with limited support
+//        Support for SPD handling is platform dependent
+//    socketError:
+//      Other type of error during socket operation
+//      The logs contain details on the error
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type enumerated TCCIPsec_Result {
+    ok (0),
+    parameterInvalid,
+    alreadyExisted,
+    notFound,
+    insufficientPrivilege,
+    notImplemented,
+    socketError
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Const: c_TCCIPsec_anyPort
+//
+//  Purpose:
+//    Provides port value representing any port
+//
+//  Value:
+//    0
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  const integer c_TCCIPsec_anyPort := 0;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Const: c_TCCIPsec_prefixAll
+//
+//  Purpose:
+//    Provides port value representing any port
+//
+//  Value:
+//    0
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  const integer c_TCCIPsec_prefixAll := -1;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Protocol
+//
+//  Purpose:
+//     Declares identifiers for the possible security protocols
+//
+//  Elements:
+//    ah:
+//      Authentication Header
+//    esp:
+//      Encapsulated Security Payload
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type enumerated TCCIPsec_Protocol {
+    ah (2),
+    esp (3)
+    /*,ipComp (9)*/
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_IPsecMode
+//
+//  Purpose:
+//     Declares identifiers for the possible security association
+//
+//  Elements:
+//    anyMode: this is the unspecified, default mode
+//    transport: turns on transport mode in security association
+//    tunnel: turns on tunneling mode in security association
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type enumerated TCCIPsec_IPsecMode {
+    anyMode (0),
+    transport (1),
+    tunnel (2)
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Extension
+//
+//  Purpose:
+//    Defines a union of possible extensions for Security Associations (SAs)
+//
+//  Elements:
+//    policyId - *integer*:
+//      Identifier to link a Security Association (SA) to Security Policy (SP)
+//    hardLifetime - *integer*:
+//      Hard Lifetime in seconds
+//    softLifetime - *integer*:
+//      Soft Lifetime in seconds
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type union TCCIPsec_Extension {
+    integer                       policyId,
+    integer                       hardLifetime,
+    integer                       softLifetime
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_ExtensionList
+//
+//  Purpose:
+//    Defines a list of extensions for the SA adding function
+//
+//  Elements:
+//    record of *TCCIPsec_Extension*
+//
+// Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record of TCCIPsec_Extension TCCIPsec_ExtensionList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Key
+//
+//  Purpose:
+//    Defines a union for storing a key for an SA.
+//    The key is specified inside the *TCCIPsec_Algorithm* alg parameter of
+//    the f_IPsec_SADB_add function.
+//
+//  Elements:
+//    hex - *hexstring*:
+//      Key in hexstring format
+//    text - *charstring*:
+//      Key in charstring format
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type union TCCIPsec_Key {
+    hexstring       hex,
+    charstring      text
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_EAlgo
+//
+//  Purpose:
+//     Declares identifiers for the possible encryption algorithms
+//
+//  Elements:
+//    EALG_NONE:
+//      The "null" algorithm
+//    EALG_3DESCBC:
+//      The "3des-cbc" algorithm (rfc2451)
+//    EALG_NULL:
+//      The NULL encryption algorithm (rfc2367)
+//    EALG_AESCBC:
+//      The "aes-cbc" algorithm (
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type enumerated TCCIPsec_EAlgo {
+    EALG_NONE (0),
+    EALG_3DESCBC (3),
+    EALG_NULL(11),
+    EALG_AESCBC (12)
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_AAlgo
+//
+//  Purpose:
+//     Declares identifiers for the possible integrity protection algorithms
+//
+//  Elements:
+//    AALG_NONE:
+//      The "null" algorithm
+//    AALG_MD5HMAC:
+//      The "hmac-md5" algorithm (rfc2403)
+//    AALG_SHA1HMAC:
+//      The "hmac-sha1" algorithm (rfc2404)
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type enumerated TCCIPsec_AAlgo {
+    AALG_NONE (0),
+    AALG_MD5HMAC (2),
+    AALG_SHA1HMAC (3)
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Encr
+//
+//  Purpose:
+//    Defines a record for storing the encryption algorithm identifier and
+//    key.
+//
+//  Elements:
+//    algo - *TCCIPsec_EAlgo*:
+//      Identifier of the encryption algorithm
+//    key - *TCCIPsec_Key*:
+//      Key for the algorithm
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_Encr {
+    TCCIPsec_EAlgo                algo,
+    TCCIPsec_Key                  key
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Auth
+//
+//  Purpose:
+//    Defines a record for storing the integrity protection algorithm
+//    identifier and key.
+//
+//  Elements:
+//    algo - *TCCIPsec_AAlgo*:
+//      Identifier of the integrity protection algorithm
+//    key - *TCCIPsec_Key*:
+//      Key for the algorithm
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_Auth {
+    TCCIPsec_AAlgo                algo,
+    TCCIPsec_Key                  key
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Auth
+//
+//  Purpose:
+//    Defines a record for storing the encryption and integrity protection
+//    algorithm identifiers and the keys.
+//
+//  Elements:
+//    ealgo - *TCCIPsec_EAlgo*:
+//      Identifier of the encryption algorithm
+//    ekey - *TCCIPsec_Key*:
+//      Key for the encryption algorithm
+//    aalgo - *TCCIPsec_AAlgo*:
+//      Identifier of the integrity protection algorithm
+//    akey - *TCCIPsec_Key*:
+//      Key for the integrity protection algorithm
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_EncrAndAuth {
+    TCCIPsec_EAlgo                ealgo,
+    TCCIPsec_Key                  ekey,
+    TCCIPsec_AAlgo                aalgo,
+    TCCIPsec_Key                  akey
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Algorithm
+//
+//  Purpose:
+//    Defines a union for storing the possible combination of algorithms with
+//    its keys. It is used as the *TCCIPsec_Algorithm* alg parameter of the
+//    f_IPsec_SADB_add function.
+//
+//  Elements:
+//    encr - *TCCIPsec_Encr*:
+//      encryption algorithm data
+//    auth - *TCCIPsec_Auth*
+//      integrity protection algorithm data
+//    encrAndAuth - *TCCIPsec_EncrAndAuth*
+//      Key in charstring format
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type union TCCIPsec_Algorithm {
+    TCCIPsec_Encr                 encr,
+    TCCIPsec_Auth                 auth,
+    TCCIPsec_EncrAndAuth          encrAndAuth
+    /*,Compr compr*/
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_TranspProto
+//
+//  Purpose:
+//     Declares identifiers for the possible upper layer protocols
+//
+//  Elements:
+//    anyTranspProto:
+//      Either TCP or UDP protocol
+//    tcpProto:
+//      The TCP protocol
+//    udpProto:
+//      The UDP protocol
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type enumerated TCCIPsec_TranspProto {
+    anyTranspProto (0),
+    tcpProto (6),
+    udpProto (17)
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_TranspProto
+//
+//  Purpose:
+//    Declares identifiers for the possible directions for which a policy is
+//    applied.
+//
+//  Elements:
+//    inDir:
+//      incoming packets
+//    outDir:
+//      outgoing packets
+//    fwdDir:
+//      forwarded packets
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////////////////////////
+  type enumerated TCCIPsec_PolicyDirection {
+    inDir (1),
+    outDir (2),
+    fwdDir (3)
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_DiscardRule
+//
+//  Purpose:
+//    Declares a type to represent the policy rule to discard packets.
+//
+//  Elements:
+//    -
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_DiscardRule {};
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_NoneRule
+//
+//  Purpose:
+//    Declares a type to represent the policy rule to bypass IPsec.
+//
+//  Elements:
+//    -
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_NoneRule {};
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Transport
+//
+//  Purpose:
+//    Declares a type to represent the transport IPsec mode -
+//    as opposed to tunnel mode
+//
+//  Elements:
+//    -
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_Transport {};
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Tunnel
+//
+//  Purpose:
+//    Declares a type to represent the tunnel IPsec mode -
+//    as opposed to transport mode
+//
+//  Elements:
+//    srcAddr: source address
+//    srcPort: source port
+//    dstAddr: destination address
+//    dstPort: destination port
+//
+//  Detailed Comments: Address and port pairs for the tunnel. Used in SPDB rules.
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_Tunnel {
+        charstring    srcAddr,
+        integer       srcPort,
+        charstring    dstAddr,
+        integer       dstPort
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Mode
+//
+//  Purpose:
+//    Declares an union for storing to IPsec mode
+//
+//  Elements:
+//    transport - *TCCIPsec_Transport*:
+//      identifies the transport IPsec mode
+//    tunnel - *TCCIPsec_Tunnel*:
+//      identifies the tunnel IPsec mode
+//
+//  Detailed Comments:
+//    IPsec supports transport and tunnel mode.
+//
+///////////////////////////////////////////////////////////////////////////////
+  type union TCCIPsec_Mode {
+    TCCIPsec_Transport            transport,
+    TCCIPsec_Tunnel               tunnel
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_DefaultLevel
+//
+//  Purpose:
+//    Declares a type to represent the policy level indicating that system
+//    defaults has to be used.
+//
+//  Elements:
+//    -
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_DefaultLevel {};
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_UseLevel
+//
+//  Purpose:
+//    Declares a type to represent the policy level indicating that IPsec
+//    should be used if appropriate SA is available. If SA is naot available
+//    IPsec is bypassed.
+//
+//  Elements:
+//    -
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_UseLevel {};
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_UseLevel
+//
+//  Purpose:
+//    Declares a type to represent the policy level indicating that IPsec
+//    has to be used unconditionally.
+//
+//  Elements:
+//    -
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_RequireLevel {};
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_UseLevel
+//
+//  Purpose:
+//    Declares a type to represent the policy level indicating that IPsec
+//    has to be used with the SA or SAs indicated by id.
+//
+//  Elements:
+//    id - *integer*:
+//      link to SAs
+//
+//  Detailed Comments:
+//    An SA is linked to an SP when the SA has a policyId extension with the
+//    value of the SP's id.
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_UniqueLevel {
+    integer id
+  }
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_RuleLevel
+//
+//  Purpose:
+//    Defines a union for storing rule level.
+//
+//  Elements:
+//    defaultLevel - *TCCIPsec_DefaultLevel*:
+//      The level represnting default
+//    use - *TCCIPsec_UseLevel*
+//      The use level
+//    require - *TCCIPsec_RequireLevel*
+//      The require level
+//    unique - *TCCIPsec_UniqueLevel*
+//      The unique level
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type union TCCIPsec_RuleLevel {
+    TCCIPsec_DefaultLevel         defaultLevel,
+    TCCIPsec_UseLevel             use,
+    TCCIPsec_RequireLevel         require,
+    TCCIPsec_UniqueLevel          unique
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_Rule
+//
+//  Purpose:
+//    Declares a record for storing an IPsec rule.
+//
+//  Elements:
+//    protocol - *TCCIPsec_Protocol*:
+//      The security protocol to use
+//    mode - *TCCIPsec_Mode*:
+//      IPsec mode
+//    level - *TCCIPsec_RuleLevel*:
+//      rule level
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record TCCIPsec_Rule {
+    TCCIPsec_Protocol             protocol,
+    TCCIPsec_Mode                 mode,
+    TCCIPsec_RuleLevel            level
+  };
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_ExtensionList
+//
+//  Purpose:
+//    Defines a list of IPsec rules
+//
+//  Elements:
+//    record of *TCCIPsec_Rule*
+//
+// Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type record of TCCIPsec_Rule TCCIPsec_RuleList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: TCCIPsec_RuleLevel
+//
+//  Purpose:
+//    Defines a union for storing a policy rule.
+//
+//  Elements:
+//    discard - *TCCIPsec_DiscardRule*:
+//      The discard policy rule
+//    noneRule - *TCCIPsec_NoneRule*
+//      The none policy rule
+//    require - *TCCIPsec_RequireLevel*
+//      The require level
+//    ipSec - *TCCIPsec_RuleList*
+//      A list of IPsec policy rules
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  type union TCCIPsec_PolicyRule {
+    TCCIPsec_DiscardRule          discard,
+    TCCIPsec_NoneRule             noneRule,
+    TCCIPsec_RuleList             ipSec
+  };
+} // TCCIPsec_Definitions
diff --git a/src/TCCIPsec_Functions.ttcn b/src/TCCIPsec_Functions.ttcn
new file mode 100644
index 0000000..b4e96f7
--- /dev/null
+++ b/src/TCCIPsec_Functions.ttcn
@@ -0,0 +1,221 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCIPsec_Functions.ttcn
+//  Description:        TCC Useful Functions: IPsec Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2012-10-31
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCIPsec_Functions
+//
+//  Purpose:
+//    This module provides access to the IPsec parameter databases: SADB and SPDB
+//
+//  Module Parameters:
+//      -
+//
+//  Module depends on:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCIPsec_Functions {
+  import from TCCIPsec_Definitions all;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_IPsec_SADB_add
+//
+//  Purpose:
+//    Adds a Security Association to the database (SADB)
+//
+//  Parameters:
+//    srcAddress - *in* *charstring* - source IP address
+//    dstAddress - *in* *charstring* - destination IP address
+//    protocol - *in* <TCCIPsec_Protocol> - security protocol (esp or ah)
+//    spi - *in* *integer* - Security Parameter Index
+//    extensionList - *in* <TCCIPsec_ExtensionList> - list of extensions
+//    alg - *in* - <TCCIPsec_Algorithm> - encryption and integrity algorithms and keys
+//    setparitybit - *in* *boolean* - paritybit
+//    useNatt - *in* *boolean* - nat traversal support
+//    ipSecMode - *in* <TCCIPsec_IPsecMode> - mode transport, tunnel or anymode
+//
+//  Return Value:
+//    TCCIPsec_Result - indicates success (ok) or error
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  external function f_IPsec_SADB_add (
+    in charstring               srcAddress,
+    in charstring               dstAddress,
+    in TCCIPsec_Protocol        protocol,
+    in integer                  spi,
+    in TCCIPsec_ExtensionList   extensionList := {},
+    in TCCIPsec_Algorithm       alg,
+    in boolean                  setparitybit := false,
+    in boolean                  useNatt := false,
+    in TCCIPsec_IPsecMode       ipSecMode := anyMode
+  ) return TCCIPsec_Result;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_IPsec_SADB_delete
+//
+//  Purpose:
+//    Deletes a Security Association from the database (SADB)
+//
+//  Parameters:
+//    srcAddress - *in* *charstring* - source IP address
+//    dstAddress - *in* *charstring* - destination IP address
+//    protocol - *in* *TCCIPsec_Protocol* - security protocol (esp or ah)
+//    spi - *in* *integer* - Security Parameter Index
+//
+//  Return Value:
+//    TCCIPsec_Result - indicates success (ok) or error
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  external function f_IPsec_SADB_delete (
+    in charstring               srcAddress,
+    in charstring               dstAddress,
+    in TCCIPsec_Protocol        protocol,
+    in integer                  spi
+  ) return TCCIPsec_Result;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_IPsec_SADB_flush
+//
+//  Purpose:
+//    Deletes all Security Associations from the database (SADB)
+//
+//  Parameters:
+//    -
+//
+//  Return Value:
+//    TCCIPsec_Result - indicates success (ok) or error
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  external function f_IPsec_SADB_flush () return TCCIPsec_Result;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_IPsec_SPDB_add
+//
+//  Purpose:
+//    Adds a Security Policy to the database (SPDB)
+//
+//  Parameters:
+//    srcAddress - *in* *charstring* - source IP address
+//    srcPrefixLen - *in* *integer* - indicates the source address range
+//    srcPort - *in* *integer* - source port
+//    dstAddress - *in* *charstring* - destination IP address
+//    srcPrefixLen - *in* *integer* - indicates the destination address range
+//    srcPort - *in* *integer* - destination port
+//    transpProto - *in* *TCCIPsec_TranspProto* - transport protocol (TCP or UDP)
+//    dir - *in* *TCCIPsec_PolicyDirection* - Direction of data traffic
+//    rule - *in* *TCCIPsec_PolicyRule* - Rule: how to handle the packet
+//
+//  Return Value:
+//    TCCIPsec_Result - indicates success (ok) or error
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  external function f_IPsec_SPDB_add (
+    in charstring               srcAddress,
+    in integer                  srcPrefixLen := c_TCCIPsec_prefixAll,
+    in integer                  srcPort := c_TCCIPsec_anyPort,
+    in charstring               dstAddress,
+    in integer                  dstPrefixLen := c_TCCIPsec_prefixAll,
+    in integer                  dstPort := c_TCCIPsec_anyPort,
+    in TCCIPsec_TranspProto     transpProto := anyTranspProto,
+    in TCCIPsec_PolicyDirection dir,
+    in TCCIPsec_PolicyRule      rule
+  ) return TCCIPsec_Result;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_IPsec_SPDB_delete
+//
+//  Purpose:
+//    Deletes a Security Policy from the database (SPD)
+//
+//  Parameters:
+//    srcAddress - *in* *charstring* - source IP address
+//    srcPrefixLen - *in* *integer* - indicates the source address range
+//    srcPort - *in* *integer* - source port
+//    dstAddress - *in* *charstring* - destination IP address
+//    srcPrefixLen - *in* *integer* - indicates the destination address range
+//    srcPort - *in* *integer* - destination port
+//    transpProto - *in* *TCCIPsec_TranspProto* - transport protocol (TCP or UDP)
+//    dir - *in* *TCCIPsec_PolicyDirection* - Direction of data traffic
+//
+//  Return Value:
+//    TCCIPsec_Result - indicates success (ok) or error
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  external function f_IPsec_SPDB_delete (
+    in charstring               srcAddress,
+    in integer                  srcPrefixLen := c_TCCIPsec_prefixAll,
+    in integer                  srcPort := c_TCCIPsec_anyPort,
+    in charstring               dstAddress,
+    in integer                  dstPrefixLen := c_TCCIPsec_prefixAll,
+    in integer                  dstPort := c_TCCIPsec_anyPort,
+    in TCCIPsec_TranspProto     transpProto := anyTranspProto,
+    in TCCIPsec_PolicyDirection dir
+  ) return TCCIPsec_Result;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_IPsec_SPDB_flush
+//
+//  Purpose:
+//    Deletes all Security Policies from the database (SPD)
+//
+//  Parameters:
+//    -
+//
+//  Return Value:
+//    TCCIPsec_Result - indicates success (ok) or error
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+  external function f_IPsec_SPDB_flush () return TCCIPsec_Result;
+} // TCCIPsec_Functions
diff --git a/src/TCCInterface.cc b/src/TCCInterface.cc
new file mode 100644
index 0000000..f6d54ed
--- /dev/null
+++ b/src/TCCInterface.cc
@@ -0,0 +1,1104 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCInterface.cc
+//  Description:        TCC Useful Functions: Interface Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2012-10-18
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCInterface_Functions.hh"
+
+#include <errno.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include <arpa/inet.h>
+#include <net/if.h>
+#include <memory.h>
+#include <netdb.h>              // gethostbyname
+#include <errno.h>
+#if defined LINUX
+ #include <ifaddrs.h>
+ #include <linux/types.h>
+ #include "TCCInterface_ip.h"
+#endif
+
+#if defined LKSCTP_1_0_7 || defined LKSCTP_1_0_9 || USE_SCTP
+#include <netinet/sctp.h>
+#endif
+
+#if defined SOLARIS || defined SOLARIS8
+# include <sys/sockio.h>
+#endif
+
+namespace TCCInterface__Functions {
+
+TCCInterface__PortStatus f__getPortAvailabilityStatus(const CHARSTRING& ipAddress, const INTEGER& portNumber,
+                       const TCCInterface__ProtocolType& protocolType){
+
+  int addrfamily = 0;
+  int addrtype = 0;
+  int addrproto = 0;
+
+  struct sockaddr_in saddr;
+  memset(&saddr, 0, sizeof(saddr));
+// Legacy system support just for fun. Because we like Noah
+#ifdef AF_INET6
+  struct sockaddr_in6 saddr6;
+  memset(&saddr6, 0, sizeof(saddr6));
+#endif
+  
+  // Always prepare to worst
+  TCCInterface__PortStatus ret_val = TCCInterface__PortStatus::PORT__STATUS__PARAMETER__ERROR;
+  // and have a beer
+
+  // Ah, new acquisitions! You are a protocol droid, are you not?
+  // I am C-3PO, human/cyborg...
+  // Just determine the protocol
+  switch(protocolType){
+    case TCCInterface__ProtocolType::PROTO__TYPE__UDP:
+      addrtype=SOCK_DGRAM;
+      break;
+    case TCCInterface__ProtocolType::PROTO__TYPE__TCP:
+      addrtype=SOCK_STREAM;
+      break;
+#if defined LKSCTP_1_0_7 || defined LKSCTP_1_0_9 || USE_SCTP
+    case TCCInterface__ProtocolType::PROTO__TYPE__SCTP:
+      addrtype=SOCK_STREAM;
+      addrproto=IPPROTO_SCTP;
+      break;
+#endif
+    default:
+      //  Ouch! Pay attention to what you're doing!
+      TTCN_warning("The f_getPortAvailabilityStatus was called with unsupported protocol. Try to enable the sctp support.");
+      return ret_val;
+      break;
+  }
+
+  // What port?
+  if(portNumber<=0 || portNumber>65535){
+    // I'm terribly sorry about all this.
+      TTCN_warning("The f_getPortAvailabilityStatus was called with invalid port number. %s",(const char*)int2str(portNumber));
+      return ret_val;
+    
+  }
+
+  // Which address?
+  if(inet_pton(AF_INET, ipAddress, &(saddr.sin_addr))) {
+    saddr.sin_family = AF_INET;
+    saddr.sin_port = htons( portNumber );
+    addrfamily = AF_INET;
+  }
+#ifdef AF_INET6
+  else if(inet_pton(AF_INET6, ipAddress, &(saddr6.sin6_addr))) {
+    saddr6.sin6_family = AF_INET6;
+    saddr6.sin6_port = htons( portNumber );
+    addrfamily = AF_INET6;
+  }
+#endif
+  else {
+    // This is all your fault. 
+      TTCN_warning("The f_getPortAvailabilityStatus was called with invalid address: %s",(const char*)ipAddress);
+      return ret_val;
+  }
+
+  int sock=socket(addrfamily,addrtype,addrproto);
+  if(sock==-1){
+    // We've stopped. Wake up! Wake up! 
+    TTCN_warning("f_getPortAvailabilityStatus socket call failed: %d %s",errno,strerror(errno));
+    return TCCInterface__PortStatus::PORT__STATUS__INTERNAL__ERROR;
+  }
+
+  int b_res=-1;
+  if(addrfamily == AF_INET){
+    b_res=bind(sock,(struct sockaddr *)&saddr, sizeof(saddr));
+  }
+#ifdef AF_INET6
+  else {
+    b_res=bind(sock,(struct sockaddr *)&saddr6, sizeof(saddr6));
+  }
+#endif
+
+  if(b_res==0){ // success. The port was free to use, but not more
+    ret_val = TCCInterface__PortStatus::PORT__STATUS__WAS__VACANT;
+  } else {
+    if(errno==EADDRINUSE){  // Somebody else use the port already
+      ret_val = TCCInterface__PortStatus::PORT__STATUS__WAS__OCCUPIED;
+    } else {  
+      // I have a bad feeling about this.
+      // Wrong address/port combination.
+      TTCN_warning("The f_getPortAvailabilityStatus called with invalid arguments. The system returned: %d %s",errno,strerror(errno));
+      TTCN_warning("f_getPortAvailabilityStatus parameters: %s %s",(const char*)ipAddress,(const char*)int2str(portNumber));
+    }
+  }
+  close(sock);
+  // the status information is not valid any more. We can return whatever we want. Doesn't matter.
+  return ret_val;
+}
+
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__setIP
+// 
+//  Purpose:
+//    Set IP address, subnet mask and broadcast address in a network inteface
+//    If number is set, a range of virtual interfaces are set up with
+//    continuous IP address (no subnet mask, broadcast checking)
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    ipaddress - *in* *charstring* - starting IP address
+//    subnetmask - *in* *charstring* - subnetmask
+//    broadcast - *in* *charstring* - broadcast
+//    number - *in* *integer* - number of interfaces to set up
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+void f__setIP(const CHARSTRING& interface, const CHARSTRING& ipaddress,
+              const CHARSTRING& subnetmask, const CHARSTRING& broadcast,
+              const INTEGER& number)
+{
+#if defined USE_IPROUTE && defined LINUX
+  if (! f__setIP__ip(interface, ipaddress, 32, 1)){
+    TTCN_warning("f_setIP_ip error!");
+  }
+#else
+
+#if defined LINUX || defined SOLARIS || defined SOLARIS8
+  /* Check the name of the interface */
+  if (!interface.is_bound())
+    TTCN_error("f_setIP(): Unbound argument `interface'.");
+  int interface_len = interface.lengthof();
+  if (interface_len == 0) TTCN_error("f_setIP(): Argument `interface' "
+      "is an empty string.");
+  else if (interface_len > IFNAMSIZ) TTCN_error("f_setIP(): Argument "
+      "`interface' is too long (expected: at most %d, given: %d characters).",
+      IFNAMSIZ, interface_len);
+  const char *interface_str = interface;
+
+  /* Check the IP address */
+  if (!ipaddress.is_bound())
+    TTCN_error("f_setIP(): Unbound argument `ipaddress'.");
+  int ip_len = ipaddress.lengthof();
+  if (ip_len < 7 || ip_len > 15) TTCN_error("f_setIP(): Invalid length of argument `ipaddress' "
+      "(expected 7-15, given: %d characters).", ip_len);
+
+  /* Check the subnet mask */
+  if (!subnetmask.is_bound())
+    TTCN_error("f_setIP(): Unbound argument `subnetmask'.");
+  int subnetmask_len = subnetmask.lengthof();
+  if (subnetmask_len < 7 || subnetmask_len > 15) TTCN_error("f_setIP(): Invalid length of argument "
+    "`subnetmask' (expected 7-15, given: %d characters).", subnetmask_len);
+
+  /* Check the broadcast address */
+  if (!broadcast.is_bound())
+    TTCN_error("f_setIP(): Unbound argument `broadcast'.");
+  int broadcast_len = broadcast.lengthof();
+  if (broadcast_len < 7 || broadcast_len > 15) TTCN_error("f_setIP(): Invalid length of argument "
+    "`broadcast' (expected 7-15, given: %d characters).", broadcast_len);
+    
+  /* Check number parameter */
+  int loop = 1;
+  if (!number.is_bound())
+    TTCN_error("f_setIP(): Unbound argument `number'.");
+  else
+    loop = (int)number;
+
+  /* Get start position (of virtual interface) */
+  int start = 0;
+  if (strchr(interface_str, ':') != NULL) {
+    start = atoi(strchr(interface_str,':')+1);
+  }
+  
+  /* Convert addresses */
+  unsigned char ip[4];
+  unsigned char subnet[4];
+  unsigned char broad[4];
+  inet_aton(ipaddress, (struct in_addr *)&(ip[0]));
+  inet_aton(subnetmask, (struct in_addr *)&(subnet[0]));
+  inet_aton(broadcast, (struct in_addr *)&(broad[0]));
+  
+  /* Set address of interfaces */
+  if(loop != 1) {
+    /* Set up number of virtual interfaces */
+    for(int i=start; i<(loop+start); i++) {      
+      char *ifname;
+      ifname = (char *)Malloc(20*sizeof(char *));
+      
+      if(strchr(interface_str, ':') != NULL) {    // if virtual, change the end
+        strncpy(ifname, interface_str, strlen(interface_str)-strlen(strchr(interface_str,':'))+2);
+        ifname[strlen(interface_str)-strlen(strchr(interface_str,':'))+1] = '\0';
+        strcat(ifname,(const char *)int2str(i));
+      }
+      else {    // if real, append
+        strcpy(ifname,interface_str);
+        strcat(ifname,":");
+        strcat(ifname,(const char *)int2str(i));
+      }
+
+      /* Set the IP, Netmask, Broadcast for the actual virtual interface */
+
+      /* Open a socket */
+      int sock = socket(PF_INET, SOCK_DGRAM, 0);
+      if (sock < 0) TTCN_error("f_setIP(): Could not create socket.");
+
+      struct ifreq ifr;
+      struct sockaddr_in *addr = (struct sockaddr_in*)&ifr.ifr_addr;
+
+      /* Set the IP address */
+      memset(&ifr, 0, sizeof(struct ifreq));
+      memcpy(ifr.ifr_name, ifname, strlen(ifname));
+      addr->sin_family = AF_INET;
+      memcpy(&addr->sin_addr, ip, 4);
+
+      if (ioctl(sock, SIOCSIFADDR, &ifr) < 0) {
+        TTCN_warning("f_setIP(): Could not set IP address of interface `%s'.", interface_str);
+      }
+
+      /* Set the subnet mask */
+      memset(&ifr, 0, sizeof(struct ifreq));
+      memcpy(ifr.ifr_name, ifname, strlen(ifname));
+      addr->sin_family = AF_INET;
+      memcpy(&addr->sin_addr, subnet, 4);
+
+      if (ioctl(sock, SIOCSIFNETMASK, &ifr) < 0) {
+        TTCN_warning("f_setIP(): Could not set subnetmask of interface `%s'.",
+         interface_str);
+      }
+
+      /* Set the broadcast address */
+      memset(&ifr, 0, sizeof(struct ifreq));
+      memcpy(ifr.ifr_name, ifname, strlen(ifname));
+      addr->sin_family = AF_INET;
+      memcpy(&addr->sin_addr, broad, 4);
+
+      if (ioctl(sock, SIOCSIFBRDADDR, &ifr) < 0) {
+        TTCN_warning("f_setIP(): Could not set broadcast address of interface `%s'.", interface_str);
+      }
+
+      close(sock);
+      Free(ifname);
+      
+      /* Step the IPaddress */
+      if(ip[3]+1 > 254) {  // 255 for broadcast
+        ip[3] = 1;         //   0 reserved
+        ip[2] += 1;
+        if(ip[2] > 254) {
+          ip[2] = 0;
+          ip[1] += 1;
+          if(ip[1] > 254) {
+            ip[1] = 0;
+            ip[0] += 1;
+            if(ip[0] > 254) {
+              TTCN_error("f_setIP(): IP address range limit.");
+            }
+          }
+        }
+      }
+      else {
+        ip[3] += 1;
+      }
+
+    }//for end
+  }//if loop end
+  else {
+    /* Open a socket */
+    int sock = socket(PF_INET, SOCK_DGRAM, 0);
+    if (sock < 0) TTCN_error("f_setIP(): Could not create socket.");
+
+    struct ifreq ifr;
+    struct sockaddr_in *addr = (struct sockaddr_in*)&ifr.ifr_addr;
+
+    /* Set the IP address */
+    memset(&ifr, 0, sizeof(struct ifreq));
+    memcpy(ifr.ifr_name, interface_str, interface_len);
+    addr->sin_family = AF_INET;
+    memcpy(&addr->sin_addr, ip, 4);
+
+    if (ioctl(sock, SIOCSIFADDR, &ifr) < 0) {
+      TTCN_warning("f_setIP(): Could not set IP address of interface `%s'.",
+       interface_str);
+    }
+
+    /* Set the subnet mask */
+    memset(&ifr, 0, sizeof(struct ifreq));
+    memcpy(ifr.ifr_name, interface_str, interface_len);
+    addr->sin_family = AF_INET;
+    memcpy(&addr->sin_addr, subnet, 4);
+
+    if (ioctl(sock, SIOCSIFNETMASK, &ifr) < 0) {
+      TTCN_warning("f_setIP(): Could not set subnet mask of interface `%s'.",
+       interface_str);
+    }
+
+    /* Set the broadcast address */
+    memset(&ifr, 0, sizeof(struct ifreq));
+    memcpy(ifr.ifr_name, interface_str, interface_len);
+    addr->sin_family = AF_INET;
+    memcpy(&addr->sin_addr, broad, 4);
+
+    if (ioctl(sock, SIOCSIFBRDADDR, &ifr) < 0) {
+      TTCN_warning("f_setIP(): Could not set broadcast address of interface `%s'.",
+       interface_str);
+    }
+
+    close(sock);
+  }
+#else
+  TTCN_error("f_setIP(): Setting the IP address is supported on Linux and Solaris only.");
+#endif
+#endif // USE_IPROUTE
+}
+
+
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__deleteIP
+// 
+//  Purpose:
+//    Delete IP address from a network inteface
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+void f__deleteIP(const CHARSTRING& interface)
+{
+#if defined USE_IPROUTE && defined LINUX
+  if (! f__setIP__ip(interface, "", 32, 0)){
+    TTCN_warning("f_delIP_ip error!");
+  }
+#else
+
+#if defined LINUX || defined SOLARIS || defined SOLARIS8
+  /* Check the name of the interface */
+  if (!interface.is_bound())
+    TTCN_error("f_deleteIP(): Unbound argument `interface'.");
+  int interface_len = interface.lengthof();
+  if (interface_len == 0) TTCN_error("f_deleteIP(): Argument `interface' "
+      "is an empty string.");
+  else if (interface_len > IFNAMSIZ) TTCN_error("f_deleteIP(): Argument "
+      "`interface' is too long (expected: at most %d, given: %d characters).",
+      IFNAMSIZ, interface_len);
+  const char *interface_str = interface;
+
+  /* Open a socket */
+  int sock = socket(PF_INET, SOCK_DGRAM, 0);
+  if (sock < 0) TTCN_error("f_deleteIP(): Could not create socket.");
+
+  struct ifreq ifr;
+  memset(&ifr, 0, sizeof(struct ifreq));
+  memcpy(ifr.ifr_name, interface_str, interface_len);
+
+  if (strchr(interface_str, ':') != NULL) {
+    /* The interface is a virtual interface (e.g. eth1:0) */
+    /* set the status to down */
+    if (ioctl(sock, SIOCGIFFLAGS, &ifr) < 0) {
+      TTCN_warning("f_deleteIP(): Could not get the flags of interface `%s'.",
+        interface_str);
+    }
+    ifr.ifr_flags &= ~IFF_UP;
+    if (ioctl(sock, SIOCSIFFLAGS, &ifr) < 0) {
+      TTCN_warning("f_deleteIP(): Could not set the flags of interface `%s'.",
+        interface_str);
+    }
+  }
+  else {
+    /* The interface is a real interface (e.g. eth2) */
+    /* assign IP address 0.0.0.0 = delete */
+    struct sockaddr_in *addr = (struct sockaddr_in*)&ifr.ifr_addr;
+    addr->sin_family = AF_INET;
+    if (ioctl(sock, SIOCSIFADDR, &ifr) < 0) {
+      TTCN_warning("f_deleteIP(): Could not delete IP address on interface `%s'.",interface_str);
+    }
+  }
+
+  close(sock);
+#else
+  TTCN_error("f_deleteIP(): Deleting the IP address is supported on Linux and Solaris only.");
+#endif
+#endif
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__getIP
+// 
+//  Purpose:
+//    Get IP address, subnet mask and broadcast address from a network inteface
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    ip - *out* *charstring* - IP address
+//    netmask - *out* *charstring* - netmask
+//    broadcast - *out* *charstring* - broadcast
+//    addressType - *in* <TCCInterface_IPAddressType> - type of IP addresses (default is IPv4)
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////  
+void f__getIP(const CHARSTRING& interface, CHARSTRING& ip,
+                    CHARSTRING& netmask, CHARSTRING& broadcast, const TCCInterface__IPAddressType& addressType)
+{
+  ip ="";
+  netmask = "";
+  broadcast ="";
+  /* Check the name of the interface */
+  if (!interface.is_bound())
+    TTCN_error("f_getIP(): Unbound argument `interface'.");
+  int interface_len = interface.lengthof();
+  if (interface_len == 0) TTCN_error("f_getIP(): Argument `interface' "
+      "is an empty string.");
+  else if (interface_len > IFNAMSIZ) TTCN_error("f_getIP(): Argument "
+      "`interface' is too long (expected: at most %d, given: %d characters).",
+      IFNAMSIZ, interface_len);
+  const char *interface_str = interface;
+
+  switch (addressType) {
+    case TCCInterface__IPAddressType::IPv4: { //IPv4
+
+      /* Open a socket */
+      int sock = socket(PF_INET, SOCK_DGRAM, 0);
+      if (sock < 0) TTCN_error("f_getIP(): Could not create socket.");
+
+      struct ifreq ifr;
+      struct sockaddr_in *addr = (struct sockaddr_in*)&ifr.ifr_addr;   
+
+      /* Get IP address */
+      memset(&ifr, 0, sizeof(struct ifreq));
+      memcpy(ifr.ifr_name, interface_str, interface_len);
+  
+      if (ioctl(sock, SIOCGIFADDR, &ifr) < 0) {
+        TTCN_warning("f_getIP(): Could not get address of interface '%s', %s.\n",
+            interface_str,strerror(errno));
+      }
+      else {
+        ip = inet_ntoa(addr->sin_addr);
+      }
+
+      /* Get subnet mask */
+      memset(&ifr, 0, sizeof(struct ifreq));
+      memcpy(ifr.ifr_name, interface_str, interface_len);
+
+      if (ioctl(sock, SIOCGIFNETMASK, &ifr) < 0) {
+        TTCN_warning("f_getIP(): Could not get subnet mask of interface `%s', %s.",
+         interface_str,strerror(errno));
+      }
+      else {
+        netmask = inet_ntoa(addr->sin_addr);
+      }
+
+      /* Get the broadcast address */
+      memset(&ifr, 0, sizeof(struct ifreq));
+      memcpy(ifr.ifr_name, interface_str, interface_len);
+
+      if (ioctl(sock, SIOCGIFBRDADDR, &ifr) < 0) {
+        TTCN_warning("f_getIP(): Could not get broadcast address of interface `%s', %s.",
+         interface_str,strerror(errno));
+      }
+      else {      
+        broadcast = inet_ntoa(addr->sin_addr);
+      }
+
+      close(sock);
+      break;  
+    }
+    case TCCInterface__IPAddressType::IPv6: { //IPv6 
+#if defined LINUX
+/*    // works only with linux!
+      char devname[IFNAMSIZ];
+      char addr6p[8][5];
+      char addr6[40];
+      int plen, scope, dad_status, if_idx;
+      FILE *f;
+ 
+      if ((f = fopen("/proc/net/if_inet6", "r")) != NULL) 
+        {
+          while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n",
+                        addr6p[0], addr6p[1], addr6p[2], addr6p[3],
+                        addr6p[4], addr6p[5], addr6p[6], addr6p[7],
+                        &if_idx, &plen, &scope, &dad_status, devname) != EOF) 
+          {
+            if (!strcmp(devname, interface)) 
+              {
+                sprintf(addr6, "%s:%s:%s:%s:%s:%s:%s:%s",
+                        addr6p[0], addr6p[1], addr6p[2], addr6p[3],
+                        addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
+		ip = addr6;
+              }
+          }
+        fclose(f);
+      }
+*/          
+      char ipaddr[INET6_ADDRSTRLEN];
+      char subnet[INET6_ADDRSTRLEN];	
+      struct ifaddrs *ifap,*ifa;
+      if((getifaddrs(&ifap)) <0){
+        TTCN_warning("f_getIP(): Could not get address of interface '%s', %s.\n",
+            interface_str, strerror(errno));		    
+        break;
+      }
+      for (ifa = ifap; ifa; ifa = ifa->ifa_next) {
+        if (ifa->ifa_name == interface && ifa->ifa_addr != NULL)
+        {       
+          if (ifa->ifa_addr->sa_family == AF_INET6)
+          { 	    
+            struct sockaddr_in6 *sa = (struct sockaddr_in6 *) ifa->ifa_addr;    
+            inet_ntop(AF_INET6,&(sa->sin6_addr),ipaddr,INET6_ADDRSTRLEN);	    
+	    ip = ipaddr;	    	    
+            struct sockaddr_in6 *saMask = (struct sockaddr_in6 *)ifa->ifa_netmask;     
+            inet_ntop(AF_INET6,&(saMask->sin6_addr),subnet,INET6_ADDRSTRLEN);	    
+	    netmask = subnet;    	    	
+	    broadcast = ""; //broadcast address not supported in IPv6
+            freeifaddrs(ifap);
+            break;
+	  }
+        }
+      }
+
+#else
+      TTCN_error("f_getIP(): Getting the IPv6 address is supported on Linux only.");
+#endif
+      break;
+    }    
+    default: {
+      TTCN_error("f_getIP(): Not supported address type.");      
+      break;
+    }
+  } //switch       
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__setInterfaceUp
+// 
+//  Purpose:
+//    Set up a network interface
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    addressType - *in* <TCCInterface_IPAddressType> - type of IP addresses (default is IPv4)
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+void f__setInterfaceUp(const CHARSTRING& interface, const TCCInterface__IPAddressType& addressType)
+{
+#if defined LINUX || defined SOLARIS || defined SOLARIS8
+  /* Check the name of the interface */
+  if (!interface.is_bound())
+    TTCN_error("f_setInterfaceUp(): Unbound argument `interface'.");
+  int interface_len = interface.lengthof();
+  if (interface_len == 0) TTCN_error("f_setInterfaceUp(): Argument `interface' "
+      "is an empty string.");
+  else if (interface_len > IFNAMSIZ) TTCN_error("f_setInterfaceUp(): Argument "
+      "`interface' is too long (expected: at most %d, given: %d characters).",
+      IFNAMSIZ, interface_len);
+  const char *interface_str = interface;
+
+  int sock;
+  struct ifreq ifr;
+  int sa_family;
+  switch (addressType) {
+    case TCCInterface__IPAddressType::IPv4: { //IPv4
+      sa_family = AF_INET;
+      break;  
+    }
+    case TCCInterface__IPAddressType::IPv6: { //IPv6
+      sa_family = AF_INET6;
+      break;
+    }    
+    default: {
+      TTCN_error("f_setInterfaceDown(): Not supported address type.");      
+      break;
+    }
+  } //switch 
+
+  if ((sock = socket(sa_family, SOCK_DGRAM, IPPROTO_IP)) < 0) {
+    TTCN_error("f_setInterfaceUp(): Cannot open socket.");
+  }
+
+  memset(&ifr, 0, sizeof(struct ifreq));
+  strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)-1);
+
+  if (ioctl(sock, SIOCGIFFLAGS, &ifr) < 0) {
+    TTCN_warning("f_setInterfaceUp(): Cannot get flags of interface '%s', %s.", interface_str, strerror(errno));
+  }
+  ifr.ifr_flags |= IFF_UP;
+  if (ioctl(sock, SIOCSIFFLAGS, &ifr) < 0) {
+    TTCN_warning("f_setInterfaceUp(): Cannot set up interface '%s', %s.", interface_str, strerror(errno));
+  }
+
+  close(sock);
+#else
+  TTCN_error("f_setInterfaceUp(): Setting up the interface is supported on Linux and Solaris only.");
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__setInterfaceDown
+// 
+//  Purpose:
+//    Set down a network interface
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    addressType - *in* <TCCInterface_IPAddressType> - type of IP addresses (default is IPv4)
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+void f__setInterfaceDown(const CHARSTRING& interface, const TCCInterface__IPAddressType& addressType)
+{
+#if defined LINUX || defined SOLARIS || defined SOLARIS8
+  /* Check the name of the interface */
+  if (!interface.is_bound())
+    TTCN_error("f_setInterfaceDown(): Unbound argument `interface'.");
+  int interface_len = interface.lengthof();
+  if (interface_len == 0) TTCN_error("f_setInterfaceDown(): Argument `interface' "
+      "is an empty string.");
+  else if (interface_len > IFNAMSIZ) TTCN_error("f_setInterfaceDown(): Argument "
+      "`interface' is too long (expected: at most %d, given: %d characters).",
+      IFNAMSIZ, interface_len);
+  const char *interface_str = interface;
+
+  int sock;
+  struct ifreq ifr;
+ 
+  int sa_family;
+  switch (addressType) {
+    case TCCInterface__IPAddressType::IPv4: { //IPv4
+      sa_family = AF_INET;
+      break;  
+    }
+    case TCCInterface__IPAddressType::IPv6: { //IPv6
+      sa_family = AF_INET6;
+      break;
+    }    
+    default: {
+      TTCN_error("f_setInterfaceDown(): Not supported address type.");      
+      break;
+    }
+  } //switch 
+
+  if ((sock = socket(sa_family, SOCK_DGRAM, IPPROTO_IP)) < 0) {
+    TTCN_error("f_setInterfaceDown(): Cannot open socket.");
+  }
+
+  memset(&ifr, 0, sizeof(struct ifreq));
+  strncpy(ifr.ifr_name, interface, sizeof(ifr.ifr_name)-1);
+
+  if (ioctl(sock, SIOCGIFFLAGS, &ifr) < 0) {
+    TTCN_warning("f_setInterfaceDown(): Cannot get flags of interface '%s', %s.", interface_str, strerror(errno));
+  }
+  ifr.ifr_flags &= ~IFF_UP;
+  if (ioctl(sock, SIOCSIFFLAGS, &ifr) < 0) {
+    TTCN_warning("f_setInterfaceDown(): Cannot set down interface '%s', %s.", interface_str, strerror(errno));
+  }
+
+  close(sock);
+#else
+  TTCN_error("f_setInterfaceDown(): Setting down the interface is supported on Linux and Solaris only.");
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__getHostName
+// 
+//  Purpose:
+//    Get name of host
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    charstring - name of the host
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__getHostName()
+{
+  char *ret_val= new char[255];
+  if (!gethostname(ret_val, 255))
+  {return ret_val;}
+  else
+  {return "";};
+
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__getIpAddr
+// 
+//  Purpose:
+//    Get IP address of host
+//
+//  Parameters:
+//    hostname - *in* *charstring* - name of the host
+//    addressType - *in* <TCCInterface_IPAddressType> - type of IP addresses (default is IPv4)
+// 
+//  Return Value:
+//    charstring - IP address of the host
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__getIpAddr(const CHARSTRING& hostname, const TCCInterface__IPAddressType& addressType)
+{ 
+#if defined LINUX || defined SOLARIS || defined SOLARIS8
+  int err = 0;
+  struct addrinfo myaddr, *res;
+  memset(&myaddr,0,sizeof(myaddr));
+  myaddr.ai_flags = AI_ADDRCONFIG|AI_PASSIVE|AI_CANONNAME;
+  myaddr.ai_socktype = SOCK_STREAM;
+  myaddr.ai_protocol = 0;   
+    
+  switch (addressType) {
+    case TCCInterface__IPAddressType::IPv4: { //IPv4
+      myaddr.ai_family = AF_INET;    
+      char dst[INET_ADDRSTRLEN];  
+      
+      if ((err = getaddrinfo(hostname, NULL, &myaddr, &res)) != 0) {//&myaddr
+        TTCN_Logger::log ( TTCN_DEBUG, "f_getIpAddr(): getaddrinfo: %i, %s", err, gai_strerror(err) );              
+        return "";
+      }
+      else {
+        struct sockaddr_in *saddr = (struct sockaddr_in *) res->ai_addr;      
+	
+        inet_ntop(AF_INET,&(saddr->sin_addr),dst,INET_ADDRSTRLEN);	
+ 	freeaddrinfo(res);
+        return dst;
+      }    
+      break;  
+    }
+    case TCCInterface__IPAddressType::IPv6: { //IPv6
+   
+      char dst[INET6_ADDRSTRLEN];    
+      myaddr.ai_family = AF_INET6;
+          
+      if ((err = getaddrinfo(hostname, NULL, &myaddr, &res)) != 0) {        
+	TTCN_Logger::log ( TTCN_DEBUG, "f_getIpAddr(): getaddrinfo: %i, %s", err, gai_strerror(err) );        
+        return "";
+      }
+      else { 
+        struct sockaddr_in6 *saddr = (struct sockaddr_in6 *) res->ai_addr;     
+        inet_ntop(AF_INET6,&(saddr->sin6_addr),dst,INET6_ADDRSTRLEN);	
+	freeaddrinfo(res);	
+      }
+      return dst;                
+      break;
+    }      
+    default: {
+      TTCN_error("f_getIpAddr(): Not supported address type.");
+      return "";        
+      break;
+    }
+  } //switch    
+#else  //Cygwin
+  switch (addressType) {
+    case TCCInterface__IPAddressType::IPv4: { //IPv4
+      struct hostent *host;  
+      struct in_addr address;
+      host = gethostbyname (hostname);  //getaddrinfo not supported
+      if (host == NULL) return "";
+      else
+      {
+        memcpy (&address, host->h_addr_list[0], 4);
+        return inet_ntoa(address);
+      }    
+      break;  
+    }
+    case TCCInterface__IPAddressType::IPv6: { //IPv6
+      TTCN_error("f_getIpAddr(): Getting IPv6 addresses is supported on Linux and Solaris only.");
+      return "";
+      break;      
+    }
+    default: {
+      TTCN_error("f_getIpAddr(): Not supported address type.");
+      return "";        
+      break;
+    }
+  } //switch
+#endif  
+  
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_setIP_ip
+// 
+//  Purpose:
+//    Set IP address, subnet mask in a network inteface
+//    Uses RTLN netlink interface on linux, which is faster than original POSIX.    
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    ipaddress - *in* *charstring* - starting IP address
+//    prefix - *in* *integer* - subnetmask of the ipaddress
+// 
+//  Return Value:
+//    True on success, false in other cases.
+//
+//  Errors:
+//    Many possibilities, all generates a TTCN_warning
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+BOOLEAN f__setIP__ip(const CHARSTRING& interface, const CHARSTRING& ipaddress, const INTEGER& prefix = 32, const INTEGER& v_set = 1){
+
+#ifdef LINUX
+  
+  if ((int)prefix > 32 or (int)prefix < 0) {
+    TTCN_warning("Wrong prefix number");
+    return false;
+  }
+
+  char buf[3];
+  sprintf(buf, "%d", (int)prefix);
+  char *ip = (char *)malloc((ipaddress.lengthof() + strlen(buf) + 1 + 1)*sizeof(char));
+  strcpy(ip, (char*)(const char*)ipaddress);
+  strcat(ip,"/");
+  strcat(ip, buf);
+
+  if (rtnl_open(&rth, 0) < 0 ){
+    TTCN_warning("RTNL: Can not open RTLN link");
+    return false;
+  }
+
+  int cmd = (v_set == 1 ? RTM_NEWADDR : RTM_DELADDR);
+  int flags = NLM_F_CREATE|NLM_F_EXCL;
+
+  struct {
+    struct nlmsghdr 	n;
+    struct ifaddrmsg 	ifa;
+    char   			buf[256];
+  } req;
+
+  char  *d = NULL;
+  char  *lcl_arg = NULL;
+  inet_prefix lcl;
+  //int local_len = 0;
+  
+  memset(&req, 0, sizeof(req));
+  
+  req.n.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifaddrmsg));
+  req.n.nlmsg_flags = NLM_F_REQUEST | flags;
+  req.n.nlmsg_type = cmd;
+  req.ifa.ifa_family = preferred_family;
+  
+  d = (char*)(const char*)interface;
+
+  // IP_ADDRESS handling
+  lcl_arg = ip;    
+  if (get_prefix(&lcl, lcl_arg, req.ifa.ifa_family) == -1) return 0;
+  if (req.ifa.ifa_family == AF_UNSPEC)
+    req.ifa.ifa_family = lcl.family;
+  addattr_l(&req.n, sizeof(req), IFA_LOCAL, &lcl.data, lcl.bytelen);
+  //local_len = lcl.bytelen;
+
+  // further processing
+  if (cmd == RTM_DELADDR && lcl.family == AF_INET && !(lcl.flags & PREFIXLEN_SPECIFIED)) {
+    TTCN_warning("You should never see this!");
+  } else {
+    //peer = lcl;
+    addattr_l(&req.n, sizeof(req), IFA_ADDRESS, &lcl.data, lcl.bytelen);
+  }
+
+
+  if (req.ifa.ifa_prefixlen == 0)
+    req.ifa.ifa_prefixlen = lcl.bitlen;
+  if(cmd != RTM_DELADDR)
+    req.ifa.ifa_scope = default_scope(&lcl);
+  
+  //  ll_init_map(&rth);
+  
+  if ((req.ifa.ifa_index = ll_name_to_index(d)) == 0) {
+    TTCN_warning("RTNL: Cannot find device");
+    goto error;
+  }
+  
+  if (rtnl_talk(&rth, &req.n, 0, 0, NULL, NULL, NULL) < 0) {
+    TTCN_warning("RTNL: talk error!");
+    goto error;
+  }
+  
+  free(ip);
+  rtnl_close(&rth);
+  return true;
+  
+  error:
+    free(ip);
+  return false;
+
+#else
+
+  TTCN_warning("f_setIP_ip is only supported on Linux!");
+  return false;
+
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_delIP_ip
+// 
+//  Purpose:
+//    Set IP address, subnet mask in a network inteface
+//    Uses RTLN netlink interface on linux, which is faster than original POSIX.    
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    ipaddress - *in* *charstring* - starting IP address
+//    prefix - *in* *integer* - subnetmask of the ipaddress
+// 
+//  Return Value:
+//    True on success, false in other cases.
+//
+//  Errors:
+//    Many possibilities, all generates a TTCN_warning
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+BOOLEAN f__delIP__ip(const CHARSTRING& interface, const CHARSTRING& ipaddress, const INTEGER& prefix = 32){
+#ifdef LINUX
+
+  return f__setIP__ip(interface, ipaddress, prefix, 0);
+
+#else
+
+  TTCN_warning("f_deIP_ip is only supported on Linux!");
+  return false;
+
+#endif
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getIpAddresses
+// 
+//  Purpose:
+//    Get both IPv4 and IPv6 addresses of the given host
+//
+//  Parameters:
+//    hostname - *charstring* - the hostname
+// 
+//  Return Value:
+//    Initialized IPAddress structure
+//
+//  Errors:
+//    Many possibilities, all generates a TTCN_warning
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+IPAddresses f__getIpAddresses(const CHARSTRING& hostname){
+#if defined LINUX || defined SOLARIS || defined SOLARIS8
+  struct addrinfo hints, *res, *p;
+  int status;
+  char ipstr[INET6_ADDRSTRLEN];
+  IPAddresses iplist;
+
+  memset(&hints, 0, sizeof hints);
+  hints.ai_family = AF_UNSPEC; // AF_INET or AF_INET6 to force version
+
+  CharstringList ipv4list(NULL_VALUE);
+  CharstringList ipv6list(NULL_VALUE);
+
+  if ((status = getaddrinfo((const char*)hostname, NULL, &hints, &res)) != 0) {
+    TTCN_warning("f_getIpAddresses: getaddrinfo: %s for \"%s\"\n", gai_strerror(status), (const char*)hostname);
+    return IPAddresses(ipv4list, ipv6list);
+  }
+
+  for(p = res;p != NULL; p = p->ai_next) {
+    if (p->ai_family == AF_INET) { // IPv4
+      struct sockaddr_in *ipv4 = (struct sockaddr_in *)p->ai_addr;
+      inet_ntop(p->ai_family, &(ipv4->sin_addr), ipstr, sizeof ipstr);
+      ipv4list[ipv4list.size_of()] = ipstr;
+    } else if (p->ai_family == AF_INET6){ //IPv6
+      struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)p->ai_addr;
+      inet_ntop(p->ai_family, &(ipv6->sin6_addr), ipstr, sizeof ipstr);
+      ipv6list[ipv6list.size_of()] = ipstr;
+    }
+  }
+  freeaddrinfo(res); // free the linked list  
+  return IPAddresses(ipv4list, ipv6list);
+#else
+  CharstringList ipv4list(NULL_VALUE);
+  CharstringList ipv6list(NULL_VALUE);
+
+  struct hostent *host;  
+  struct in_addr address;
+  host = gethostbyname(hostname);  //getaddrinfo not supported
+  if (host)
+    while (*host->h_addr_list){
+      memcpy (&address, host->h_addr_list++, host->h_length);
+      ipv4list[ipv4list.size_of()] = inet_ntoa(address);
+    }
+  return IPAddresses(ipv4list, ipv6list);
+#endif
+}
+
+}//namespace
diff --git a/src/TCCInterface_Functions.ttcn b/src/TCCInterface_Functions.ttcn
new file mode 100644
index 0000000..7a7cec8
--- /dev/null
+++ b/src/TCCInterface_Functions.ttcn
@@ -0,0 +1,359 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCInterface_Functions.ttcn
+//  Description:        TCC Useful Functions: Interface Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2010-03-25
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCInterface_Functions
+// 
+//  Purpose:
+//    This module supports network related operations
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCInterface_Functions {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Record: IPAddresses
+// 
+//  Purpose:
+//    To store multiple ipv4 and ipv6 addresses typically describing a host.
+//    Warning: An own CharstringList type is definied, that is not compatible
+//    with any other record of charstring in TITAN's load run time library, which
+//    is the defalt, and thus it is not able to directly copy this lists for example
+//    to EPTF_CharstringList. 
+//
+///////////////////////////////////////////////////////////////////////////////
+type record of charstring CharstringList;
+type record IPAddresses{
+  CharstringList ipv4List,
+  CharstringList ipv6List
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Enum: TCCInterface_IPAddressType
+// 
+//  Purpose:
+//   An enum type for setting the type of IP addresses. Possible values:
+//	IPv4 - for IPv4 type addresses
+//	IPv6 - for IPv6 type addresses
+//	etc
+///////////////////////////////////////////////////////////////////////////////
+type enumerated TCCInterface_IPAddressType 
+{
+  IPv4,
+  IPv6
+};
+
+///////////////////////////////////////////////////////////////////////////////
+//  Enum: TCCInterface_ProtocolType
+// 
+//  Purpose:
+//   An enum type for setting the type of protocols. Possible values:
+//	PROTO_TYPE_UDP
+//	PROTO_TYPE_TCP
+//	PROTO_TYPE_SCTP
+///////////////////////////////////////////////////////////////////////////////
+type enumerated  TCCInterface_ProtocolType
+{
+	PROTO_TYPE_UDP,
+	PROTO_TYPE_TCP,
+	PROTO_TYPE_SCTP
+};
+///////////////////////////////////////////////////////////////////////////////
+//  Enum: TCCInterface_PortStatus
+// 
+//  Purpose:
+//   An enum type for represent a status of UDP/TCP/SCTP port. Possible values:
+//	PORT_STATUS_WAS_VACANT,
+//	PORT_STATUS_WAS_OCCUPIED,
+//	PORT_STATUS_PARAMETER_ERROR
+//
+//  Note: 
+//     The value represent  the status of the port/ip/protocol in a distant past.
+//     It tells nothing the status at the time you would like to use.
+///////////////////////////////////////////////////////////////////////////////
+type enumerated  TCCInterface_PortStatus
+{
+	PORT_STATUS_WAS_VACANT,          // The IP/port/prtocol was available for use at the time of the check.
+	PORT_STATUS_WAS_OCCUPIED,        // The IP/port/prtocol was used at the time of the check.
+	PORT_STATUS_PARAMETER_ERROR,     // You passed some garbage value as parameters.
+        PORT_STATUS_INTERNAL_ERROR       // Error behind the screen. Take a brake and rest in space
+};
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getPortAvailabilityStatus
+// 
+//  Purpose:
+//    The function returns what was the status of the IP/port/Protocol some time ago.
+//    The returned information was outdated before the function returns, so use it only 
+//    as a hint.
+//
+//  Parameters:
+//    ipAddress - *in* *charstring* - the IP address
+//    portNumber - *in* *integer* - the port number to check
+//    protocolType - *in* *TCCInterface_ProtocolType* - the protocol UDP/TCP/SCTP
+// 
+//  Return Value:
+//    The status in the past (used/ not used) or error report.
+//
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_getPortAvailabilityStatus(in charstring ipAddress, in integer portNumber,
+                       in TCCInterface_ProtocolType protocolType) return TCCInterface_PortStatus;
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_setIP
+// 
+//  Purpose:
+//    Set IP address, subnet mask and broadcast address in a network inteface
+//    If number is set, a range of virtual interfaces are set up with
+//    continuous IP address (no subnet mask, broadcast checking)
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    ipaddress - *in* *charstring* - starting IP address
+//    subnetmask - *in* *charstring* - subnetmask
+//    broadcast - *in* *charstring* - broadcast
+//    number - *in* *integer* - number of interfaces to set up
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_setIP(in charstring interface, in charstring ipaddress, 
+  in charstring subnetmask, in charstring broadcast,
+  in integer number := 1);
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_setIP_ip
+// 
+//  Purpose:
+//    Set IP address, subnet mask in a network inteface
+//    Uses RTLN netlink interface on linux, which is faster than original POSIX.    
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    ipaddress - *in* *charstring* - starting IP address
+//    prefix - *in* *integer* - subnetmask of the ipaddress
+//    v_set - *in* *integer* - Determines behavior, 1 sets, other deletes the IP
+// 
+//  Return Value:
+//    True on success, false in other cases.
+//
+//  Errors:
+//    Many possibilities, all generates a TTCN_warning
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_setIP_ip(in charstring interface, in charstring ipaddress, in integer prefix := 32, in integer v_set := 1) return boolean;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_delIP_ip
+// 
+//  Purpose:
+//    Deletes IP address, subnet mask in a network inteface
+//    Uses RTLN netlink interface on linux, which is faster than original POSIX.    
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    ipaddress - *in* *charstring* - starting IP address
+//    prefix - *in* *integer* - subnetmask of the ipaddress
+// 
+//  Return Value:
+//    True on success, false in other cases.
+//
+//  Errors:
+//    Many possibilities, all generates a TTCN_warning
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_delIP_ip(in charstring interface, in charstring ipaddress, in integer prefix := 32) return boolean;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_deleteIP
+// 
+//  Purpose:
+//    Delete IP address from a network inteface
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////  
+external function f_deleteIP(in charstring interface);
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getIP
+// 
+//  Purpose:
+//    Get IP address, subnet mask and broadcast address from a network inteface
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    ip - *out* *charstring* - IP address
+//    netmask - *out* *charstring* - netmask
+//    broadcast - *out* *charstring* - broadcast
+//    addressType - *in* <TCCInterface_IPAddressType> - type of IP addresses (default is IPv4)
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////  
+external function f_getIP(in charstring interface, out charstring ip,
+  out charstring netmask, out charstring broadcast, in TCCInterface_IPAddressType addressType:=IPv4);
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_setInterfaceUp
+// 
+//  Purpose:
+//    Set up a network interface
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    addressType - *in* <TCCInterface_IPAddressType> - type of IP addresses (default is IPv4)
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_setInterfaceUp(in charstring interface, in TCCInterface_IPAddressType addressType:=IPv4);
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_setInterfaceDown
+// 
+//  Purpose:
+//    Set down a network interface
+//
+//  Parameters:
+//    interface - *in* *charstring* - network interface
+//    addressType - *in* <TCCInterface_IPAddressType> - type of IP addresses (default is IPv4)
+// 
+//  Return Value:
+//    -
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_setInterfaceDown(in charstring interface, in TCCInterface_IPAddressType addressType:=IPv4);
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getHostName
+// 
+//  Purpose:
+//    Get name of host
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    charstring - name of the host
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_getHostName() return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getIpAddr
+// 
+//  Purpose:
+//    Get IP address of host
+//
+//  Parameters:
+//    hostname - *in* *charstring* - name of the host
+//    addressType - *in* <TCCInterface_IPAddressType> - type of IP addresses (default is IPv4)
+// 
+//  Return Value:
+//    charstring - IP address of the host
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_getIpAddr(in charstring hostname, in TCCInterface_IPAddressType addressType:=IPv4) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getIpAddresses
+// 
+//  Purpose:
+//    Get both IPv4 and IPv6 addresses of host. 
+//
+//  Parameters:
+//    hostname - *in* *charstring* - name of the host
+// 
+//  Return Value:
+//    Initialized IPAddresses structure
+//
+//  Errors:
+//    Drops TTCN_Warnings on fault
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_getIpAddresses(in charstring hostname) return IPAddresses;
+}
diff --git a/src/TCCInterface_ip.h b/src/TCCInterface_ip.h
new file mode 100644
index 0000000..5c4184d
--- /dev/null
+++ b/src/TCCInterface_ip.h
@@ -0,0 +1,649 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCInterface_ip.h
+//  Description:        TCC Useful Functions: Interface Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2009-02-02
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/*
+  Code here is from iproute distributed under GPL
+*/
+
+#include <linux/posix_types.h>
+#include <asm/types.h>
+#include <linux/types.h>
+#include <time.h>
+#include <errno.h>
+#include <limits.h>
+
+#define RTM_NEWADDR	20
+#define RTM_DELADDR	21
+#define NLM_F_CREATE	0x400	/* Create, if it does not exist	*/
+#define NLM_F_EXCL	0x200	/* Do not touch, if it exists	*/
+#define NLM_F_ACK		4	/* Reply with ack, with zero or error code */
+#define NETLINK_ROUTE		0	/* Routing/device hook				*/
+#define PREFIXLEN_SPECIFIED 1
+
+#define NLMSG_ALIGNTO	4
+#define NLMSG_ALIGN(len) ( ((len)+NLMSG_ALIGNTO-1) & ~(NLMSG_ALIGNTO-1) )
+#define NLMSG_HDRLEN	 ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
+#define NLMSG_LENGTH(len) ((len)+NLMSG_ALIGN(NLMSG_HDRLEN))
+#define NLMSG_DATA(nlh)  ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
+#define RTA_ALIGNTO	4
+#define RTA_ALIGN(len) ( ((len)+RTA_ALIGNTO-1) & ~(RTA_ALIGNTO-1) )
+#define RTA_LENGTH(len)	(RTA_ALIGN(sizeof(struct rtattr)) + (len))
+
+#define NLMSG_TAIL(nmsg) \
+	((struct rtattr *) (   ((char *)(nmsg)) + (NLMSG_ALIGN((nmsg)->nlmsg_len))  ))
+
+#define RTA_LENGTH(len)	(RTA_ALIGN(sizeof(struct rtattr)) + (len))
+#define RTA_DATA(rta)   ((void*)(((char*)(rta)) + RTA_LENGTH(0)))
+
+int preferred_family = AF_UNSPEC;
+
+enum
+{
+	IFA_UNSPEC,
+	IFA_ADDRESS,
+	IFA_LOCAL,
+	IFA_LABEL,
+	IFA_BROADCAST,
+	IFA_ANYCAST,
+	IFA_CACHEINFO,
+	IFA_MULTICAST,
+	__IFA_MAX,
+};
+
+enum rt_scope_t
+{
+	RT_SCOPE_UNIVERSE=0,
+/* User defined values  */
+	RT_SCOPE_SITE=200,
+	RT_SCOPE_LINK=253,
+	RT_SCOPE_HOST=254,
+	RT_SCOPE_NOWHERE=255
+};
+
+struct rtattr
+{
+	unsigned short	rta_len;
+	unsigned short	rta_type;
+};
+
+struct sockaddr_nl
+{
+	sa_family_t	nl_family;	/* AF_NETLINK	*/
+	unsigned short	nl_pad;		/* zero		*/
+	__u32		nl_pid;		/* port ID	*/
+       	__u32		nl_groups;	/* multicast groups mask */
+};
+
+struct nlmsghdr
+{
+	__u32		nlmsg_len;	/* Length of message including header */
+	__u16		nlmsg_type;	/* Message content */
+	__u16		nlmsg_flags;	/* Additional flags */
+	__u32		nlmsg_seq;	/* Sequence number */
+	__u32		nlmsg_pid;	/* Sending process port ID */
+};
+
+struct ifaddrmsg
+{
+	__u8		ifa_family;
+	__u8		ifa_prefixlen;	/* The prefix length		*/
+	__u8		ifa_flags;	/* Flags			*/
+	__u8		ifa_scope;	/* Address scope		*/
+	__u32		ifa_index;	/* Link index			*/
+};
+
+typedef struct
+{
+	__u8 family;
+	__u8 bytelen;
+	__s16 bitlen;
+	__u32 flags;
+	__u32 data[4];
+} inet_prefix;
+
+struct ifa_cacheinfo
+{
+	__u32	ifa_prefered;
+	__u32	ifa_valid;
+	__u32	cstamp; /* created timestamp, hundredths of seconds */
+	__u32	tstamp; /* updated timestamp, hundredths of seconds */
+};
+
+#ifndef	INFINITY_LIFE_TIME
+#define     INFINITY_LIFE_TIME      0xFFFFFFFFU
+#endif
+
+struct rtgenmsg
+{
+	unsigned char		rtgen_family;
+};
+
+struct rtnl_handle
+{
+	int			fd;
+	struct sockaddr_nl	local;
+	struct sockaddr_nl	peer;
+	__u32			seq;
+	__u32			dump;
+};
+
+struct rtnl_handle rth = { -1 };
+
+typedef int (*rtnl_filter_t)(const struct sockaddr_nl *,
+			     struct nlmsghdr *n, void *);
+
+
+#define NLM_F_ROOT	0x100	/* specify tree	root	*/
+#define NLM_F_MATCH	0x200	/* return all matching	*/
+#define NLM_F_REQUEST		1	/* It is request message. 	*/
+#define NLMSG_ERROR		0x2	/* Error		*/
+
+struct nlmsgerr
+{
+	int		error;
+	struct nlmsghdr msg;
+};
+
+#define DN_MAXADDL 20
+struct dn_naddr
+{
+        unsigned short          a_len;
+        unsigned char a_addr[DN_MAXADDL];
+};
+
+
+int rtnl_open_byproto(struct rtnl_handle *rth, unsigned subscriptions,
+		      int protocol)
+{
+	socklen_t addr_len;
+	int sndbuf = 32768;
+	int rcvbuf = 32768;
+
+	memset(rth, 0, sizeof(*rth));
+
+	rth->fd = socket(AF_NETLINK, SOCK_RAW, protocol);
+	if (rth->fd < 0) {
+	  TTCN_warning("Cannot open netlink socket");
+	  return -1;
+	}
+
+	if (setsockopt(rth->fd,SOL_SOCKET,SO_SNDBUF,&sndbuf,sizeof(sndbuf)) < 0) {
+	  TTCN_warning("Cannot set SO_SNDBUF");
+	  return -1;
+	}
+
+	if (setsockopt(rth->fd,SOL_SOCKET,SO_RCVBUF,&rcvbuf,sizeof(rcvbuf)) < 0) {
+	  TTCN_warning("Cannot set SO_RCVBUF");
+	  return -1;
+	}
+
+	memset(&rth->local, 0, sizeof(rth->local));
+	rth->local.nl_family = AF_NETLINK;
+	rth->local.nl_groups = subscriptions;
+
+	if (bind(rth->fd, (struct sockaddr*)&rth->local, sizeof(rth->local)) < 0) {
+	  TTCN_warning("Cannot bind netlink socket");
+	  return -1;
+	}
+	addr_len = sizeof(rth->local);
+	if (getsockname(rth->fd, (struct sockaddr*)&rth->local, &addr_len) < 0) {
+	  TTCN_warning("Cannot getsockname");
+	  return -1;
+	}
+	if (addr_len != sizeof(rth->local)) {
+	  //		fprintf(stderr, "Wrong address length %d\n", addr_len);
+	  
+		return -1;
+	}
+	if (rth->local.nl_family != AF_NETLINK) {
+	  TTCN_warning("Wrong address family!");
+	  return -1;
+	}
+	rth->seq = time(NULL);
+	return 0;
+}
+
+int rtnl_open(struct rtnl_handle *rth, unsigned subscriptions)
+{
+  return rtnl_open_byproto(rth, subscriptions, NETLINK_ROUTE);
+}
+
+void rtnl_close(struct rtnl_handle *rth)
+{
+  if (rth->fd >= 0) {
+    close(rth->fd);
+    rth->fd = -1;
+  }
+}
+
+
+static int dnet_num(const char *src, u_int16_t * dst)
+{
+  int rv = 0;
+  int tmp;
+  *dst = 0;
+  
+  while ((tmp = *src++) != 0) {
+    tmp -= '0';
+    if ((tmp < 0) || (tmp > 9))
+      return rv;
+    
+    rv++;
+    (*dst) *= 10;
+    (*dst) += tmp;
+  }
+  
+  return rv;
+}
+
+static __inline__ u_int16_t dn_htons(u_int16_t addr)
+{
+        union {
+                u_int8_t byte[2];
+                u_int16_t word;
+        } u;
+
+        u.word = addr;
+        return ((u_int16_t)u.byte[0]) | (((u_int16_t)u.byte[1]) << 8);
+}
+
+static int dnet_pton1(const char *src, struct dn_naddr *dna)
+{
+	u_int16_t area = 0;
+	u_int16_t node = 0;
+	int pos;
+
+	pos = dnet_num(src, &area);
+	if ((pos == 0) || (area > 63) || (*(src + pos) != '.'))
+		return 0;
+	pos = dnet_num(src + pos + 1, &node);
+	if ((pos == 0) || (node > 1023))
+		return 0;
+	dna->a_len = 2;
+	*(u_int16_t *)dna->a_addr = dn_htons((area << 10) | node);
+
+	return 1;
+}
+
+int dnet_pton(int af, const char *src, void *addr)
+{
+	int err;
+
+	switch (af) {
+	case AF_DECnet:
+		errno = 0;
+		err = dnet_pton1(src, (struct dn_naddr *)addr);
+		break;
+	default:
+		errno = EAFNOSUPPORT;
+		err = -1;
+	}
+
+	return err;
+}
+
+int get_addr_1(inet_prefix *addr, const char *name, int family)
+{
+	memset(addr, 0, sizeof(*addr));
+
+	if (strcmp(name, "default") == 0 ||
+	    strcmp(name, "all") == 0 ||
+	    strcmp(name, "any") == 0) {
+		if (family == AF_DECnet)
+			return -1;
+		addr->family = family;
+		addr->bytelen = (family == AF_INET6 ? 16 : 4);
+		addr->bitlen = -1;
+		return 0;
+	}
+
+	if (strchr(name, ':')) {
+		addr->family = AF_INET6;
+		if (family != AF_UNSPEC && family != AF_INET6)
+			return -1;
+		if (inet_pton(AF_INET6, name, addr->data) <= 0)
+			return -1;
+		addr->bytelen = 16;
+		addr->bitlen = -1;
+		return 0;
+	}
+
+	if (family == AF_DECnet) {
+		struct dn_naddr dna;
+		addr->family = AF_DECnet;
+		if (dnet_pton(AF_DECnet, name, &dna) <= 0)
+			return -1;
+		memcpy(addr->data, dna.a_addr, 2);
+		addr->bytelen = 2;
+		addr->bitlen = -1;
+		return 0;
+	}
+
+	addr->family = AF_INET;
+	if (family != AF_UNSPEC && family != AF_INET)
+		return -1;
+	if (inet_pton(AF_INET, name, addr->data) <= 0)
+		return -1;
+	addr->bytelen = 4;
+	addr->bitlen = -1;
+	return 0;
+}
+
+int get_unsigned(unsigned *val, const char *arg, int base)
+{
+	unsigned long res;
+	char *ptr;
+
+	if (!arg || !*arg)
+		return -1;
+	res = strtoul(arg, &ptr, base);
+	if (!ptr || ptr == arg || *ptr || res > UINT_MAX)
+		return -1;
+	*val = res;
+	return 0;
+}
+
+int mask2bits(__u32 netmask)
+{
+	unsigned bits = 0;
+	__u32 mask = ntohl(netmask);
+	__u32 host = ~mask;
+
+	/* a valid netmask must be 2^n - 1 */
+	if ((host & (host + 1)) != 0)
+		return -1;
+
+	for (; mask; mask <<= 1)
+		++bits;
+	return bits;
+}
+
+static int get_netmask(unsigned *val, const char *arg, int base)
+{
+	inet_prefix addr;
+
+	if (!get_unsigned(val, arg, base))
+		return 0;
+
+	/* try coverting dotted quad to CIDR */
+	if (!get_addr_1(&addr, arg, AF_INET) && addr.family == AF_INET) {
+		int b = mask2bits(addr.data[0]);
+		
+		if (b >= 0) {
+			*val = b;
+			return 0;
+		}
+	}
+
+	return -1;
+}
+
+int get_prefix_1(inet_prefix *dst, char *arg, int family)
+{
+	int err;
+	unsigned plen;
+	char *slash;
+
+	memset(dst, 0, sizeof(*dst));
+
+	if (strcmp(arg, "default") == 0 ||
+	    strcmp(arg, "any") == 0 ||
+	    strcmp(arg, "all") == 0) {
+		if (family == AF_DECnet)
+			return -1;
+		dst->family = family;
+		dst->bytelen = 0;
+		dst->bitlen = 0;
+		return 0;
+	}
+
+	slash = strchr(arg, '/');
+	if (slash)
+		*slash = 0;
+
+	err = get_addr_1(dst, arg, family);
+	if (err == 0) {
+		switch(dst->family) {
+			case AF_INET6:
+				dst->bitlen = 128;
+				break;
+			case AF_DECnet:
+				dst->bitlen = 16;
+				break;
+			default:
+			case AF_INET:
+				dst->bitlen = 32;
+		}
+		if (slash) {
+			if (get_netmask(&plen, slash+1, 0)
+					|| (signed)plen > dst->bitlen) {
+				err = -1;
+				goto done;
+
+			}
+			dst->flags |= PREFIXLEN_SPECIFIED;
+			dst->bitlen = plen;
+		}
+	}
+done:
+	if (slash)
+		*slash = '/';
+	return err;
+}
+
+
+int get_prefix(inet_prefix *dst, char *arg, int family)
+{
+	if (family == AF_PACKET) {
+	  TTCN_warning("This inet prefix is not allowed in this context");
+	  return -1;
+	}
+	if (get_prefix_1(dst, arg, family)) {
+	  TTCN_warning("inet prefix is expected in this context");
+	  return -1;
+	}
+	return 0;
+}
+
+int addattr_l(struct nlmsghdr *n, int maxlen, int type, const void *data,
+	      int alen)
+{
+	int len = RTA_LENGTH(alen);
+	struct rtattr *rta;
+
+	if (NLMSG_ALIGN(n->nlmsg_len) + RTA_ALIGN(len) > (unsigned)maxlen) {
+	  return -1; 
+	}
+	rta = NLMSG_TAIL(n);
+	rta->rta_type = type;
+	rta->rta_len = len;
+	memcpy(RTA_DATA(rta), data, alen);
+	n->nlmsg_len = NLMSG_ALIGN(n->nlmsg_len) + RTA_ALIGN(len);
+	return 0;
+}
+
+extern unsigned int if_nametoindex (const char *);
+
+struct idxmap
+{
+	struct idxmap * next;
+	unsigned	index;
+	int		type;
+	int		alen;
+	unsigned	flags;
+	unsigned char	addr[8];
+	char		name[16];
+};
+
+static struct idxmap *idxmap[16];
+
+unsigned ll_name_to_index(const char *name)
+{
+	static char ncache[16];
+	static int icache;
+	struct idxmap *im;
+	int i;
+
+	if (name == NULL)
+		return 0;
+	if (icache && strcmp(name, ncache) == 0)
+		return icache;
+	for (i=0; i<16; i++) {
+		for (im = idxmap[i]; im; im = im->next) {
+			if (strcmp(im->name, name) == 0) {
+				icache = im->index;
+				strcpy(ncache, name);
+				return im->index;
+			}
+		}
+	}
+
+	return if_nametoindex(name);
+}
+
+static int default_scope(inet_prefix *lcl)
+{
+	if (lcl->family == AF_INET) {
+		if (lcl->bytelen >= 1 && *(__u8*)&lcl->data == 127)
+			return RT_SCOPE_HOST;
+	}
+	return 0;
+}
+
+int rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n, pid_t peer,
+	      unsigned groups, struct nlmsghdr *answer,
+	      rtnl_filter_t junk,
+	      void *jarg)
+{
+	unsigned status;
+	unsigned seq;
+	struct nlmsghdr *h;
+	struct sockaddr_nl nladdr;
+	struct iovec iov = {
+	  /*.iov_base =*/ (void*) n,
+	  /*.iov_len =*/ n->nlmsg_len
+	};
+
+	struct msghdr msg = {
+	  /*.msg_name = */&nladdr,
+	  /*.msg_namelen =*/ sizeof(nladdr),
+	  /*.msg_iov =*/ &iov,
+	  /*.msg_iovlen =*/ 1,
+	};
+	char   buf[16384];
+
+	memset(&nladdr, 0, sizeof(nladdr));
+	nladdr.nl_family = AF_NETLINK;
+	nladdr.nl_pid = peer;
+	nladdr.nl_groups = groups;
+
+	n->nlmsg_seq = seq = ++rtnl->seq;
+
+	if (answer == NULL)
+		n->nlmsg_flags |= NLM_F_ACK;
+
+	status = sendmsg(rtnl->fd, &msg, 0);
+
+	if (status < 0) {
+	  TTCN_warning("Cannot talk to rtnetlink");
+	  return -1;
+	}
+
+	memset(buf,0,sizeof(buf));
+
+	iov.iov_base = buf;
+
+	while (1) {
+		iov.iov_len = sizeof(buf);
+		status = recvmsg(rtnl->fd, &msg, 0);
+
+		if (status < 0) {
+		  if (errno == EINTR || errno == EAGAIN)
+		    continue;
+		  TTCN_warning("rtln receives error");
+		  return -1;
+		}
+		if (status == 0) {
+		  TTCN_warning("EOF on netlink");
+		  return -1;
+		}
+		if (msg.msg_namelen != sizeof(nladdr)) {
+		  return -1;//exit(1); 
+		}
+		for (h = (struct nlmsghdr*)buf; status >= sizeof(*h); ) {
+			int err;
+			int len = h->nlmsg_len;
+			int l = len - sizeof(*h);
+
+			if (l<0 || len>(signed)status) {
+				if (msg.msg_flags & MSG_TRUNC) {
+				  return -1;
+				}
+				TTCN_warning("Malformed rtln message");
+				return -1;//exit(1);
+			}
+
+			if (nladdr.nl_pid != (unsigned)peer ||
+			    h->nlmsg_pid != rtnl->local.nl_pid ||
+			    h->nlmsg_seq != seq) {
+				if (junk) {
+					err = junk(&nladdr, h, jarg);
+					if (err < 0){
+						return err;
+					}
+				}
+				/* Don't forget to skip that message. */
+				status -= NLMSG_ALIGN(len);
+				h = (struct nlmsghdr*)((char*)h + NLMSG_ALIGN(len));
+				continue;
+			}
+		       
+			if (h->nlmsg_type == NLMSG_ERROR) {
+				struct nlmsgerr *err = (struct nlmsgerr*)NLMSG_DATA(h);
+				if ((unsigned)l < sizeof(struct nlmsgerr)) {
+
+				} else {
+					errno = -err->error;
+					if (errno == 0) {
+						if (answer)
+							memcpy(answer, h, h->nlmsg_len);
+						return 0;
+					}
+					TTCN_warning("RTNETLINK answers error, %s", strerror(errno));
+				}
+				return -1;
+			}
+			if (answer) {
+				memcpy(answer, h, h->nlmsg_len);
+				return 0;
+			}
+
+			TTCN_warning("Unexpected rtln replay!");
+
+			status -= NLMSG_ALIGN(len);
+			h = (struct nlmsghdr*)((char*)h + NLMSG_ALIGN(len));
+		}
+		if (msg.msg_flags & MSG_TRUNC) {
+			continue;
+		}
+		if (status) {
+		  return -1;//exit(1);
+		}
+	}
+}
diff --git a/src/TCCMaths.cc b/src/TCCMaths.cc
new file mode 100644
index 0000000..c01fc81
--- /dev/null
+++ b/src/TCCMaths.cc
@@ -0,0 +1,936 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCMaths.cc
+//  Description:        TCC Useful Functions: Maths Functions.
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-03-07
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <TTCN3.hh>
+#include <math.h>
+#include "TCCMaths_Functions.hh"
+
+using namespace TCCMaths__GenericTypes;
+namespace TCCMaths__Functions {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__maxIL
+//
+//  Purpose:
+//    Return an IntegerList with the highest number found at index 0 and
+//    the index of ilist where it's found at index 1
+//
+//  Parameters:
+//    ilist - *in* <IntegerList> - integer array
+//
+//  Return Value:
+//    <IntegerList> - integer array: { <max>, <max index> }
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+IntegerList f__maxIL(const IntegerList& ilist)
+{
+    IntegerList toret;
+
+    toret[0] = 0;
+    toret[1] = -1;
+    if(!ilist.is_bound()) return toret;
+    int len = ilist.size_of();
+
+    int m = - 0xffff;
+    for(int i=0;i<len;i++)
+        if(ilist[i]>m)
+        {
+            m = ilist[i];
+            toret[1] = i;
+        }
+    toret[0] = m;
+    return toret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__minIL
+//
+//  Purpose:
+//     Return an IntegerList with the lowest number found
+//     at index 0 and the index of ilist where it's fond at index
+//     1
+//
+//  Parameters:
+//    ilist - *in* <IntegerList> - integer array
+//
+//  Return Value:
+//    <IntegerList> - integer array: { <min>, <min index> }
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+IntegerList f__minIL(const IntegerList& ilist)
+{
+    IntegerList toret;
+    toret[0] = 0;
+    toret[1] = -1;
+    if(!ilist.is_bound()) return toret;
+    int len = ilist.size_of();
+    int m = 0xffff;
+    for(int i=0;i<len;i++)
+        if(ilist[i]<m)
+        {
+            m = ilist[i];
+            toret[1] = i;
+        }
+    toret[0] = m;
+    return toret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__maxFL
+//
+//  Purpose:
+//    Return an FloatList with the highest number found
+//    at index 0 and the index of flist where it's fond at index
+//    1
+//
+//  Parameters:
+//    flist - *in* <FloatList> - integer array
+//
+//  Return Value:
+//    <FloatList> - float array: { <max>, <max index> }
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FloatList f__maxFL(const FloatList& flist)
+{
+    FloatList toret;
+    toret[0] = 0.0;
+    toret[1] = -1.0;
+    if(!flist.is_bound()) return toret;
+    int i, len = flist.size_of();
+
+    double m = -1.7E308;
+    for(i=0;i<len;i++)
+        if(flist[i]>m)
+        {
+            m = flist[i];
+            toret[1] = (double)i;
+        }
+    toret[0] = m;
+    return toret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__minFL
+//
+//  Purpose:
+//    Return an FloatList with the highest number found
+//    at index 0 and the index of flist where it's fond at index
+//    1
+//
+//  Parameters:
+//    flist - *in* <FloatList> - integer array
+//
+//  Return Value:
+//    <FloatList> - float array: { <min>, <min index> }
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FloatList f__minFL(const FloatList& flist)
+{
+    FloatList toret;
+    toret[0] = 0.0;
+    toret[1] = -1.0;
+    if(!flist.is_bound()) return toret;
+    unsigned int i, len = (unsigned int)flist.size_of();
+    double m = 1.7E308;
+    for(i=0;i<len;i++)
+        if(flist[i]<m)
+        {
+            m = flist[i];
+            toret[1] = (double)i;
+        }
+    toret[0] = m;
+    return toret;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__averageFL
+//
+//  Purpose:
+//    Return the average of flist
+//
+//  Parameters:
+//    flist - *in* <FloatList> - integer array
+//
+//  Return Value:
+//    float - average of float numbers
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__averageFL(const FloatList& flist)
+{
+    if(!flist.is_bound()) return FLOAT();
+    double toret = 0.0;
+    int i, len = flist.size_of();
+    if(len==0) return FLOAT();
+    for(i=0;i<len;i++) toret += flist[i];
+    return FLOAT(toret / (double)len);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__averageIL
+//
+//  Purpose:
+//    Return the average of ilist
+//
+//  Parameters:
+//    ilist - *in* <IntegerList> - integer array
+//
+//  Return Value:
+//    float - average of integer numbers
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__averageIL(const IntegerList& ilist)
+{
+    int toret = 0;
+    int i, len = ilist.size_of();
+    if(len == 0) return FLOAT();
+    for(i=0;i<len;i++) toret += ilist[i];
+    return FLOAT(((double)toret / (double)len));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__stdFL
+//
+//  Purpose:
+//    Return the normalized standard deviation of float list
+//    (so the average square distance from the center of elements in the list)
+//
+//  Parameters:
+//    flist - *in* <FloatList> - float list
+//
+//  Return Value:
+//    float - normalized, standard derivate
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    E.g.  list = {2.0, 4.0}
+//
+//          u = (2.0 + 4.0) / 2 <- *center of elements in the list*
+//
+//          len = sizeof(list)
+//
+//          [ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__stdFL(const FloatList& flist)
+{
+    if(!flist.is_bound()) return FLOAT();
+    double toret = 0.0;
+    int i, len = flist.size_of();
+    if(len == 0) return FLOAT();
+    double u = (double)TCCMaths__Functions::f__averageFL(flist);
+    for(i=0;i<len;i++) toret += pow((double)flist[i]-u,2.0);
+    return FLOAT(pow(toret/((double)len-1),0.5));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__stdFLL
+//
+//  Purpose:
+//    Return the normalized standard deviation of float list  using custom
+//    center
+//    (so it is the average square distance from a user defined central value)
+//
+//  Parameters:
+//    u - *in* *float* - user defined central value
+//    flist - *in* <FloatList> - float list
+//
+//  Return Value:
+//    float - normalized, standard derivate
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Note: u is the average value of flist and has to be calculated
+//    before a call to this function
+//
+//    E.g.  list = {2.0, 4.0}
+//
+//          u <- *user input*
+//
+//          len = sizeof(list)
+//
+//          [ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__stdFLL(const FloatList& flist, const FLOAT& u)
+{
+    if(!flist.is_bound()) FLOAT();
+    double toret = 0.0;
+    int i, len = flist.size_of();
+    if(len == 0) return FLOAT();
+    for(i=0;i<len;i++) toret += pow((double)flist[i]-(double)u,2.0);
+    return FLOAT(pow(toret/((double)(len-1)),0.5));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__updateFL
+//
+//  Purpose:
+//    Append tail to the end of head (head return as inout)
+//
+//  Parameters:
+//    head - *in* <FloatList> - first part of the float list
+//    tail - *in* <FloatList> - second part of the float list
+//
+//  Return Value:
+//    -
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+void f__updateFL(FloatList& head, const FloatList& tail)
+{
+    unsigned int i, count, len;
+    if(!tail.is_bound()) return;
+    len = tail.size_of();
+    if(head.is_bound()) count = (unsigned int)head.size_of();
+    else count = 0;
+    for(i=0;i<len;i++)
+    {
+        head[count] = tail[i];
+        count++;
+    }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__updateIL
+//
+//  Purpose:
+//     Append tail to the end of head (head return as inout)
+//
+//  Parameters:
+//    head - *in* <IntegerList> - first part of the integer list
+//    tail - *in* <IntegerList> - second part of the integer list
+//
+//  Return Value:
+//    -
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+void f__updateIL(IntegerList& head, const IntegerList& tail)
+{
+    unsigned int i, count, len;
+    if(!tail.is_bound()) return;
+    len = tail.size_of();
+    if(head.is_bound()) count = (unsigned int)head.size_of();
+    else count = 0;
+    for(i=0;i<len;i++)
+    {
+        head[count] = tail[i];
+        count++;
+    }
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__stdIL
+//
+//  Purpose:
+//    Return the normalized standard deviation of integer list
+//    (so the average square distance from the center of points)
+//
+//  Parameters:
+//    ilist - *in* <IntegerList> - integer list
+//
+//  Return Value:
+//    float - normalized, standard derivate
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    E.g.  list = {2.0, 4.0}
+//
+//          u = (2.0 + 4.0) / 2 <- *center of elements in the list*
+//
+//          len = sizeof(list)
+//
+//          [ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)
+//
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__stdIL(const IntegerList& ilist)
+{
+    double toret = 0.0;
+    int i, len = ilist.size_of();
+    double u = (double)TCCMaths__Functions::f__averageIL(ilist);
+    for(i=0;i<len;i++) toret += pow((double)ilist[i]-u,2.0);
+    return FLOAT(pow(toret/((double)len-1),0.5));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__stdILL
+//
+//  Purpose:
+//    Return the normalized standard deviation of integer list using custom
+//    center
+//    (so it is the average square distance from a user defined central value)
+//
+//  Parameters:
+//    u - *in* *float* - user defined central value
+//    ilist - *in* <IntegerList> - integer list
+//
+//  Return Value:
+//    float - normalized, standard derivate
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Note: u is a user defined value
+//
+//    E.g.  list = {2.0, 4.0}
+//
+//          u <- *user input*
+//
+//          len = sizeof(list)
+//
+//          [ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__stdILL(const IntegerList& ilist, const FLOAT& u)
+{
+    if(!ilist.is_bound()) FLOAT();
+    double toret = 0.0;
+    int i, len = ilist.size_of();
+    if(len == 0) return FLOAT();
+    for(i=0;i<len;i++) toret += pow((double)ilist[i]-(double)u,2.0);
+    return FLOAT(pow(toret/((double)(len-1)),0.5));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__sinVL
+//
+//  Purpose:
+//    Return the values of the sin function
+//
+//  Parameters:
+//    freq - *in* *float* - the frequency of the sine curve
+//    altitude - *in* *float* - the altitude of the sine curve
+//    start_val - *in* *float* - the starting value passed to the sine function
+//    len - *in* *integer* - the wanted number of points of the sine curve
+//    step - *in* *float* - the length between the points on the sine curve
+//
+//  Return Value:
+//    <FloatList> - the wanted points in a float list
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Generation of one sin value:
+//
+//      altitude * sin(2 * pi * freq * start_val)
+//
+//      start_val := start_val + step
+//
+///////////////////////////////////////////////////////////////////////////////
+FloatList f__sinVL(const FLOAT& freq, const FLOAT& altitude, const FLOAT& start__val, const INTEGER& len, const FLOAT& step)
+{
+    double pi = 3.1415926535;
+    int i;
+    double tmp = (double)start__val;
+    FloatList toret;
+    for(i=0;i<(int)len;i++)
+    {
+        toret[i] = (double)altitude * sin(2.0 * pi * (double)freq * tmp);
+        tmp += (double)step;
+    }
+
+    return (toret);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__cosVL
+//
+//  Purpose:
+//    Return the values of the cos function
+//
+//  Parameters:
+//    freq - *in* *float* - the frequency of the sine curve
+//    altitude - *in* *float* - the altitude of the sine curve
+//    start_val - *in* *float* - the starting value passed to the sine function
+//    len - *in* *integer* - the wanted number of points of the sine curve
+//    step - *in* *float* - the length between the points on the sine curve
+//
+//  Return Value:
+//    <FloatList> - the wanted points in a float list
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Generation of one cos value:
+//
+//      altitude * cos(2 * pi * freq * start_val)
+//
+//      start_val := start_val + step
+//
+///////////////////////////////////////////////////////////////////////////////
+FloatList f__cosVL(const FLOAT& freq, const FLOAT& altitude, const FLOAT& start__val, const INTEGER& len, const FLOAT& step)
+{
+    double pi = 3.1415926535;
+    int i;
+    double tmp = (double)start__val;
+    FloatList toret;
+    for(i=0;i<(int)len;i++)
+    {
+        toret[i] = (double)altitude * cos(2.0 * pi * (double)freq * tmp);
+        tmp += (double)step;
+    }
+
+    return (toret);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__sin
+//
+//  Purpose:
+//    Return the sine of angle radians
+//
+//  Parameters:
+//    angle - *in* *float* - angle in radians
+//
+//  Return Value:
+//    float - the sine value of angle radians
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__sin(const FLOAT& angle)
+{
+  return FLOAT(sin(angle));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__cos
+//
+//  Purpose:
+//    Return the cosine of angle radians
+//
+//  Parameters:
+//    angle - *in* *float* - angle in radians
+//
+//  Return Value:
+//    float - the cosine value of angle radians
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__cos(const FLOAT& angle)
+{
+  return FLOAT(cos(angle));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__asin
+//
+//  Purpose:
+//    Return the arc sine of value in [-pi/2, +pi/2]
+//
+//  Parameters:
+//    val - *in* *float* - value
+//
+//  Return Value:
+//    float - the arc sine value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__asin(const FLOAT& val)
+{
+  return FLOAT(asin(val));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__acos
+//
+//  Purpose:
+//    Return the arc cosine of value in [0, pi]
+//
+//  Parameters:
+//    val - *in* *float* - value
+//
+//  Return Value:
+//    float - the arc cosine value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__acos(const FLOAT& val)
+{
+  return FLOAT(acos(val));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__powFF
+//
+//  Purpose:
+//    Raise to power (float to float power)
+//
+//  Parameters:
+//    base - *in* *float* - base value
+//    expo - *in* *float* - exponent value
+//
+//  Return Value:
+//    float - base raised to power expo
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__powFF(const FLOAT& base, const FLOAT& expo)
+{
+  return FLOAT(pow(base, expo));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__powII
+//
+//  Purpose:
+//    Raise to power (integer to integer power)
+//
+//  Parameters:
+//    base - *in* *integer* - base value
+//    expo - *in* *integer* - exponent value
+//
+//  Return Value:
+//    integer - base raised to power expo
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+INTEGER f__powII(const INTEGER& base, const INTEGER& expo)
+{
+  return INTEGER((int)pow(base, expo));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__powIF
+//
+//  Purpose:
+//    Raise to power (integer to float power)
+//
+//  Parameters:
+//    base - *in* *integer* - base value
+//    expo - *in* *float* - exponent value
+//
+//  Return Value:
+//    float - base raised to power expo
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__powIF(const INTEGER& base, const FLOAT& expo)
+{
+  return FLOAT(pow(base, expo));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__powFI
+//
+//  Purpose:
+//    Raise to power (float to integer power)
+//
+//  Parameters:
+//    base - *in* *float* - base value
+//    expo - *in* *integer* - exponent value
+//
+//  Return Value:
+//    float - base raised to power expo
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__powFI(const FLOAT& base, const INTEGER& expo)
+{
+  return FLOAT(pow(base, expo));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__sqrF
+//
+//  Purpose:
+//    Raise a float value to square
+//
+//  Parameters:
+//    base - *in* *float* - base value
+//
+//  Return Value:
+//    float - square of base
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__sqrF(const FLOAT& base)
+{
+  return FLOAT(base*base);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__sqrI
+//
+//  Purpose:
+//    Raise an integer value to square
+//
+//  Parameters:
+//    base - *in* *integer* - base value
+//
+//  Return Value:
+//    integer - square of base
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+INTEGER f__sqrI(const INTEGER& base)
+{
+  return INTEGER(base*base);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__sqrtF
+//
+//  Purpose:
+//    Square root of float value
+//
+//  Parameters:
+//    base - *in* *float* - base value
+//
+//  Return Value:
+//    float - square root of base
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__sqrtF(const FLOAT& base)
+{
+  return FLOAT(sqrt(base));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__sqrtI
+//
+//  Purpose:
+//    Square root of integer value
+//
+//  Parameters:
+//    base - *in* *integer* - base value
+//
+//  Return Value:
+//    float - square root of base
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__sqrtI(const INTEGER& base)
+{
+  return FLOAT(sqrt((double)base));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__ceil
+//
+//  Purpose:
+//    Return the smallest integer value that is not less then value
+//
+//  Parameters:
+//    val - *in* *float* - float value
+//
+//  Return Value:
+//    integer - ceil value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+INTEGER f__ceil(const FLOAT& val)
+{
+  return INTEGER((int)ceil(val));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__floor
+//
+//  Purpose:
+//    Return the largest integer value that is not greater then value
+//
+//  Parameters:
+//    val - *in* *float* - float value
+//
+//  Return Value:
+//    integer - floor value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+INTEGER f__floor(const FLOAT& val)
+{
+  return INTEGER((int)floor(val));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__exp
+//
+//  Purpose:
+//    Return the exponential value of the argument
+//
+//  Parameters:
+//    val - *in* *float* - float value
+//
+//  Return Value:
+//    float - exp value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__exp(const FLOAT& val)
+{
+  return FLOAT(exp(val));
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__log
+//
+//  Purpose:
+//    Return the natural logarithm of the argument
+//
+//  Parameters:
+//    val - *in* *float* - float value
+//
+//  Return Value:
+//    float - ln value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+FLOAT f__log(const FLOAT& val)
+{
+  return FLOAT(log(val));
+}
+
+}
diff --git a/src/TCCMaths_Functions.ttcn b/src/TCCMaths_Functions.ttcn
new file mode 100644
index 0000000..4baee72
--- /dev/null
+++ b/src/TCCMaths_Functions.ttcn
@@ -0,0 +1,937 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCMaths_Functions.ttcn
+//  Description:        TCC Useful Functions: Math Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2008-12-10
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCMaths_Functions
+//
+//  Purpose:
+//    This module supports mathematics
+//
+//  Module Parameters:
+//      -
+//
+//  Module depends on:
+//    <TCCMaths_GenericTypes>
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCMaths_Functions {
+
+import from TCCMaths_GenericTypes all;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module parameters:
+//
+//  Purpose:
+//    Module parameters used by TCCMaths_Functions.
+//
+///////////////////////////////////////////////////////////////////////////////
+
+//Types used by the poisson generation
+type record t_Poisson_Table
+{
+  boolean initialized,          //indicates if the table was initialized or not
+  float lambda,                 //the lambda that was used to generate the table
+  record of float poisson_value //the poisson table
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_maxIL
+//
+//  Purpose:
+//    Return an IntegerList with the highest number found at index 0 and
+//    the index of ilist where it's found at index 1
+//
+//  Parameters:
+//    ilist - *in* <IntegerList> - integer array
+//
+//  Return Value:
+//    <IntegerList> - integer array: { <max>, <max index> }
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_maxIL(in IntegerList ilist) return IntegerList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_maxFL
+//
+//  Purpose:
+//    Return an FloatList with the highest number found
+//    at index 0 and the index of flist where it's fond at index
+//    1
+//
+//  Parameters:
+//    flist - *in* <FloatList> - integer array
+//
+//  Return Value:
+//    <FloatList> - float array: { <max>, <max index> }
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_maxFL(in FloatList flist) return FloatList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_minIL
+//
+//  Purpose:
+//     Return an IntegerList with the lowest number found
+//     at index 0 and the index of ilist where it's fond at index
+//     1
+//
+//  Parameters:
+//    ilist - *in* <IntegerList> - integer array
+//
+//  Return Value:
+//    <IntegerList> - integer array: { <min>, <min index> }
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_minIL(in IntegerList ilist) return  IntegerList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_minFL
+//
+//  Purpose:
+//    Return an FloatList with the highest number found
+//    at index 0 and the index of flist where it's fond at index
+//    1
+//
+//  Parameters:
+//    flist - *in* <FloatList> - integer array
+//
+//  Return Value:
+//    <FloatList> - float array: { <min>, <min index> }
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_minFL(in FloatList flist) return FloatList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_averageFL
+//
+//  Purpose:
+//    Return the average of flist
+//
+//  Parameters:
+//    flist - *in* <FloatList> - integer array
+//
+//  Return Value:
+//    float - average of float numbers
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_averageFL(in FloatList flist) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_averageIL
+//
+//  Purpose:
+//    Return the average of ilist
+//
+//  Parameters:
+//    ilist - *in* <IntegerList> - integer array
+//
+//  Return Value:
+//    float - average of integer numbers
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_averageIL(in IntegerList ilist) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_updateFL
+//
+//  Purpose:
+//    Append tail to the end of head (head return as inout)
+//
+//  Parameters:
+//    head - *in* <FloatList> - first part of the float list
+//    tail - *in* <FloatList> - second part of the float list
+//
+//  Return Value:
+//    -
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_updateFL(inout FloatList head, in FloatList tail);
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_updateIL
+//
+//  Purpose:
+//     Append tail to the end of head (head return as inout)
+//
+//  Parameters:
+//    head - *in* <IntegerList> - first part of the integer list
+//    tail - *in* <IntegerList> - second part of the integer list
+//
+//  Return Value:
+//    -
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_updateIL(inout IntegerList head, in IntegerList tail);
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_stdFL
+//
+//  Purpose:
+//    Return the normalized standard devILtion of float list
+//    (so the average square distance from the center of elements in the list)
+//
+//  Parameters:
+//    flist - *in* <FloatList> - float list
+//
+//  Return Value:
+//    float - normalized, standard derivate
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    E.g.  list = {2.0, 4.0}
+//
+//          u = (2.0 + 4.0) / 2 <- *center of elements in the list*
+//
+//          len = sizeof(list)
+//
+//          [ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_stdFL(in FloatList flist) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_stdFLL
+//
+//  Purpose:
+//    Return the normalized standard devILtion of float list  using custom
+//    center
+//    (so it is the average square distance from a user defined central value)
+//
+//  Parameters:
+//    u - *in* *float* - user defined central value
+//    flist - *in* <FloatList> - float list
+//
+//  Return Value:
+//    float - normalized, standard derivate
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Note: u is the average value of flist and has to be calculated
+//    before a call to this function
+//
+//    E.g.  list = {2.0, 4.0}
+//
+//          u <- *user input*
+//
+//          len = sizeof(list)
+//
+//          [ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_stdFLL(in FloatList flist, in float u) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_stdIL
+//
+//  Purpose:
+//    Return the normalized standard devILtion of integer list
+//    (so the average square distance from the center of points)
+//
+//  Parameters:
+//    ilist - *in* <IntegerList> - integer list
+//
+//  Return Value:
+//    float - normalized, standard derivate
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    E.g.  list = {2.0, 4.0}
+//
+//          u = (2.0 + 4.0) / 2 <- *center of elements in the list*
+//
+//          len = sizeof(list)
+//
+//          [ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)
+//
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_stdIL(in IntegerList ilist) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_stdILL
+//
+//  Purpose:
+//    Return the normalized standard devILtion of integer list using custom
+//    center
+//    (so it is the average square distance from a user defined central value)
+//
+//  Parameters:
+//    u - *in* *float* - user defined central value
+//    ilist - *in* <IntegerList> - integer list
+//
+//  Return Value:
+//    float - normalized, standard derivate
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Note: u is a user defined value
+//
+//    E.g.  list = {2.0, 4.0}
+//
+//          u <- *user input*
+//
+//          len = sizeof(list)
+//
+//          [ ( (2.0-u)^2 + (4.0-u)^2 ) / len ] ^ (0.5)
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_stdILL(in IntegerList ilist, in float u) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_sinVL
+//
+//  Purpose:
+//    Return the values of the sine function
+//
+//  Parameters:
+//    freq - *in* *float* - the frequency of the sine curve
+//    altitude - *in* *float* - the altitude of the sine curve
+//    start_val - *in* *float* - the starting value passed to the sine function
+//    len - *in* *integer* - the wanted number of points of the sine curve
+//    step - *in* *float* - the length between the points on the sine curve
+//
+//  Return Value:
+//    <FloatList> - the wanted points in a float list
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Generation of one sin value:
+//
+//      altitude * sin(2 * pi * freq * start_val)
+//
+//      start_val := start_val + step
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_sinVL(
+  in float freq,
+  in float altitude,
+  in float start_val,
+  in integer len,
+  in float step) return FloatList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_cosVL
+//
+//  Purpose:
+//    Return the values of the cosine function
+//
+//  Parameters:
+//    freq - *in* *float* - the frequency of the sine curve
+//    altitude - *in* *float* - the altitude of the sine curve
+//    start_val - *in* *float* - the starting value passed to the sine function
+//    len - *in* *integer* - the wanted number of points of the sine curve
+//    step - *in* *float* - the length between the points on the sine curve
+//
+//  Return Value:
+//    <FloatList> - the wanted points in a float list
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    Generation of one cos value:
+//
+//      altitude * cos(2 * pi * freq * start_val)
+//
+//      start_val := start_val + step
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_cosVL(
+  in float freq,
+  in float altitude,
+  in float start_val,
+  in integer len,
+  in float step) return FloatList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_sin
+//
+//  Purpose:
+//    Return the sine of angle radILns
+//
+//  Parameters:
+//    angle - *in* *float* - angle in radILns
+//
+//  Return Value:
+//    float - the sine value of angle radILns
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_sin(in float angle) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_cos
+//
+//  Purpose:
+//    Return the cosine of angle radILns
+//
+//  Parameters:
+//    angle - *in* *float* - angle in radILns
+//
+//  Return Value:
+//    float - the cosine value of angle radILns
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_cos(in float angle) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_asin
+//
+//  Purpose:
+//    Return the arc sine of value in [-pi/2, +pi/2]
+//
+//  Parameters:
+//    val - *in* *float* - value
+//
+//  Return Value:
+//    float - the arc sine value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_asin(in float val) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_acos
+//
+//  Purpose:
+//    Return the arc cosine of value in [0, pi]
+//
+//  Parameters:
+//    val - *in* *float* - value
+//
+//  Return Value:
+//    float - the arc cosine value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_acos(in float val) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_powFF
+//
+//  Purpose:
+//    Raise to power (float to float power)
+//
+//  Parameters:
+//    base - *in* *float* - base value
+//    expo - *in* *float* - exponent value
+//
+//  Return Value:
+//    float - base raised to power expo
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_powFF(in float base, in float expo) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_powII
+//
+//  Purpose:
+//    Raise to power (integer to integer power)
+//
+//  Parameters:
+//    base - *in* *integer* - base value
+//    expo - *in* *integer* - exponent value
+//
+//  Return Value:
+//    integer - base raised to power expo
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_powII(in integer base, in integer expo) return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_powIF
+//
+//  Purpose:
+//    Raise to power (integer to float power)
+//
+//  Parameters:
+//    base - *in* *integer* - base value
+//    expo - *in* *float* - exponent value
+//
+//  Return Value:
+//    float - base raised to power expo
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_powIF(in integer base, in float expo) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_powFI
+//
+//  Purpose:
+//    Raise to power (float to integer power)
+//
+//  Parameters:
+//    base - *in* *float* - base value
+//    expo - *in* *integer* - exponent value
+//
+//  Return Value:
+//    float - base raised to power expo
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_powFI(in float base, in integer expo) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_sqrF
+//
+//  Purpose:
+//    Raise a float value to square
+//
+//  Parameters:
+//    base - *in* *float* - base value
+//
+//  Return Value:
+//    float - square of base
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_sqrF(in float base) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_sqrI
+//
+//  Purpose:
+//    Raise an integer value to square
+//
+//  Parameters:
+//    base - *in* *integer* - base value
+//
+//  Return Value:
+//    integer - square of base
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_sqrI(in integer base) return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_sqrtF
+//
+//  Purpose:
+//    Square root of float value
+//
+//  Parameters:
+//    base - *in* *float* - base value
+//
+//  Return Value:
+//    float - square root of base
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_sqrtF(in float base) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_sqrtI
+//
+//  Purpose:
+//    Square root of integer value
+//
+//  Parameters:
+//    base - *in* *integer* - base value
+//
+//  Return Value:
+//    float - square root of base
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_sqrtI(in integer base) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_ceil
+//
+//  Purpose:
+//    Return the smallest integer value that is not less then value
+//
+//  Parameters:
+//    val - *in* *float* - float value
+//
+//  Return Value:
+//    integer - ceil value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_ceil(in float val) return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_floor
+//
+//  Purpose:
+//    Return the largest integer value that is not greater then value
+//
+//  Parameters:
+//    val - *in* *float* - float value
+//
+//  Return Value:
+//    integer - floor value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_floor(in float val) return integer;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_exp
+//
+//  Purpose:
+//    Return the exponential value of the argument
+//
+//  Parameters:
+//    val - *in* *float* - float value
+//
+//  Return Value:
+//    float - exp value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_exp(in float val) return float;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_log
+//
+//  Purpose:
+//    Return the natural logarithm of the argument
+//
+//  Parameters:
+//    val - *in* *float* - float value
+//
+//  Return Value:
+//    float - ln value of val
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+external function f_log(in float val) return float;
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_generate_poissonTable
+//
+//  Purpose:
+//    Returns with an initialized poisson table which is a
+//    cumulative probability distribution list for a given lambda.
+//
+//  Parameters:
+//    p_lambda - *in* *float* - the lambda variance of the poisson distribution
+//    p_pTable - *out* *t_Poisson_Table* - the generated poisson table
+//
+//  Return Value:
+//    *boolean* - true if the generation was success
+//
+//  Errors:
+//    If exp(-lambda) is zero than the table generation fails
+//
+//  Detailed description:
+//    The table used to get a poisson value by a random number indicates the
+//    next poisson value that should be use. See <f_getNext_poissonValue>
+//    function for more details. The size of the table will be lambda * 2.
+//    Note: With this method we can only generate correct values for lambda-s smaller than about 100-110
+//	    This is due to f_powFF(p_lambda, j) is rounded to infinity above lambda-s bigger than about 150
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_generate_poissonTable(in float p_lambda, out t_Poisson_Table p_pTable) return boolean
+{
+  var float t := f_exp(-1.0*p_lambda);
+  var float act_poisson := 0.0;
+  var float factJ := 1.0;
+  var float distr_lambda := 0.0;
+  var integer i := 0;
+  var integer vl_limit := float2int(p_lambda +1.0 ) * 2;
+  var boolean ret_val := true;
+  p_pTable.initialized := true;
+
+  if(p_lambda<0.0)
+  {
+	log("lambda is smaller than zero. The generated poisson table is corrupted. Lambda:",p_lambda);
+        p_pTable.initialized := false;
+	ret_val := false;
+  }
+
+  if(t==0.0)
+  {
+	log("exp(-lambda) is zero. This may corrupts the poisson table generation. Lambda:",p_lambda);
+        p_pTable.initialized := false;
+	ret_val := false;
+  }
+
+  p_pTable.lambda := p_lambda;
+
+
+  act_poisson := t;
+  distr_lambda := t;
+  factJ := 0.0;
+  p_pTable.poisson_value[0] := act_poisson;
+
+  for(i:=1; i < vl_limit + 1; i := i + 1)
+  {
+    factJ := factJ + 1.0;
+    distr_lambda := distr_lambda * p_lambda / factJ;
+    act_poisson := act_poisson + distr_lambda;
+
+    p_pTable.poisson_value[i] := act_poisson;
+  }
+
+  return ret_val;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_getNext_poissonValue
+//
+//  Purpose:
+//    Returns with a random poisson value by the given poisson table and lambda
+//    poisson variance.
+//
+//  Parameters:
+//    p_lambda - *in* *float* - the lambda variance of the poisson distribution
+//    p_pTable - *inout* *t_Poisson_Table* - the poisson table
+//    p_sucess - *out* *boolean* - indicates if the returned value is from a
+//                                 successfully generated poisson table or not
+//                                 If false, an extremly rare error happened under
+//                                 the table generation and this need to be
+//                                 regenerate!
+//
+//  Return Value:
+//    *integer* - the selected random poisson value between 0 and sizeof(p_pTable)
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    The function checks the input table if it is initialized or not and if
+//    not first of all generates it by the <f_generate_poissonTable> function.
+//    If the table was initialized checks the given lambda if it was used to
+//    generate the table. If it is different, regenerates the table.
+//    After these checks we have the correct initialized poisson table for
+//    the given p_lambda. Finally it returns with a random poisson value by
+//    the table.
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_getNext_poissonValue(in float p_lambda, inout t_Poisson_Table p_pTable, out boolean p_sucess) return integer
+{
+  var integer ret_val := 0;
+  var float random_num := rnd();
+  var integer i := 0;
+  var integer vl_limit;
+
+  p_sucess := true;
+
+  //if it is the first time or for different lambda
+  //than (re-)generate the poisson table
+  if((not p_pTable.initialized) or p_lambda != p_pTable.lambda)
+  {
+    p_sucess := f_generate_poissonTable(p_lambda, p_pTable);
+  }
+  if(p_sucess)
+  {
+    vl_limit := sizeof(p_pTable.poisson_value) - 1;
+    i := float2int(p_lambda);
+    if(p_pTable.poisson_value[i] < random_num)
+    {
+  	i := i + 1;
+  	while((p_pTable.poisson_value[i] < random_num) and (i < vl_limit))
+  	{
+    	i := i + 1;
+  	}
+    }
+    else
+    {
+   	while((p_pTable.poisson_value[i] > random_num) and (i>0))
+  	{
+    	i := i - 1;
+  	}
+    }
+    ret_val := i;
+  }
+
+  return ret_val;
+}
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_gen_Exponential_Distribution(in float p_lambda) return float
+//
+//  Purpose:
+//    Returns with the exponential random variable for a given lambda
+//
+//  Parameters:
+//    p_lambda - *in* *float* - the lambda variance of the exponential distribution
+//
+//  Return Value:
+//    *float* - the exponential random variable for the given lambda
+//
+//  Errors:
+//    -
+//
+//  Detailed description:
+//    The function works as the following:
+//    - generate a random number U~U(0,1)
+//    - since U is uniform in (0,1) then so is U-1
+//    - X = - Log(1-U)/lambda = - Log(U)/lambda
+//    - return with X
+//    Note: Log means natural logarithm in this case
+//
+///////////////////////////////////////////////////////////////////////////////
+function f_gen_Exponential_Distribution(in float p_lambda) return float
+{
+  var float ret_val := 0.0;
+  var float random_num := rnd();
+
+  ret_val := -1.0*(f_log(random_num))/p_lambda;
+
+  return ret_val;
+}
+
+}
diff --git a/src/TCCMaths_GenericTypes.ttcn b/src/TCCMaths_GenericTypes.ttcn
new file mode 100644
index 0000000..03311d5
--- /dev/null
+++ b/src/TCCMaths_GenericTypes.ttcn
@@ -0,0 +1,145 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCMaths_GenericTypes.ttcn
+//  Description:        TCC Useful Functions: Generic Types For Maths
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-11-12
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCMaths_GenericTypes
+//
+//  Purpose:
+//    This module stores generic types for math functions
+//
+//  Module Parameters:
+//      -
+//
+//  Module depends on:
+//    -
+//
+//  Current Owner:
+//    Akos Pernek (EAKOPER)
+//
+//  Last Review Date:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCMaths_GenericTypes {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Const: pi
+//
+//  Purpose:
+//    Provide the value of pi
+//
+//  Value:
+//    3.1415926535
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+const float pi := 3.1415926535
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: VerdictList
+//
+//  Purpose:
+//    List of verdicttype
+//
+//  Elements:
+//    record of *verdicttype*
+//
+// Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+type record of verdicttype VerdictList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: IntegerList
+//
+//  Purpose:
+//    List of integer
+//
+//  Elements:
+//    record of *integer*
+//
+// Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+type record of integer IntegerList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: BooleanList
+//
+//  Purpose:
+//    List of boolean
+//
+//  Elements:
+//    record of *boolean*
+//
+// Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+type record of boolean BooleanList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: FloatList
+//
+//  Purpose:
+//    List of float
+//
+//  Elements:
+//    record of *float*
+//
+// Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+type record of float FloatList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: StringList
+//
+//  Purpose:
+//    List of charstring
+//
+//  Elements:
+//    record of *charstring*
+//
+// Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+type record of charstring StringList;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Type: OctetStringList
+//
+//  Purpose:
+//    List of octetstring
+//
+//  Elements:
+//    record of *octetstring*
+//
+// Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+type record of octetstring OctetStringList;
+}
diff --git a/src/TCCMessageHandling.cc b/src/TCCMessageHandling.cc
new file mode 100644
index 0000000..2014840
--- /dev/null
+++ b/src/TCCMessageHandling.cc
@@ -0,0 +1,215 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:     TCCMessageHandling.cc
+//  Rev:      R22B
+//  Prodnr:   CNL 113 472
+//  Updated:  2013-11-07
+//  Contact:  http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TTCN3.hh"
+#include "TCCMessageHandling_Functions.hh"
+#include <ctype.h>
+#include <stdio.h>
+#include <string.h>
+#include <strings.h>
+
+int get_content_length(char *buff, int length)
+{
+  int current_state=0;
+  int ret_val=-1;
+  for(int a=0;a<length;a++){
+    switch(current_state){
+      case 0:
+        if(buff[a]=='\n') current_state=1;
+        break;
+      case 1:
+        if(buff[a]=='l' || buff[a]=='L') current_state=2;
+        else if( (a+14 < length)  && (!strncasecmp(buff+a,"content-length",14))) {current_state=2;a+=13;}
+        else current_state=0;
+        break;
+      case 2:
+        if(buff[a]==':') current_state=3;
+        else if(buff[a]==' ' || buff[a]=='\t' || buff[a]=='\r' || buff[a]=='\n') current_state=2;
+        else current_state=0;
+        break;
+      case 3:
+        if(buff[a]>='0' && buff[a]<='9'){
+          ret_val=buff[a]-'0';
+          current_state=4;
+        }
+        else if(buff[a]==' ' || buff[a]=='\t' || buff[a]=='\r' || buff[a]=='\n') current_state=3;
+        else current_state=0;
+        break;
+      case 4:
+        if(buff[a]>='0' && buff[a]<='9'){
+          ret_val*=10;
+          ret_val+=buff[a]-'0';
+        }
+        else return ret_val;
+        break;
+    }
+  }
+  return ret_val;
+}
+
+char* get_header_end(char *buff, int length)
+{
+  int current_state = 0;
+  char* ret_val = NULL;
+  for (int a=0;a<length;a++)
+  {
+    switch(current_state){
+      case 0:
+        if(buff[a]=='\n') current_state=1;
+        break;
+      case 1:
+        if(buff[a]=='\r') current_state=2;
+        else current_state=0;
+        break;
+      case 2:
+        if(buff[a]=='\n')
+          return buff+a-2;
+        else current_state=0;
+        break;
+    }
+  }
+  return ret_val;
+}
+
+INTEGER TCCMessageHandling__Functions::f__TCCMessageHandling__getMessageLength
+(
+  const OCTETSTRING& stream
+)
+{
+  char *msg_in_buffer_loc = (char*) ((const unsigned char*) stream);
+  const int   buf_length = stream.lengthof();
+  const char *header_end;
+  char *atm = msg_in_buffer_loc;
+  int num_chars;
+
+  //check for STUN response
+  if (2 == buf_length && '\r' == msg_in_buffer_loc[0] && '\n' == msg_in_buffer_loc[1])
+    return 2;
+  
+  while((*atm<=' ') && (*atm>0) && (atm-msg_in_buffer_loc < buf_length-1)) {atm++;}  // skip leading blanks
+
+  //header_end=strstr(atm,"\n\r\n");  // search for alone crlf
+  header_end = get_header_end(atm, buf_length-(atm-msg_in_buffer_loc));
+
+  if(header_end)
+    num_chars=(header_end-msg_in_buffer_loc)+3;
+  else
+    return -1;
+
+  int cont_len = get_content_length(msg_in_buffer_loc,num_chars);
+  if (cont_len == -1) 
+    return -1;
+
+  return INTEGER(num_chars + cont_len);
+}
+
+INTEGER TCCMessageHandling__Functions::f__TCCMessageHandling__getMessageLength4Diameter
+(
+  const OCTETSTRING& stream
+)
+{
+  if (stream.lengthof() < 4){ return -1; }
+  const unsigned char *msg_in_buffer_loc =  ((const unsigned char*) stream);
+  
+  int ret_value = (msg_in_buffer_loc[1] << 16) + (msg_in_buffer_loc[2] << 8) + (msg_in_buffer_loc[3]);
+  return ret_value;
+}
+
+INTEGER TCCMessageHandling__Functions::f__TCCMessageHandling__getMessageLength4Radius
+(
+  const OCTETSTRING& stream
+)
+{
+  if (stream.lengthof() < 4){ return -1; }
+  const unsigned char *msg_in_buffer_loc =  ((const unsigned char*) stream);
+  
+  int ret_value = (msg_in_buffer_loc[2] << 8) + (msg_in_buffer_loc[3]);
+  return ret_value;
+}
+
+INTEGER TCCMessageHandling__Functions::f__TCCMessageHandling__getMessageLength4BER
+(
+  const OCTETSTRING& stream
+)
+{   
+    const unsigned char* data =  (const unsigned char*)stream;  
+    size_t length = stream.lengthof();
+  
+    enum position {TAG,LENGTH,INDEFINITE};
+
+    position pos = TAG;
+    size_t number_of_L_bytes = 0;
+    size_t leng = 0;
+  
+    for (size_t i = 0; i < length; ){
+	  switch(pos){
+		  case TAG:{
+			  if ((data[i] & 0x1F) > 30){
+				  ++i;
+				  for ( ;(i < length) && (data[i] & 0x80); ++i);
+			  }
+
+			  ++i;
+			  pos = LENGTH;
+			  break;
+
+		  }
+		  case LENGTH:{
+			  if (data[i] & 0x80){
+				  if (! (data[i] & 0x7F)) //indefinite form
+					  pos = INDEFINITE;
+				  else{ //long form
+					  number_of_L_bytes = data[i] & 0x7F;
+					  ++i;
+					  for(;(i < length) && number_of_L_bytes; ++i, --number_of_L_bytes){
+					    leng<<=8;
+					    leng+=data[i];
+					  }					  
+
+					  return leng + i;
+					    
+				  }
+			  } else{ //short form
+				 
+					  return i + data[i] + 1;
+			  }
+			  
+			  ++i;
+			  break;
+		  }
+		  case INDEFINITE:{
+	
+			ASN_BER_TLV_t tmp_tlv;   
+                        if(ASN_BER_str2TLV(stream.lengthof(),stream,tmp_tlv, BER_ACCEPT_ALL)){
+                          return tmp_tlv.get_len();
+                        } 
+                        else
+                          return -1; 
+		  }
+		  default:
+			  TTCN_error("Unknown state while parsing TLV.");
+	  }
+  }
+
+  return -1;  
+  
+   
+     
+}
+
+
diff --git a/src/TCCMessageHandling_Functions.ttcn b/src/TCCMessageHandling_Functions.ttcn
new file mode 100644
index 0000000..2d45d76
--- /dev/null
+++ b/src/TCCMessageHandling_Functions.ttcn
@@ -0,0 +1,90 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCMessageHandling_Functions.ttcn
+//  Description:        TCC Useful Functions: MessageHandling Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-03-28
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCMessageHandling_Functions
+// 
+//  Purpose:
+//    This module provide message handling functions
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+// 
+//  Current Owner:
+//    Norbert Pinter (ENORPIN)
+// 
+//  Last Review Date:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+module TCCMessageHandling_Functions {
+
+/* Function: f_TCCMessageHandling_getMessageLength
+
+   Function to get the length of the received message. 
+
+   Parameters:
+     -
+
+   Returns:
+     -  */
+external function f_TCCMessageHandling_getMessageLength(in octetstring stream)
+return integer;
+
+/* Function: f_TCCMessageHandling_getMessageLength4Diameter
+
+   Function to get the length of the received message. 
+
+   Parameters:
+     -
+
+   Returns:
+     -  */
+external function f_TCCMessageHandling_getMessageLength4Diameter(in octetstring stream)
+return integer;
+
+/* Function: f_TCCMessageHandling_getMessageLength4Radius
+
+   Function to get the length of the received message. 
+
+   Parameters:
+     -
+
+   Returns:
+     -  */
+external function f_TCCMessageHandling_getMessageLength4Radius(in octetstring stream)
+return integer;
+
+
+/* Function: f_TCCMessageHandling_getMessageLength4BER
+
+   Function to get the length of the received BER encoded message. 
+
+   Parameters:
+     octetstring - BER encoded message(s) or a BER encoded segment
+
+   Returns:
+     integer - the length of the first BER encoded message if it can be determined, otherwise -1  */
+external function f_TCCMessageHandling_getMessageLength4BER(in octetstring stream)
+return integer;
+
+}
diff --git a/src/TCCPermutatedParameters_Definitions.ttcn b/src/TCCPermutatedParameters_Definitions.ttcn
new file mode 100644
index 0000000..6e1bda5
--- /dev/null
+++ b/src/TCCPermutatedParameters_Definitions.ttcn
@@ -0,0 +1,161 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCPermutatedParameters_Definitions.ttcn
+//  Description:        definitions for permutated params
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-05-30
+//  Contact:            http://ttcn.ericsson.se
+//////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCPermutatedParameters_Definitions
+//
+//  Purpose:
+//    This module contains the definitions of the PermutatedParameters
+//
+//  Module Parameters:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCPermutatedParameters_Definitions {
+
+import from General_Types all;
+
+//=========================================================================
+// Data Types
+//=========================================================================
+
+///////////////////////////////////////////////////////////
+//  Type: PP_ParameterAssignmentList
+// 
+//  Purpose:
+//   List of PP_ParameterAssignment
+// 
+//  Elements:
+//    list elements
+// 
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////
+type record of PP_ParameterAssignment PP_ParameterAssignmentList;
+
+///////////////////////////////////////////////////////////
+//  Type: PP_ParameterAssignment
+// 
+//  Purpose:
+//   Parameter definition, including type(s) and values of the parameter 
+// 
+//  Elements:
+//    typeField - *charstring* - type (list) of the parameter. List of types
+//      are separated by comma (',')
+//    valueField - *charstring* - value(s) of the parameter.
+//      Values can be single values, range of values, value list, or any combination of these.
+// 
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////
+type record PP_ParameterAssignment {
+  charstring  typeField,
+  charstring  valueField
+}
+
+///////////////////////////////////////////////////////////
+//  Type: PP_Range
+// 
+//  Purpose:
+//   Definition of a range. Ranges have prefix, minimum and maximum boundary.
+//   Prefix can contain any characters, while minimum and maximum only digits.
+// 
+//  Elements:
+//    prefix - *charstring* - prefix of a range.
+//    rangeMin - *integer* - the minimum (beginning) of a range
+//    rangeMax - *integer* - the maximum (end) of a range
+// 
+//  Detailed Comments:
+//
+//    Example range: +3614377100 - +3614377200
+//      prefix : +3614377
+//      rangeMin: 100
+//      rangeMin: 200
+//
+///////////////////////////////////////////////////////////
+type record PP_Range {
+  charstring  prefix,
+  integer     rangeMin,
+  integer     rangeMax
+}
+
+///////////////////////////////////////////////////////////
+//  Type: PP_RangeList
+// 
+//  Purpose:
+//   List of PP_Range
+// 
+//  Elements:
+//    list elements
+// 
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////
+type record of PP_Range PP_RangeList;
+
+///////////////////////////////////////////////////////////
+//  Type: PP_SingleParam
+// 
+//  Purpose:
+//   Single parameter, types and values
+// 
+//  Elements:
+//    types - *EPTF_CharstringList* - types assigned to the values
+//    values - *PP_RangeList* - values assigned to the types
+// 
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////
+type record PP_SingleParam {
+  Charstrings  types,
+  PP_RangeList         values
+}
+
+///////////////////////////////////////////////////////////
+//  Type: PP_ParamSetList
+// 
+//  Purpose:
+//   List of PP_ParamSet
+// 
+//  Elements:
+//    list elements
+// 
+//  Detailed Comments:
+//
+//    Can be used to group together PP_ParamSets
+//
+///////////////////////////////////////////////////////////
+type record of PP_ParamSet PP_ParamSetList; // is each CGPN has its own current ParamSet
+
+///////////////////////////////////////////////////////////
+//  Type: PP_ParamSet
+// 
+//  Purpose:
+//   Set of PP_SingleParam
+// 
+//  Elements:
+//    set elements
+// 
+//  Detailed Comments:
+//
+//    Can be used to group together PP_SingleParams
+//
+///////////////////////////////////////////////////////////
+type set of PP_SingleParam PP_ParamSet;  // ie params belonging to one particular call
+
+} with { extension "version R22B"}
diff --git a/src/TCCPermutatedParameters_Functions.ttcn b/src/TCCPermutatedParameters_Functions.ttcn
new file mode 100644
index 0000000..6032fca
--- /dev/null
+++ b/src/TCCPermutatedParameters_Functions.ttcn
@@ -0,0 +1,910 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCPermutatedParameters_Functions.ttcn
+//  Description:        functions for permutated params
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2013-07-17
+//  Contact:            http://ttcn.ericsson.se
+//////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCPermutatedParameters_Functions
+//
+//  Purpose:
+//    This module contains functions for the PermutatedParameters
+//
+//  Module Parameters:
+//    -
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCPermutatedParameters_Functions {
+
+import from TCCPermutatedParameters_Definitions all;
+
+import from TCCConversion_Functions all;
+import from General_Types all;
+
+//import from EPTF_CLL_Common_Definitions all; //Charstrings
+//import from EPTF_CLL_CLI_Functions all; //f_my_splitString()
+private function f_my_splitString(
+  in charstring pl_string,
+  in charstring pl_separator := " \t",
+  in boolean pl_multipleSeparators := true
+) return Charstrings {
+  var Charstrings vl_result := {};
+  var charstring vl_everything := "(*)";
+  var charstring vl_separatorNumber := "(,)";
+  if (not pl_multipleSeparators) {
+    vl_separatorNumber := "(,1)";
+  }
+  var charstring vl_separatorRegexp := "["&pl_separator&"]#"&vl_separatorNumber;
+  var charstring vl_anyWordRegexp := "([^"&pl_separator&"]#(,))"; // can be "" also
+  for(
+    var charstring vl_currentString := regexp(pl_string,vl_separatorRegexp&vl_everything&vl_separatorRegexp,0);
+    vl_currentString != "";
+    vl_currentString := regexp(vl_currentString,vl_anyWordRegexp&vl_separatorRegexp&vl_everything,1)) {
+     vl_result[sizeof(vl_result)] := regexp(vl_currentString,vl_anyWordRegexp&vl_separatorRegexp&vl_everything,0);
+  }
+  return vl_result;
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_getPermutatedParams
+// 
+//  Purpose:
+//    Returns a parameter set calculated from the index of the permutation.
+//    The values of the parameters are composed into the prefix field.
+//
+//  Parameters:
+//    - pl_permutationIdx - *in* *integer* - requested permutation index
+//    - pl_paramTypes - *in* *Charstrings* - types of the parameters
+//    - pl_assignmentList - *in* *PP_ParamSet* - assignment list
+//
+//  Return Value:
+//    *PP_ParamSet* - parameter set calculated for the permutation index
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+//    -
+//
+///////////////////////////////////////////////////////////
+// no HashMap or other booster is used, function could be enhanced to store intermittent results
+public function f_PP_getPermutatedParams(
+  in integer pl_permutationIdx,
+  in Charstrings pl_paramTypes,
+  in PP_ParamSet pl_assignmentList
+) return PP_ParamSet {
+
+  var Integers vl_TypesCount;
+  f_PP_calculateTypeCounts(pl_paramTypes, pl_assignmentList, vl_TypesCount);
+
+  var Integers vl_currentPermutationIdxs;
+  f_PP_getPermutationIndexList(pl_permutationIdx, vl_TypesCount, vl_currentPermutationIdxs);
+
+  var PP_ParamSet vl_ret := {};
+
+  var integer vl_iLoopEnd := sizeof(pl_paramTypes);
+  var integer vl_jLoopEnd := sizeof(pl_assignmentList);
+  for(var integer i := 0; i < vl_iLoopEnd; i := i + 1) {
+
+    for(var integer j := 0; j < vl_jLoopEnd; j := j + 1) {
+
+      if(f_PP_charListContains(pl_paramTypes[i], pl_assignmentList[j].types)
+        and (vl_currentPermutationIdxs[i] >= 0)) {
+
+        f_PP_getInRangeValue(pl_assignmentList[j], vl_currentPermutationIdxs[i], vl_ret);
+
+      }
+    }
+  }
+
+  return vl_ret;
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_getInRangeValue
+// 
+//  Purpose:
+//    Calculates a single value of a parameter value range,
+//    and appends it to the paramSet.
+//
+//  Parameters:
+//    - pl_param - *in* *PP_SingleParam* - parameter from which the value is calculated
+//    - pl_permutationIdx - *in* *integer* - requested permutation index
+//    - pl_paramSet - *in* *PP_ParamSet* - paramSet which to append the value
+//
+//  Return Value:
+//    -
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+//    -
+//
+///////////////////////////////////////////////////////////
+private function f_PP_getInRangeValue(
+  in PP_SingleParam pl_param,
+  in integer pl_permutationIdx,
+  inout PP_ParamSet pl_paramSet
+) {
+  var integer vl_typeCount := 0;
+
+  // count each range; if the selected value is within the range, then put it into the ParamSet
+  var integer vl_iLoopEnd := sizeof(pl_param.values);
+  for(var integer i := 0; i < vl_iLoopEnd; i := i + 1) {
+
+    if(vl_typeCount + pl_param.values[i].rangeMax - pl_param.values[i].rangeMin < pl_permutationIdx) {
+
+      vl_typeCount := vl_typeCount + pl_param.values[i].rangeMax - pl_param.values[i].rangeMin + 1;
+
+    } else {
+
+      pl_paramSet[sizeof(pl_paramSet)] := {
+        types := { pl_param.types[0] }, // normalized parameters have only one type
+        values := {
+          {
+            prefix := f_PP_getValueFromRange(
+              pl_param.values[i],
+              pl_permutationIdx - vl_typeCount),
+            rangeMin := -1,
+            rangeMax := -1
+          }
+        }
+      }
+
+      break;
+    }
+  }
+
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_getPermutationIndexList
+// 
+//  Purpose:
+//    Returns a list of indexes, calculated from the permutationIdx,
+//    which point to a value element in each parameter type.
+//
+//  Parameters:
+//    - pl_permutationIdx - *in* *integer* - requested permutation index
+//    - pl_TypesCount - *in* *Integers* - count of values in each type
+//    - pl_currentPermutationIdxs - *out* *Integers* - value indexes
+//
+//  Return Value:
+//    -
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+//    -
+//
+///////////////////////////////////////////////////////////
+private function f_PP_getPermutationIndexList(in integer pl_permutationIdx, in Integers pl_TypesCount, out Integers pl_currentPermutationIdxs) {
+
+  pl_currentPermutationIdxs := {};
+
+  var integer vl_permutationsBelow;
+  var integer vl_remainder := pl_permutationIdx;
+
+  var integer vl_typesCount := sizeof(pl_TypesCount);
+  for(var integer i := 0; i < vl_typesCount; i := i + 1) {
+
+    if(pl_TypesCount[i] != 0) {
+
+      vl_permutationsBelow := 1;
+
+      for(var integer j := i + 1; j < vl_typesCount; j := j + 1) {
+        if(pl_TypesCount[i] != 0) {
+          vl_permutationsBelow := vl_permutationsBelow * pl_TypesCount[j];
+        }
+      }
+
+      if(vl_permutationsBelow > 0) {
+
+        pl_currentPermutationIdxs[sizeof(pl_currentPermutationIdxs)] := vl_remainder / vl_permutationsBelow;
+        vl_remainder := vl_remainder - (pl_currentPermutationIdxs[sizeof(pl_currentPermutationIdxs) - 1] * vl_permutationsBelow);
+
+      } else {
+        pl_currentPermutationIdxs[sizeof(pl_currentPermutationIdxs)] := 0;
+      }
+
+    } else {
+      pl_currentPermutationIdxs[sizeof(pl_currentPermutationIdxs)] := -1;
+    }
+
+  }
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_countPermutations
+// 
+//  Purpose:
+//    Calculates the permutations of the parameters, filtered by types.
+//    Permutations is calculated by multiplying the number of parameters
+//    belonging to different types.
+//
+//  Parameters:
+//    - pl_paramTypes - *in* *Charstrings* - types of the parameters
+//    - pl_assignmentList - *in* *PP_ParamSet* - assignment list
+//
+//  Return Value:
+//    *integer* - number of permutations
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+//    -
+//
+///////////////////////////////////////////////////////////
+public function f_PP_countPermutations(
+  in Charstrings pl_paramTypes,
+  in PP_ParamSet pl_assignmentList
+) return integer {
+
+  var Integers vl_TypesCount := {};
+
+  f_PP_calculateTypeCounts(pl_paramTypes, pl_assignmentList, vl_TypesCount);
+
+  var charstring vl_multiplication := "";
+  var integer vl_permutations := 1;
+  var integer vl_iLoopEnd := sizeof(vl_TypesCount);
+  for(var integer i := 0; i < vl_iLoopEnd; i := i + 1) {
+    // If any of the types has 0 count, then the number of permutations will be 0.
+    vl_multiplication := vl_multiplication & pl_paramTypes[i] & " x " & int2str(vl_TypesCount[i]);
+    if(i != sizeof(vl_TypesCount) - 1) { vl_multiplication := vl_multiplication & " & "; }
+    vl_permutations := vl_permutations * vl_TypesCount[i];
+  }
+  vl_multiplication := vl_multiplication & " = " & int2str(vl_permutations);
+  log("permutation count is calculated by the formula: ", vl_multiplication);
+  return vl_permutations;
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_charListContains
+// 
+//  Purpose:
+//    Returns true if the value parameter is present within the list parameter. 
+//
+//  Parameters:
+//    - pl_value - *in* *Charstrings* - value parameter
+//    - pl_list - *in* *Charstrings* - list parameter
+//
+//  Return Value:
+//    *boolean* - true if the value parameter is present within the list parameter
+//       otherwise false
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////
+private function f_PP_charListContains(in charstring pl_value, in Charstrings pl_list) return boolean {
+  var integer vl_iLoopEnd := sizeof(pl_list);
+  for(var integer i := 0; i < vl_iLoopEnd; i := i + 1) {
+    if(pl_list[i] == pl_value) {
+      return true;
+    }  
+  }
+
+  return false;
+}//f_PP_charListContains
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_countRange
+// 
+//  Purpose:
+//    Function counts the number of elements
+//    defined in the value ranges of the parameter. 
+//
+//  Parameters:
+//    - pl_rangeList - *in* *PP_RangeList* - ranges
+//
+//  Return Value:
+//    *integer* - number of elements in ranges
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////
+private function f_PP_countRange(in PP_RangeList pl_rangeList) return integer {
+  var integer vl_result := 0;
+  var integer vl_iLoopEnd := sizeof(pl_rangeList);
+  for(var integer i:=0; i < vl_iLoopEnd; i := i + 1) {
+    vl_result := vl_result + pl_rangeList[i].rangeMax - pl_rangeList[i].rangeMin + 1;
+  }// for i
+
+  return vl_result;
+}//f_PP_countRange
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_calculateTypeCounts
+// 
+//  Purpose:
+//    Function calculates the number of values for each type. 
+//
+//  Parameters:
+//    - pl_paramTypes - *in* *Charstrings* - types of the parameters
+//    - pl_assignmentList - *in* *PP_ParamSet* - assignment list
+//    - pl_typeCounts - *out* *Integers* - value counts for each type
+//
+//  Return Value:
+//    -
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//    -
+//
+///////////////////////////////////////////////////////////
+private function f_PP_calculateTypeCounts(
+  in Charstrings pl_paramTypes,
+  in PP_ParamSet pl_assignmentList,
+  out Integers pl_typeCounts
+) {
+
+  pl_typeCounts := {};
+
+  var integer vl_iLoopEnd := sizeof(pl_paramTypes);
+  var integer vl_jLoopEnd := sizeof(pl_assignmentList);
+  for(var integer i := 0; i < vl_iLoopEnd; i := i + 1) {
+    pl_typeCounts[i] := 0;
+
+    for(var integer j := 0; j < vl_jLoopEnd; j := j + 1) {
+      if(f_PP_charListContains(pl_paramTypes[i], pl_assignmentList[j].types)) {
+        pl_typeCounts[i] := pl_typeCounts[i] + f_PP_countRange(pl_assignmentList[j].values);
+      }
+    } // for j
+  }// for i
+
+}//f_PP_calculateTypeCounts
+
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_divideValuesOfTypes
+// 
+//  Purpose:
+//    Function returns a portion of parameters.
+//    The portion is calculated from the portion (LGen) index
+//    and number of portions (LGens). 
+//
+//  Parameters:
+//    - pl_paramTypes - *in* *Charstrings* - types of the parameters
+//    - pl_assignmentList - *in* *PP_ParamSet* - assignment list
+//    - pl_LGenIdx - *in* *integer* - index of the portion (LGen)
+//    - pl_noOfLGens - *in* *integer* - number of portions (LGens)
+//
+//  Return Value:
+//    *PP_ParamSet* - list of parameters divided to this LGen
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+//    If the size of portions would not be equal, the remainder of the
+//    portion division will be allocated to the first portion (LGen)
+//
+///////////////////////////////////////////////////////////
+// beware: no HashMap or other booster is used, function assumes that there will be only ~200 values!!! 
+public function f_PP_divideValuesOfTypes(
+  in Charstrings pl_paramTypes,
+  in PP_ParamSet pl_assignmentList,
+  in integer pl_LGenIdx,
+  in integer pl_noOfLGens) return PP_ParamSet {
+
+  var PP_ParamSet vl_values := {};
+
+  var integer vl_iLoopEnd := sizeof(pl_paramTypes);
+  var integer vl_jLoopEnd := sizeof(pl_assignmentList);
+  for(var integer i := 0; i < vl_iLoopEnd; i := i + 1) {
+    for(var integer j := 0; j < vl_jLoopEnd; j := j + 1) {
+
+      if(f_PP_charListContains(pl_paramTypes[i], pl_assignmentList[j].types)) {
+        f_PP_mergeValuesToParamSet(pl_paramTypes[i], pl_assignmentList[j], vl_values);
+      }
+
+    }
+  }
+
+  var integer vl_count := sizeof(vl_values);
+  var integer vl_begin, vl_end;
+  vl_begin := pl_LGenIdx * vl_count / pl_noOfLGens;
+  vl_end := (pl_LGenIdx + 1) * (vl_count / pl_noOfLGens) - 1; // bracket around division makes integer from float, which is needed!!!
+  // add the remainder to the end, so the first LGen will get the remainder of the division
+  var integer vl_remainder := vl_count - pl_noOfLGens * (vl_count / pl_noOfLGens); // bracket around division makes integer from float, which is needed!!!
+  if(pl_LGenIdx != 0) {
+    vl_begin := vl_begin + vl_remainder;
+  }
+  vl_end := vl_end + vl_remainder + 1;
+
+  var PP_ParamSet vl_divided := {};
+
+  for(var integer i := vl_begin; i < vl_end; i := i + 1) {
+    vl_divided[sizeof(vl_divided)] := vl_values[i];
+  }
+
+  return vl_divided;
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_mergeValuesToParamSet
+// 
+//  Purpose:
+//    Function merge a parameter's values to a ParamSet, one by one. 
+//
+//  Parameters:
+//    - pl_type - *in* *charstring* - parameter type to merge
+//        type index points to a type within the pl_param's types
+//    - pl_param - *in* *PP_SingleParam* - parameter to merge
+//    - pl_values - *inout* *PP_ParamSet* - parameter values will
+//        be merged with pl_values
+//
+//  Return Value:
+//    -
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//    Example:
+//      parameter (type:value): 'MO_SUBS : 4700'
+//        1. merge with: 'MT_SUBS : 4700'
+//           output: 'MO_SUBS, MT_SUBS: 4700'
+//        2. merge with: 'MT_SUBS : 4701'
+//           output: 'MO_SUBS : 4700, MT_SUBS : 4701'
+//        3. merge with: 'MO_SUBS : 4700' (already in the list)
+//           output: 'MO_SUBS : 4700' (unchanged)
+//
+///////////////////////////////////////////////////////////
+private function f_PP_mergeValuesToParamSet(
+  in charstring pl_type,
+  in PP_SingleParam pl_param,
+  inout PP_ParamSet pl_values) {
+
+  var boolean vl_alreadyAdded;
+  var integer vl_elementIdx;
+  var charstring vl_currentValue;
+
+  // go through each range
+  var integer vl_iLoopEnd := sizeof(pl_param.values);
+  for(var integer i := 0; i < vl_iLoopEnd; i := i + 1) {
+    // add each value, if it's not already added
+    for(var integer j := 0; j < pl_param.values[i].rangeMax - pl_param.values[i].rangeMin + 1; j := j + 1) {
+
+      vl_currentValue := f_PP_getValueFromRange(pl_param.values[i], j);
+      vl_alreadyAdded := false;
+
+      for(var integer k := 0; (k < sizeof(pl_values)) and (not vl_alreadyAdded); k := k + 1) {
+        if(pl_values[k].values[0].prefix == vl_currentValue) {
+          vl_alreadyAdded := true;
+          vl_elementIdx := k;
+        }
+      }
+
+      if(not vl_alreadyAdded) {
+
+        pl_values[sizeof(pl_values)] := {
+          types := { pl_type },
+          values := {
+            {
+              prefix := vl_currentValue,
+              rangeMin := -1,
+              rangeMax := -1
+            }
+          } 
+        };
+
+      } else {
+
+        // check if the current type is already within the added types
+        vl_alreadyAdded := false;
+        for(var integer k := 0; (k < sizeof(pl_values[vl_elementIdx].types)) and (not vl_alreadyAdded); k := k + 1) {
+          if(pl_values[vl_elementIdx].types[k] == pl_type) {
+            vl_alreadyAdded := true;
+          }
+        }
+
+        if(not vl_alreadyAdded) {
+          pl_values[vl_elementIdx].types[sizeof(pl_values[vl_elementIdx].types)] := pl_type;
+        }
+
+      }
+
+    }
+
+  }
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_countValuesOfTypes
+// 
+//  Purpose:
+//    Returns the number of values present in the assignment list, filtered
+//    for the types requested
+//
+//  Parameters:
+//    - pl_paramTypes - *in* *Charstrings* - types to count
+//    - pl_assignmentList - *in* *PP_ParamSet* - assignment list
+//
+//  Return Value:
+//    *integer* - number of values assigned to the requested types
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////
+public function f_PP_countValuesOfTypes(
+  in Charstrings pl_paramTypes,
+  in PP_ParamSet pl_assignmentList
+) return integer {
+
+  var Charstrings vl_values := {};
+
+  var integer vl_iLoopEnd := sizeof(pl_paramTypes);
+  var integer vl_jLoopEnd := sizeof(pl_assignmentList);
+  for(var integer i := 0; i < vl_iLoopEnd; i := i + 1) {
+    for(var integer j := 0; j < vl_jLoopEnd; j := j + 1) {
+
+      if(f_PP_charListContains(pl_paramTypes[i], pl_assignmentList[j].types)) {
+
+        f_PP_mergeValuesFromRanges(pl_assignmentList[j].values, vl_values);
+
+      }
+
+    }
+  }
+
+  return sizeof(vl_values);
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_mergeValuesFromRanges
+// 
+//  Purpose:
+//    Merge the values in the given ranges.
+//    Values will be appended with the new elements of the ranges.
+//
+//  Parameters:
+//    - pl_ranges - *in* *PP_RangeList* - ranges to merge
+//    - pl_values - *inout* *Charstrings* - merged value list
+//
+//  Return Value:
+//    -
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////
+private function f_PP_mergeValuesFromRanges(
+  in PP_RangeList pl_ranges,
+  inout Charstrings pl_values
+) {
+
+  var charstring vl_currentValue;
+  var boolean vl_alreadyAdded;
+
+  // go through each range
+  for(var integer i := 0; i < sizeof(pl_values); i := i + 1) {
+    // add each value, if it's not already added
+    for(var integer j := 0; j < pl_ranges[i].rangeMax - pl_ranges[i].rangeMin + 1; j := j + 1) {
+
+      vl_currentValue := f_PP_getValueFromRange(pl_ranges[i], j);
+      vl_alreadyAdded := false;
+
+      for(var integer k := 0; (k < sizeof(pl_values)) and (not vl_alreadyAdded); k := k + 1) {
+        if(pl_values[k] == vl_currentValue) {
+          vl_alreadyAdded := true;
+        }
+      }
+
+      if(not vl_alreadyAdded) {
+
+        pl_values[sizeof(pl_values)] := vl_currentValue;
+
+      }
+
+    }
+
+  }
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_getValueFromRange
+// 
+//  Purpose:
+//    Returns an exact value from the range.
+//
+//  Parameters:
+//    - pl_range - *in* *PP_Range* - the range
+//    - pl_rangeIdx - *in* *integer* - the index (offset) within the range
+//
+//  Return Value:
+//    *charstring* - exact parameter value (prefix + range index) from the range
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+///////////////////////////////////////////////////////////
+public function f_PP_getValueFromRange(in PP_Range pl_range, in integer pl_rangeIdx) return charstring {
+  var charstring vl_ret;
+
+  // if this is a real range
+  if(pl_range.rangeMin < pl_range.rangeMax) {
+
+    if(pl_range.rangeMin + pl_rangeIdx <= pl_range.rangeMax) {
+
+      vl_ret := int2str(pl_range.rangeMin + pl_rangeIdx);
+
+      var integer vl_rangeStrLength := lengthof(int2str(pl_range.rangeMax));
+      // prepend with 0s to reach the rangeMax's length
+      while(lengthof(vl_ret) < vl_rangeStrLength) {
+        vl_ret := "0" & vl_ret;
+      }
+
+    } else {
+      log("Index: ", pl_rangeIdx, " is outside the range of: " , pl_range, "; PREPARE TO CRASH!!!");
+      return "";
+    }
+  }
+  // otherwise this is a single value
+  else {
+    return pl_range.prefix;
+  }
+
+  return pl_range.prefix & vl_ret;
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_normalizeParams
+// 
+//  Purpose:
+//    Converts the parameter assignments to a 'normalized' list.
+//    The normalized list contains exactly one PP_SingleParam per parameter type.
+//
+//  Parameters:
+//    - pl_assignmentList - *in* *PP_ParameterAssignmentList* - the assignment list to convert
+//    - pl_normalizedParams - *out* *PP_ParamSet* - the converted parameters.
+//        New parameters are appended to the end of the list.
+//
+//  Return Value:
+//    -
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+//  Conversion algorithm:
+//
+//  Go through the pl_assignmentList
+//    Go through type fields of each pl_assignmentList
+//      Go through the current pl_normalizedParams
+//        If pl_normalizedParams already contains the type in the pl_assignmentList, then append the
+//          value (ranges) of the current pl_assignmentList to the pl_normalizedParams's found element
+//        Else append a new element to the pl_normalizedParams, and assign the value (ranges) of the
+//          current pl_assignmentList to it
+//    
+///////////////////////////////////////////////////////////
+public function f_PP_normalizeParams(in PP_ParameterAssignmentList pl_assignmentList, out PP_ParamSet pl_normalizedParams) {
+
+  pl_normalizedParams := {};
+
+  var Charstrings vl_paramTypes;
+  var PP_RangeList vl_rangeList;
+  var integer vl_paramIdx;
+
+  var integer vl_sizeof_assignmentList := sizeof(pl_assignmentList);
+  var integer vl_sizeof_paramTypes := 0;
+
+  for(var integer i := 0; i < vl_sizeof_assignmentList; i := i + 1) {
+
+    vl_paramTypes := f_my_splitString(pl_assignmentList[i].typeField, ",", true);
+    vl_sizeof_paramTypes := sizeof(vl_paramTypes);
+
+    // go through the existing unwrappedParams, and check if we already have this type
+    for(var integer j := 0; j < vl_sizeof_paramTypes; j := j + 1) {
+
+      vl_paramIdx := -1;
+
+      for(var integer k := 0; (k < sizeof(pl_normalizedParams)) and (vl_paramIdx == -1); k := k + 1) {
+
+        if(pl_normalizedParams[k].types[0] == f_stripWhitespaces(vl_paramTypes[j])) {
+
+          vl_paramIdx := k;
+
+        }
+
+      }
+
+      // allocate new unwrappedParam if needed
+      if(vl_paramIdx == -1) {
+        vl_paramIdx := sizeof(pl_normalizedParams);
+        pl_normalizedParams[vl_paramIdx] := { { f_stripWhitespaces(vl_paramTypes[j]) }, {} };
+      }
+
+      f_PP_convertToRangeList(pl_assignmentList[i].valueField, vl_rangeList);
+
+      pl_normalizedParams[vl_paramIdx].types := { f_stripWhitespaces(vl_paramTypes[j]) }
+      pl_normalizedParams[vl_paramIdx].values := pl_normalizedParams[vl_paramIdx].values & vl_rangeList;
+
+    }
+  }
+
+}
+
+///////////////////////////////////////////////////////////
+//  Function: f_PP_convertToRangeList
+// 
+//  Purpose:
+//    Converts a string to a PP_RangeList.
+//    The first parameter is a string, which contains value(s) of parameter(s).
+//
+//  Parameters:
+//    - pl_rangeListStr - *in* *charstring* - the string to convert
+//    - pl_rangeList - *out* *PP_RangeList* - the converted RangeList
+//
+//  Return Value:
+//    -
+//
+//  Errors & assertions:
+//    - 
+//
+//  Detailed Comments:
+//
+//  Conversion algorithm:
+//    The string is split by commas, to determine a list of values
+//    Each comma separated element is split by dashes, to determine ranges
+//    If there was no dash, then add the element as simple value (prefix only) to the ranges
+//    If there was 1 dash, then
+//      Extract the prefix (common characters) from the range begin and range end
+//      If the range begin and range end are integer, then
+//        Swap them, if the range begin is bigger than range end
+//        Add the element as a range (prefix, rangeMin and rangeMax) to the ranges
+//    If there were more dashes (like in 2013-05-28), then add the element (prefix only) as simple value to the ranges
+//
+///////////////////////////////////////////////////////////
+private function f_PP_convertToRangeList(in charstring pl_rangeListStr, out PP_RangeList pl_rangeList) {
+
+  pl_rangeList := {};
+
+  var Charstrings vl_commaSeparated := f_my_splitString(pl_rangeListStr,",", true);
+  var Charstrings vl_dashSeparated := {};
+  var charstring vl_rangeLimit;
+
+  var integer vl_sizeof_commaSeparated := sizeof(vl_commaSeparated);
+  var integer vl_sizeof_dashSeparated;
+  for(var integer vl_i := 0; vl_i < vl_sizeof_commaSeparated; vl_i := vl_i + 1) {
+
+    vl_dashSeparated := f_my_splitString(vl_commaSeparated[vl_i],"-", true);
+    vl_sizeof_dashSeparated := sizeof(vl_dashSeparated);
+    for(var integer vl_j := 0; vl_j < vl_sizeof_dashSeparated; vl_j := vl_j + 1) {
+      vl_dashSeparated[vl_j] := f_stripWhitespaces(vl_dashSeparated[vl_j]);
+    }
+
+    select (sizeof(vl_dashSeparated)) {
+
+      case (1) {
+        pl_rangeList[sizeof(pl_rangeList)] := { vl_dashSeparated[0], 0, 0 };
+      }
+      case (2) {
+
+        var integer vl_newValueIdx := sizeof(pl_rangeList);
+        pl_rangeList[vl_newValueIdx].prefix := "";
+
+        // calculate the prefix, and store it
+        var integer vl_prefixIdx := 0;
+        var integer vl_lengthof_dashSeparated0 := lengthof(vl_dashSeparated[0]);
+        var integer vl_lengthof_dashSeparated1 := lengthof(vl_dashSeparated[1]);
+        while((vl_prefixIdx < vl_lengthof_dashSeparated0) and (vl_prefixIdx < vl_lengthof_dashSeparated1) and
+          (vl_dashSeparated[0][vl_prefixIdx] == vl_dashSeparated[1][vl_prefixIdx])) {
+          pl_rangeList[vl_newValueIdx].prefix := pl_rangeList[vl_newValueIdx].prefix & vl_dashSeparated[0][vl_prefixIdx];
+          vl_prefixIdx := vl_prefixIdx + 1;
+        }
+
+        pl_rangeList[vl_newValueIdx].prefix := f_stripWhitespaces(pl_rangeList[vl_newValueIdx].prefix);
+        vl_rangeLimit := f_stripWhitespaces(substr(vl_dashSeparated[0], vl_prefixIdx, lengthof(vl_dashSeparated[0]) - vl_prefixIdx));
+        if(f_isInteger(vl_rangeLimit)) {
+          pl_rangeList[vl_newValueIdx].rangeMin := f_str2int(vl_rangeLimit);
+        }
+        vl_rangeLimit := f_stripWhitespaces(substr(vl_dashSeparated[1], vl_prefixIdx, lengthof(vl_dashSeparated[1]) - vl_prefixIdx));
+        if(f_isInteger(vl_rangeLimit)) {
+          pl_rangeList[vl_newValueIdx].rangeMax := f_str2int(vl_rangeLimit);
+        }
+
+        if((pl_rangeList[vl_newValueIdx].rangeMin == -1) or (pl_rangeList[vl_newValueIdx].rangeMax == -1)) {
+          log("error: ranges do not end in numbers");
+        }
+
+
+        // replace rangeMin and rangeMax if user set the max lower than min
+        if(pl_rangeList[vl_newValueIdx].rangeMax < pl_rangeList[vl_newValueIdx].rangeMin) {
+          var integer vl_temp := pl_rangeList[vl_newValueIdx].rangeMin;
+          pl_rangeList[vl_newValueIdx].rangeMin := pl_rangeList[vl_newValueIdx].rangeMax;
+          pl_rangeList[vl_newValueIdx].rangeMax := vl_temp;
+        }
+      }
+      case else {
+
+        // consider it as single value
+        vl_commaSeparated[vl_i] := f_stripWhitespaces(vl_commaSeparated[vl_i]);
+        pl_rangeList[sizeof(pl_rangeList)] := { vl_commaSeparated[vl_i], 0, 0 };
+      }
+    }
+  }
+
+}
+
+//////////////////////////////////////////////////////////////////////////////
+//  Function: f_PP_getParamValueFromSet()
+// 
+//  Purpose:
+//    Function to return parameter value if parameter types matches one of the given types
+// 
+//  Parameters:
+//    pl_paramSet - *in* *PP_ParamSet* - ParamSet to examine
+//    pl_typeList - *in* *PP_StringList* - typeList to search in the pl_paramSet
+//
+//  Return Value:
+//    *PP_StringList* - empty list, if none of the types are found in the pl_paramSet
+// 
+//  Errors:
+//    -
+// 
+//  Detailed Comments:
+//    
+///////////////////////////////////////////////////////////////////////////////
+public function f_PP_getParamValueFromSet(
+  in PP_ParamSet pl_paramSet,
+  in Charstrings pl_typeList
+) return Charstrings {
+  var Charstrings vl_ret := {};
+  var integer vl_i, vl_j;
+
+  var integer vl_sizeof_paramSet := sizeof(pl_paramSet);
+  var integer vl_sizeof_typeList := sizeof(pl_typeList);
+  for (vl_i := 0; vl_i < vl_sizeof_paramSet; vl_i := vl_i + 1) {
+    for (vl_j := 0; vl_j < vl_sizeof_typeList; vl_j := vl_j + 1) {
+
+      // assert there is only one type here!
+      if(pl_paramSet[vl_i].types[0] == pl_typeList[vl_j]) {
+        // assert there is only one value here!
+        vl_ret[sizeof(vl_ret)] := pl_paramSet[vl_i].values[0].prefix;
+        vl_j := sizeof(pl_typeList);
+      }
+
+    }
+  }
+  return vl_ret;
+}
+
+} with { extension "version R22B"}
diff --git a/src/TCCRegexp.cc b/src/TCCRegexp.cc
new file mode 100644
index 0000000..80ab032
--- /dev/null
+++ b/src/TCCRegexp.cc
@@ -0,0 +1,92 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCRegexp_Functions.ttcn
+//  Description:        TCC Useful Functions: Regexp Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2009-11-20
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCRegexp_Functions.hh"
+#include <pcre.h>
+
+namespace TCCRegexp__Functions{
+  CHARSTRING f__pcre__regexp(const CHARSTRING& instr,
+          const CHARSTRING& expression, const INTEGER& groupno ){
+    
+    pcre *re;
+    const char *error_text;
+    int erroroffset;
+    re = pcre_compile(expression,0,&error_text,&erroroffset,NULL);
+    if(re == NULL){
+      TTCN_error("Compilation of the pcre regexp failled at position %d."
+                 "Reason: \"%s\"",erroroffset,error_text);
+      return "";
+    }
+    int rc;
+    int max_groupno;
+    
+    rc=pcre_fullinfo(re,NULL,PCRE_INFO_CAPTURECOUNT,&max_groupno);
+    if(rc!=0){
+      TTCN_error("pcre_fullinfo failed. Error code: %d",rc);
+    }
+    max_groupno=(max_groupno+1)*3;
+    int *ovector = (int*)Malloc(max_groupno*sizeof(int));
+    rc = pcre_exec(re,NULL,instr,instr.lengthof(),0,0,ovector,max_groupno);
+    
+    CHARSTRING ret_val;
+    if(rc<=groupno){ ret_val="";}
+    else if( ovector[groupno*2] == -1 ) { ret_val="";}
+    else {
+      ret_val=substr(instr, ovector[groupno*2], ovector[(groupno*2)+1]- ovector[groupno*2]);
+    }
+    Free(ovector);
+    return ret_val;
+  }
+
+  charstring__list f__pcre__regexp__list(const CHARSTRING& instr,
+          const CHARSTRING& expression){
+    
+    pcre *re;
+    const char *error_text;
+    int erroroffset;
+    re = pcre_compile(expression,0,&error_text,&erroroffset,NULL);
+    if(re == NULL){
+      TTCN_error("Compilation of the pcre regexp failled at position %d."
+                 "Reason: \"%s\"",erroroffset,error_text);
+      return NULL_VALUE;
+    }
+    int rc;
+    int max_groupno;
+    
+    rc=pcre_fullinfo(re,NULL,PCRE_INFO_CAPTURECOUNT,&max_groupno);
+    if(rc!=0){
+      TTCN_error("pcre_fullinfo failed. Error code: %d",rc);
+    }
+    int ovecsivze=(max_groupno+1)*3;
+    int *ovector = (int*)Malloc(ovecsivze*sizeof(int));
+    rc = pcre_exec(re,NULL,instr,instr.lengthof(),0,0,ovector,ovecsivze);
+    
+    charstring__list ret_val;
+    for(int a=0;a<=max_groupno;a++){
+      if(rc<=a){ ret_val[a]="";}
+      else if( ovector[a*2] == -1 ) { ret_val[a]="";}
+      else {
+        ret_val[a]=substr(instr, ovector[a*2], ovector[(a*2)+1]- ovector[a*2]);
+      }
+    }
+    Free(ovector);
+    return ret_val;
+  }
+
+}
diff --git a/src/TCCRegexp_Functions.ttcn b/src/TCCRegexp_Functions.ttcn
new file mode 100644
index 0000000..f47c1aa
--- /dev/null
+++ b/src/TCCRegexp_Functions.ttcn
@@ -0,0 +1,107 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCRegexp_Functions.ttcn
+//  Description:        TCC Useful Functions: Regexp Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2009-11-20
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: Regexp_Functions
+// 
+//  Purpose:
+//    This module provides a non TTCN regular expression handling
+//    functions
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+// 
+//  Current Owner:
+//    -
+// 
+//  Last Review Date:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+module TCCRegexp_Functions{
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_pcre_regexp
+// 
+//  Purpose:
+//    Evaulate a Perl compatible regular expression
+// 
+//  Parameters:
+//      instr - *in* *charstring* -   string to be matched
+//      expression - *in* *charstring* -  the pattern
+//      groupno - *in* *inteher* - the number of the group to return
+//
+//  Return Value:
+//    charstring - the matched substring
+// 
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    This function returns the substring of the input character string instr,
+//    which is the content of n-th group matching to the expression.  
+//    The expression is a Perl compatible regular expression pattern. 
+//    The number of the group to be returned is specified by groupno, which 
+//    shall be a positive integer or zero. Group numbers are assigned by the 
+//    order of occurrences of the opening bracket of a group and counted 
+//    starting from 1 by step 1. If the groupno is zero, a substring macthed 
+//    by the entire pattern is returned. If no substring fulfilling all 
+//    conditions (i.e. pattern and group number) is found within the input 
+//    string, an empty string is returned.
+// 
+///////////////////////////////////////////////////////////////////////////////
+  external function f_pcre_regexp(in charstring instr, in charstring expression,
+                                  in integer groupno) return charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_pcre_regexp
+// 
+//  Purpose:
+//    Evaulate a Perl compatible regular expression
+// 
+//  Parameters:
+//      instr - *in* *charstring* -   string to be matched
+//      expression - *in* *charstring* -  the pattern
+//
+//  Return Value:
+//    record of charstring - the matched substrings
+// 
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    This function returns the list of the substring of the input character 
+//    string instr, which is the content of n-th group matching to the expression.  
+//    The expression is a Perl compatible regular expression pattern. 
+//    Group numbers are assigned by the 
+//    order of occurrences of the opening bracket of a group and counted 
+//    starting from 1 by step 1. If no substring fulfilling all 
+//    conditions is found within the input 
+//    string, an empty record of is returned.
+// 
+///////////////////////////////////////////////////////////////////////////////
+  type record of charstring charstring_list 
+
+  external function f_pcre_regexp_list(in charstring instr, 
+                               in charstring expression) return charstring_list;
+
+}
diff --git a/src/TCCSystem.cc b/src/TCCSystem.cc
new file mode 100644
index 0000000..adfd719
--- /dev/null
+++ b/src/TCCSystem.cc
@@ -0,0 +1,47 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCSystem.cc
+//  Description:        TCC Useful Functions: System Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2009-04-10
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+#include "TCCSystem_Functions.hh"
+#include <unistd.h>
+
+namespace TCCSystem__Functions{
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_SYS_getpid
+// 
+//  Purpose:
+//    Returns the pid of the process
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    integer - pid
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+INTEGER f__SYS__getpid(){
+  return getpid();
+}
+
+}
diff --git a/src/TCCSystem_Functions.ttcn b/src/TCCSystem_Functions.ttcn
new file mode 100644
index 0000000..64bf2be
--- /dev/null
+++ b/src/TCCSystem_Functions.ttcn
@@ -0,0 +1,41 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCSystem_Functions.ttcn
+//  Description:        TCC Useful Functions: System Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2009-04-10
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+module TCCSystem_Functions{
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_SYS_getpid
+// 
+//  Purpose:
+//    Returns the pid of the process
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    integer - pid
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+  external function f_SYS_getpid() return integer
+}
diff --git a/src/TCCTemplate_Functions.ttcn b/src/TCCTemplate_Functions.ttcn
new file mode 100644
index 0000000..f2e9c2b
--- /dev/null
+++ b/src/TCCTemplate_Functions.ttcn
@@ -0,0 +1,251 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCTemplate_Functions.ttcn
+//  Description:        TCC Useful Functions: Template Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-12-20
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCTemplate_Functions
+// 
+//  Purpose:
+//    This module supports template handling
+//    Originally for TitanSIM R2 needs it for substituting substrings in a 
+//    charstring template.
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+// 
+//  Current Owner:
+//    Zsolt Szalai (EZSOSZA)
+// 
+//  Last Review Date:
+//    -
+// 
+//  Comments:
+//     Intruduction of ? regexp like behavior like \(x)? in our own pattern
+//     couses many troubles, like with the current templatefunc signature it 
+//     can be impossible to determine the parameters(using 2 ? pattern) and 
+//     lookup may need much more and complicated additions or rewrite that 
+//     we may want at that time;
+//
+///////////////////////////////////////////////////////////////////////////////
+module TCCTemplate_Functions {
+  
+//  import from TCCConversion_Functions all;
+  import from TCCFileIO_Functions all;
+
+  modulepar{
+    charstring TCCTemplate_opentoken := "$(";
+    charstring TCCTemplate_closetoken := ")";
+  }
+  
+  type function templatefunc(in charstringList pl_params) runs on self return charstring;
+
+  type record TCCSubstitution {
+    charstring patt,
+    charstring string,
+    templatefunc func optional
+    }
+
+  type record of TCCSubstitution TCCSubstitutionList;
+  
+  type record of charstring charstringList;
+
+
+  group PublicFunctions{
+
+    ///////////////////////////////////////////////////////////////////////////////
+    //  Function: f_Template_substitutetemplate
+    // 
+    //  Purpose:
+    //    Makes the substitutions according to the dictonary given
+    //
+    //  Parameters:
+    //    pl_dict - *in* *TCCSubstitutionList* - dictionary
+    //    pl_string - *in* *charstring* - string to substitute in 
+    // 
+    //  Return Value:
+    //    charstring - substituted string
+    //
+    //  Errors:
+    //    - 
+    // 
+    //  Detailed description:
+    //    -
+    // 
+    ///////////////////////////////////////////////////////////////////////////////
+    function f_Template_substitutetemplate(in TCCSubstitutionList pl_dict, in charstring pl_string) return charstring{
+      var charstring ret := pl_string;
+      //log("original template:",ret,"\n");
+      // heuristic implementation
+      /////////////////////////////////////////////////////////////////////////
+      // searches for every pattern
+      /*    for (var integer i := 0; i<sizeof(pl_dict); i:=i+1){
+	    if (ispresent(pl_dict[i].func)){
+	    var charstring matched := regexp(ret, "*(" & pl_dict[i].patt & ")*",0);//f_Template_searchpattern(ret, pl_dict[i].patt);
+	    if (matched != ""){
+	    ret := f_Template_substituteall(ret, matched, pl_dict[i].func.apply(matched, pl_dict[i].patt));
+	    }
+	    } else {
+	    ret := f_Template_substituteall(ret, pl_dict[i].patt, pl_dict[i].string);
+	    }
+	    }
+	    return ret;*/
+      //heuristic implementation end/////////////////////////////////////////////
+    
+      var charstring t_open := TCCTemplate_opentoken;
+      var charstring t_close := TCCTemplate_closetoken;
+
+
+      // fast implentation
+      //////////////////////////////////////////////////////////////////////////
+      for (var integer i:=0; i<lengthof(ret);i:=i+1){
+	if (ret[i] == t_open[0]) { // maybe its a variable in template?
+	  if (substr(ret,i,lengthof(t_open)) == t_open){ // it is a variable opening string
+	    var integer tokenstart := i;
+	    //	  log("tokenstart:",tokenstart,"\n");
+	    i := i + lengthof(t_open);
+	    while(ret[i] != t_close[0] and i<lengthof(ret)){ i:=i+1; }
+	    if (i<lengthof(ret)){
+	      if (substr(ret,i,lengthof(t_close)) == t_close){
+		i := i + lengthof(t_close);
+		var charstring variable := substr(ret, tokenstart, i - tokenstart);
+		//log("Variable found: ", variable,"\n");
+		var charstringList params := {};
+		var integer recindex := f_Template_lookup(pl_dict, variable, params);
+		if (recindex != -1){
+		  // substitution
+		  var charstring pvalue := "";
+		  if(ispresent(pl_dict[recindex].func)){
+		    pvalue := pl_dict[recindex].func.apply(params);
+		  } else{
+		    pvalue := pl_dict[recindex].string;
+		  }
+		  ret := substr(ret,0,tokenstart) & pvalue & substr(ret, i, lengthof(ret)-i);
+		  //log("New template: ", ret, "\n");
+		  i := tokenstart;
+		} else {
+		  i := tokenstart;
+		}
+	      }
+	    } else {
+	      log("No closing string in a variable!\n");
+	    }
+	  } // not a variable opening string, nothing to do
+	} // not a variable in template, nothing to do
+      }
+      return ret;
+      // fast implentation end /////////////////////////////////////////////////
+    }
+
+    ///////////////////////////////////////////////////////////////////////////////
+    //  Function: f_Template_subsfiletemplate
+    // 
+    //  Purpose:
+    //    Makes the substitutions in the content of the given file, 
+    //    according to the dictonary
+    //
+    //  Parameters:
+    //    pl_dict - *in* *TCCSubstitutionList* - dictionary
+    //    pl_file - *in* *charstring* - name of the file containing the template
+    // 
+    //  Return Value:
+    //    charstring - substituted string
+    //
+    //  Errors:
+    //    From FIO - in this case "" returns
+    // 
+    //  Detailed description:
+    //    -
+    // 
+    ///////////////////////////////////////////////////////////////////////////////  
+    function f_Template_subsfiletemplate(in TCCSubstitutionList pl_dict, in charstring pl_file) return charstring{
+      var integer fd := f_FIO_open_rdonly(pl_file);
+      if (fd == -1){
+	return "";
+      }
+      var integer len := f_FIO_seek_end(fd);
+      var charstring content;
+      if (f_FIO_seek_home(fd) != 0){
+	return ""
+      }
+      if (f_FIO_read_text(fd, content, len) == -1){
+	if (f_FIO_close(fd) == -1){log("Error while closing file!");}
+	return "";
+      }
+      if (f_FIO_close(fd) == -1){log("Error while closing file!");} 
+      return f_Template_substitutetemplate(pl_dict, content);
+    }
+
+  }
+
+
+  group PrivateFunctions{
+
+    function f_Template_getparams(in charstring matched, in charstring patt) 
+    return charstringList
+    {
+      var integer pc := 0;
+      var charstringList params:={};
+      for (var integer i:=0;i<lengthof(patt);i:=i+1){
+	if (patt[i]=="(" and i!=0 and patt[i-1]!="#" and patt[i-1]!="\\"){pc:=pc+1;}
+      }
+      for (var integer i:=0;i<pc;i:=i+1){ 
+	params[sizeof(params)] := regexp(matched, patt, i); 
+      } 
+      return params;
+    }
+
+    function f_Template_lookup(in TCCSubstitutionList pl_dict, in charstring pl_var, 
+			       out charstringList pl_params) return integer{
+      pl_params:={};
+      for (var integer i:=0; i<sizeof(pl_dict);i:=i+1){ // simple search
+	if(pl_dict[i].patt == pl_var){
+	  return i;
+	}
+      }
+      for (var integer i:=0; i<sizeof(pl_dict);i:=i+1){ // regexp like search
+	var integer j := 0;
+	var integer k := 0;
+	while (j<lengthof(pl_dict[i].patt) and k<lengthof(pl_var)){
+	  while(j<lengthof(pl_dict[i].patt) and k<lengthof(pl_var) and pl_dict[i].patt[j] == pl_var[k]){
+	    j := j + 1;
+	    k := k + 1; 
+	  }
+	  if (j<lengthof(pl_dict[i].patt) and pl_dict[i].patt[j]=="\\" and j+1<lengthof(pl_dict[i].patt) and pl_dict[i].patt[j+1]=="w" and j+2<lengthof(pl_dict[i].patt)){ 
+	    // we have found an escape, parameter begins
+	    j := j + 2;
+	    var integer paramstart := k;
+	    while (k<lengthof(pl_var) and pl_var[k] != pl_dict[i].patt[j]) {k := k + 1;}
+            var charstring parameter := substr(pl_var,paramstart, k - paramstart);
+	    pl_params[sizeof(pl_params)] := parameter;
+	  } else {
+	    if (j==lengthof(pl_dict[i].patt) and k==lengthof(pl_var)){
+	      return i;
+	    } else {
+	      // that is not the proper pattern;
+	      j := lengthof(pl_dict[i].patt);
+	    }
+	  }
+	}
+      }
+      return -1;
+    } 
+  } 
+}
diff --git a/src/TCCTitanMetadata.cc b/src/TCCTitanMetadata.cc
new file mode 100644
index 0000000..e9d4a21
--- /dev/null
+++ b/src/TCCTitanMetadata.cc
@@ -0,0 +1,50 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCTitanMetadata.cc
+//  Description:        TCC Useful Functions: TitanMetadata Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-10-26
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include "TCCTitanMetadata_Functions.hh"
+
+namespace TCCTitanMetadata__Functions {
+
+static CHARSTRING compilationtime = __DATE__" " __TIME__;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f__compilationTime
+// 
+//  Purpose:
+//    Return the compilation time of module
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    charstring - compilation time
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+CHARSTRING f__compilationTime()
+{
+  return compilationtime;
+}
+
+} // end of namespace
diff --git a/src/TCCTitanMetadata_Functions.ttcn b/src/TCCTitanMetadata_Functions.ttcn
new file mode 100644
index 0000000..99038f5
--- /dev/null
+++ b/src/TCCTitanMetadata_Functions.ttcn
@@ -0,0 +1,62 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCTitanMetadata_Functions.ttcn
+//  Description:        TCC Useful Functions: TitanMetadata Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2007-10-26
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCTitanMetadata_Functions
+// 
+//  Purpose:
+//    This module support handling of Titan related metadata
+// 
+//  Module Parameters:
+//      - 
+// 
+//  Module depends on:
+//    -
+// 
+//  Current Owner:
+//    Akos Pernek (EAKOPER)
+// 
+//  Last Review Date:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+module TCCTitanMetadata_Functions {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: f_compilationTime
+// 
+//  Purpose:
+//    Return the compilation time of module
+//
+//  Parameters:
+//    -
+// 
+//  Return Value:
+//    charstring - compilation time
+//
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function f_compilationTime() return charstring;  
+
+}
diff --git a/src/TCCUsefulFunctions_Library.grp b/src/TCCUsefulFunctions_Library.grp
new file mode 100644
index 0000000..caec779
--- /dev/null
+++ b/src/TCCUsefulFunctions_Library.grp
@@ -0,0 +1,63 @@
+<!--
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:        TCCUsefulFunctions_Library.grp
+//  Description: FileGroup file for TCCUsefulFunctions ApplicationLibrary
+//  Rev:         R22B
+//  Prodnr:      CNL 113 472
+//  Updated:     2012-03-26
+//  Contact:     http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+-->
+<!DOCTYPE TITAN_GUI_FileGroup_file>
+<File_Group name="TCCUsefulFunctions_Library" >
+    <File path="TCCAssertion.cc" />
+    <File path="TCCAssertion_Functions.ttcn" />
+    <File path="TCCConversion.cc" />
+    <File path="TCCConversion_Functions.ttcn" />
+    <File path="TCCDateTime.cc" />
+    <File path="TCCDateTime_Functions.ttcn" />
+    <File path="TCCEncoding.cc" />
+    <File path="TCCEncoding_Functions.ttcn" />
+    <File path="TCCEnv.cc" />
+    <File path="TCCEnv_Functions.ttcn" />
+    <File path="TCCFileIO.cc" />
+    <File path="TCCFileIO_Functions.ttcn" />
+    <File path="TCCFileSystem.cc" />
+    <File path="TCCFileSystem_Functions.ttcn" />
+    <File path="TCCIPsec.cc" />
+    <File path="TCCIPsec_Definitions.ttcn" />
+    <File path="TCCIPsec_Functions.ttcn" />
+    <File path="TCCInterface.cc" />
+    <File path="TCCInterface_Functions.ttcn" />
+    <File path="TCCInterface_ip.h" />
+    <File path="TCCMaths.cc" />
+    <File path="TCCMaths_Functions.ttcn" />
+    <File path="TCCMaths_GenericTypes.ttcn" />
+    <File path="TCCMessageHandling.cc" />
+    <File path="TCCMessageHandling_Functions.ttcn" />
+    <File path="TCCSecurity.cc" />
+    <File path="TCCSecurity_Functions.ttcn" />
+    <File path="TCCSystem.cc" />
+    <File path="TCCSystem_Functions.ttcn" />
+    <File path="TCCTemplate_Functions.ttcn" />
+    <File path="TCCTitanMetadata.cc" />
+    <File path="TCCTitanMetadata_Functions.ttcn" />
+    <File path="aka_algorythm_set.c" />
+    <File path="aka_algorythm_set.h" />
+    <File path="digcalc.c" />
+    <File path="digcalc.h" />
+    <File path="zuc.c" />
+    <File path="zuc.h" />
+    <File path="snow3g.c" />
+    <File path="snow3g.h" />
+</File_Group>
diff --git a/src/TCCUsefulFunctions_PermutatedParameters.grp b/src/TCCUsefulFunctions_PermutatedParameters.grp
new file mode 100644
index 0000000..918c7b4
--- /dev/null
+++ b/src/TCCUsefulFunctions_PermutatedParameters.grp
@@ -0,0 +1,25 @@
+<!--
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:        TCCUsefulFunctions_PermutatedParameters.grp
+//  Description: FileGroup file for TCCUsefulFunctions Permutated Parameters
+//  Rev:         R22B
+//  Prodnr:      CNL 113 472
+//  Updated:     2013-05-30
+//  Contact:     http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+-->
+<!DOCTYPE TITAN_GUI_FileGroup_file>
+<File_Group name="TCCUsefulFunctions_PermutatedParameters" >
+    <File path="TCCPermutatedParameters_Definitions.ttcn" />
+    <File path="TCCPermutatedParameters_Functions.ttcn" />
+</File_Group>
diff --git a/src/TCCXPathSupport.cc b/src/TCCXPathSupport.cc
new file mode 100644
index 0000000..a8772de
--- /dev/null
+++ b/src/TCCXPathSupport.cc
@@ -0,0 +1,124 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCXPathSupport_Functions.ttcn
+//  Description:        TCC Useful Functions: XPath Support Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2008-08-26
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+#include <string.h>
+
+#include "tinyxml.h"
+#include "xpath_processor.h"
+
+#include "TCCXPathSupport_Functions.hh"
+
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: XPathQuery
+// 
+//  Purpose:
+//    apply an XPath query on an XML document
+// 
+//  Parameters:
+//    xml_doc: the XML document to be processed. It is modeled by a pure TTCN-3
+//                universal charstring and passed as an input parameter to this 
+//                function
+//
+//    xpath_query: the XPath Query. With this technology we can access a node of
+//                    the XML tree. It is passed to the function as a universal 
+//                    charstring
+//  
+//  Return Value:
+//    universal charstring - result of the query (information about one node of
+//                              the XML tree)
+// 
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+
+namespace TCCXPathSupport__Functions { 
+
+char * extract_string(const UNIVERSAL_CHARSTRING & us)
+{
+  TTCN_Buffer buf;
+  us.encode_utf8(buf);
+  
+  
+  size_t len = buf.get_len();
+  char * return_string = (char*) Malloc(len+1);
+  memcpy(return_string,buf.get_data(),len);
+  return_string[len] = '\0';
+  
+  return return_string;
+}
+
+UNIVERSAL_CHARSTRING XPathQuery(const UNIVERSAL_CHARSTRING& xml__doc, const UNIVERSAL_CHARSTRING& xpath__query)
+{
+  
+	char* xml_document = extract_string( xml__doc );
+  char* xpath_query  = extract_string( xpath__query );
+  
+      
+  TiXmlDocument * XDp_doc  = new TiXmlDocument();
+  
+  XDp_doc->Parse( xml_document );
+	  
+  TiXmlElement  * XEp_root = XDp_doc->RootElement();
+  
+  
+  
+  TinyXPath::xpath_processor *proc = new TinyXPath::xpath_processor( XEp_root, xpath_query );
+      
+  TIXML_STRING res = proc->S_compute_xpath(); 
+  
+	
+  
+  delete XDp_doc;
+  delete proc;
+  Free(xml_document);
+  Free(xpath_query);
+
+  
+  UNIVERSAL_CHARSTRING result;
+  result.decode_utf8(res.size(),(const unsigned char*)res.c_str());
+  return result;
+
+}
+
+BOOLEAN XPathCheckXML(const UNIVERSAL_CHARSTRING& xml__doc, CHARSTRING& error__string){
+	char* xml_document = extract_string( xml__doc );
+  TiXmlDocument * XDp_doc  = new TiXmlDocument();
+  
+  XDp_doc->Parse( xml_document );
+
+  bool ret_val= ! XDp_doc->Error();
+  if(ret_val){ // no error
+    error__string="OK";
+  } else { // error
+    char * e_str=mprintf("Error at line: %d, pos: %d, description: %s",XDp_doc->ErrorRow(),XDp_doc->ErrorCol(),XDp_doc->ErrorDesc());
+    error__string=e_str;
+    Free(e_str);
+  }
+  delete XDp_doc;
+  Free(xml_document);
+  return ret_val;
+}
+
+
+}
diff --git a/src/TCCXPathSupport_Functions.ttcn b/src/TCCXPathSupport_Functions.ttcn
new file mode 100644
index 0000000..192d4f5
--- /dev/null
+++ b/src/TCCXPathSupport_Functions.ttcn
@@ -0,0 +1,103 @@
+/******************************************************************************
+* Copyright (c) 2004, 2015  Ericsson AB
+* All rights reserved. This program and the accompanying materials
+* are made available under the terms of the Eclipse Public License v1.0
+* which accompanies this distribution, and is available at
+* http://www.eclipse.org/legal/epl-v10.html
+
+******************************************************************************/
+///////////////////////////////////////////////////////////////////////////////
+//
+//  File:               TCCXPathSupport_Functions.ttcn
+//  Description:        TCC Useful Functions: XPath Support Functions
+//  Rev:                R22B
+//  Prodnr:             CNL 113 472
+//  Updated:            2008-08-26
+//  Contact:            http://ttcn.ericsson.se
+//
+///////////////////////////////////////////////////////////////////////////////
+
+///////////////////////////////////////////////////////////////////////////////
+//  Module: TCCXPathSupport_Functions
+// 
+//  Purpose:
+//    This module makes it possible to handle XML data throughout processing the
+//    XML data structure (tree) with in the way of handling XPath queries.
+// 
+//  Module Parameters:
+//    - 
+// 
+//  Module depends on:
+//    -
+// 
+//  Current Owner:
+//    Marton Godar (EMRTGOD)
+// 
+//  Last Review Date:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+module TCCXPathSupport_Functions {
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: XPathQuery
+// 
+//  Purpose:
+//    apply an XPath query on an XML document
+// 
+//  Parameters:
+//    xml_doc: the XML document to be processed. It is modeled by a pure TTCN-3
+//                universal charstring and passed as an input parameter to this 
+//                function
+//
+//    xpath_query: the XPath Query. With this technology we can access a node of
+//                    the XML tree. It is passed to the function as a universal 
+//                    charstring
+//  
+//  Return Value:
+//    universal charstring - result of the query (information about one node of
+//                              the XML tree)
+// 
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function XPathQuery ( 
+  in universal charstring xml_doc, 
+  in universal charstring xpath_query ) 
+return universal charstring;
+
+///////////////////////////////////////////////////////////////////////////////
+//  Function: XPathCheckXML
+// 
+//  Purpose:
+//    check well formatness of the XML document
+// 
+//  Parameters:
+//    xml_doc: the XML document to be processed. It is modeled by a pure TTCN-3
+//                universal charstring and passed as an input parameter to this 
+//                function
+//
+//    error_string: the description of the error
+//  
+//  Return Value:
+//    boolean - result of check, true - if the documenbt is OK
+//                               false - soemthing is wrong// 
+//  Errors:
+//    - 
+// 
+//  Detailed description:
+//    -
+// 
+///////////////////////////////////////////////////////////////////////////////
+external function XPathCheckXML ( 
+  in universal charstring xml_doc, 
+  out charstring error_string ) 
+return boolean;
+
+
+
+}
-- 
GitLab