diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2000-04-28 01:36:06 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2000-04-28 01:36:06 +0000 |
commit | ca2d5b9d9497c613b118bf8882f9273fb244f0e1 (patch) | |
tree | 62b4cebe1082d87803bff51e2280239ed59d7f98 | |
parent | 5cee7dded7f058b6f0914b0f9df42d63f36775a8 (diff) | |
download | ATCD-ca2d5b9d9497c613b118bf8882f9273fb244f0e1.tar.gz |
ChangeLogTag:Thu Apr 27 18:19:40 2000 Ossama Othman <ossama@uci.edu>
-rw-r--r-- | ace/SSL/ACE_SSL.dsp | 166 | ||||
-rw-r--r-- | ace/SSL/SSL_SOCK.i | 16 | ||||
-rw-r--r-- | ace/SSL/SSL_SOCK_Acceptor.cpp | 2 | ||||
-rw-r--r-- | ace/SSL/SSL_SOCK_Acceptor.h | 28 | ||||
-rw-r--r-- | ace/SSL/SSL_SOCK_Acceptor.i | 4 | ||||
-rw-r--r-- | ace/SSL/SSL_SOCK_Stream.cpp | 2 | ||||
-rw-r--r-- | ace/SSL/sslconf.h | 2 | ||||
-rw-r--r-- | examples/IPC_SAP/SSL_SAP/SSL-client.dsp | 70 | ||||
-rw-r--r-- | examples/IPC_SAP/SSL_SAP/SSL-server.dsp | 63 | ||||
-rw-r--r-- | examples/IPC_SAP/SSL_SAP/SSL_SOCK_SAP.dsw | 41 |
10 files changed, 364 insertions, 30 deletions
diff --git a/ace/SSL/ACE_SSL.dsp b/ace/SSL/ACE_SSL.dsp new file mode 100644 index 00000000000..e98752263cc --- /dev/null +++ b/ace/SSL/ACE_SSL.dsp @@ -0,0 +1,166 @@ +# Microsoft Developer Studio Project File - Name="ACE_SSL" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=ACE_SSL - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "ACE_SSL.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "ACE_SSL.mak" CFG="ACE_SSL - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "ACE_SSL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "ACE_SSL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "ACE_SSL - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir ""
+# PROP Intermediate_Dir ""
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACE_SSL_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\OpenSSL\openssl-0.9.5\inc32" /D "NDEBUG" /D "_WINDOWS" /D "WIN32" /D "ACE_HAS_SSL" /D "ACE_SSL_HAS_DLL" /YX /FD /c
+# SUBTRACT CPP /X
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 ACE_SSL.lib ace.lib libeay32.lib ssleay32.lib /nologo /dll /pdb:none /machine:I386 /libpath:"..\..\ACE_wrappers\ace" /libpath:"..\..\ACE_wrappers\TAO\tao" /libpath:"..\..\OpenSSL\openssl-0.9.5\out32dll"
+
+!ELSEIF "$(CFG)" == "ACE_SSL - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir ""
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ACE_SSL_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /Gy /I "..\..\ACE_wrappers" /I "..\..\OpenSSL\openssl-0.9.5\inc32" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "ACE_HAS_SSL" /D "ACE_SSL_BUILD_DLL" /YX /FD /GZ /c
+# SUBTRACT CPP /Fr
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 aced.lib libeay32.lib ssleay32.lib /nologo /dll /debug /machine:I386 /out:"ACE_SSLd.dll" /libpath:"..\..\ACE_wrappers\ace" /libpath:"..\..\ACE_wrappers\TAO\tao" /libpath:"..\..\OpenSSL\openssl-0.9.5\out32dll"
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF
+
+# Begin Target
+
+# Name "ACE_SSL - Win32 Release"
+# Name "ACE_SSL - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\SSL_Context.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK_Acceptor.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK_Connector.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK_Stream.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\SSL_Context.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK_Acceptor.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK_Connector.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK_Stream.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\sslconf.h
+# End Source File
+# End Group
+# Begin Group "Inline Files"
+
+# PROP Default_Filter "i"
+# Begin Source File
+
+SOURCE=.\SSL_Context.i
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK_Acceptor.i
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK_Connector.i
+# End Source File
+# Begin Source File
+
+SOURCE=.\SSL_SOCK_Stream.i
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/ace/SSL/SSL_SOCK.i b/ace/SSL/SSL_SOCK.i index d4cf07e4c9b..dc21bfbdba1 100644 --- a/ace/SSL/SSL_SOCK.i +++ b/ace/SSL/SSL_SOCK.i @@ -27,18 +27,18 @@ ACE_SSL_SOCK::set_option (int level, void *optval, int optlen) const { - switch (option) - { +// switch (option) +// { // case SO_SNDBUF: // return ::BIO_set_write_buffer_size (this->io_bio_, *((int *) optval)); // case SO_RCVCBUF: // return ::BIO_set_read_buffer_size (this->io_bio_, *((int *) optval)); - default: +// default: return ACE_OS::setsockopt (this->get_handle (), level, option, (char *) optval, optlen); - } +// } } // Provides access to the ACE_OS::getsockopt system call. @@ -49,16 +49,16 @@ ACE_SSL_SOCK::get_option (int level, void *optval, int *optlen) const { - switch (option) - { +// switch (option) +// { // case SO_SNDBUF: // return ::BIO_get_write_buffer_size (this->io_bio_, *((int *) optval)); // case SO_RCVCBUF: // return ::BIO_get_read_buffer_size (this->io_bio_, *((int *) optval)); - default: +// default: return ACE_OS::getsockopt (this->get_handle (), level, option, (char *) optval, optlen); - } +// } } diff --git a/ace/SSL/SSL_SOCK_Acceptor.cpp b/ace/SSL/SSL_SOCK_Acceptor.cpp index c64653eafc0..3d87e859930 100644 --- a/ace/SSL/SSL_SOCK_Acceptor.cpp +++ b/ace/SSL/SSL_SOCK_Acceptor.cpp @@ -2,8 +2,6 @@ // $Id$ // -#define ACE_BUILD_DLL - #include "SSL_SOCK_Acceptor.h" #if defined (ACE_HAS_SSL) diff --git a/ace/SSL/SSL_SOCK_Acceptor.h b/ace/SSL/SSL_SOCK_Acceptor.h index 6a17c8186b1..96ffa60038a 100644 --- a/ace/SSL/SSL_SOCK_Acceptor.h +++ b/ace/SSL/SSL_SOCK_Acceptor.h @@ -18,7 +18,6 @@ #ifndef ACE_SSL_SOCK_ACCEPTOR_H #define ACE_SSL_SOCK_ACCEPTOR_H -#include "SSL_SOCK_Stream.h" #include "ace/SOCK_Acceptor.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) @@ -27,6 +26,8 @@ #if defined (ACE_HAS_SSL) +#include "SSL_SOCK_Stream.h" + class ACE_SSL_Export ACE_SSL_SOCK_Acceptor : public ACE_SSL_SOCK { // = TITLE @@ -43,22 +44,22 @@ public: // Default constructor. ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap, - int reuse_addr = 0, - int protocol_family = PF_INET, - int backlog = ACE_DEFAULT_BACKLOG, - int protocol = 0); + int reuse_addr = 0, + int protocol_family = PF_INET, + int backlog = ACE_DEFAULT_BACKLOG, + int protocol = 0); // Initiate a passive mode ssl/BSD-style acceptor socket. // <local_sap> is the address that we-re going to listen for // connections on. ACE_SSL_SOCK_Acceptor (const ACE_Addr &local_sap, - ACE_Protocol_Info *protocolinfo, - ACE_SOCK_GROUP g, - u_long flags, - int reuse_addr, - int protocol_family, - int backlog = ACE_DEFAULT_BACKLOG, - int protocol = 0); + ACE_Protocol_Info *protocolinfo, + ACE_SOCK_GROUP g, + u_long flags, + int reuse_addr, + int protocol_family, + int backlog = ACE_DEFAULT_BACKLOG, + int protocol = 0); // Initialize a passive-mode QoS-enabled acceptor socket. Returns 0 // on success and -1 on failure. @@ -130,5 +131,6 @@ private: #include "SSL_SOCK_Acceptor.i" #endif /* ACE_LACKS_INLINE_FUNCTIONS */ -#endif /* ACE_SSL_SOCK_ACCEPTOR_H */ #endif /* ACE_HAS_SSL */ +#endif /* ACE_SSL_SOCK_ACCEPTOR_H */ + diff --git a/ace/SSL/SSL_SOCK_Acceptor.i b/ace/SSL/SSL_SOCK_Acceptor.i index fab3bb7e0c7..c0939202685 100644 --- a/ace/SSL/SSL_SOCK_Acceptor.i +++ b/ace/SSL/SSL_SOCK_Acceptor.i @@ -3,7 +3,6 @@ // SSL_SOCK_Acceptor.i -#if defined (ACE_HAS_SSL) // Do nothing routine for constructor. @@ -81,6 +80,3 @@ ACE_SSL_SOCK_Acceptor::~ACE_SSL_SOCK_Acceptor (void) { ACE_TRACE ("ACE_SSL_SOCK_Acceptor::~ACE_SSL_SOCK_Acceptor"); } - - -#endif /* ACE_HAS_SSL */ diff --git a/ace/SSL/SSL_SOCK_Stream.cpp b/ace/SSL/SSL_SOCK_Stream.cpp index d6e8db424e7..75b1410c870 100644 --- a/ace/SSL/SSL_SOCK_Stream.cpp +++ b/ace/SSL/SSL_SOCK_Stream.cpp @@ -1,8 +1,6 @@ // -*- C++ -*- // $Id$ -#define ACE_BUILD_DLL - #include "ace/Handle_Set.h" #if defined (ACE_HAS_SSL) diff --git a/ace/SSL/sslconf.h b/ace/SSL/sslconf.h index e3585208bb8..b81721b889a 100644 --- a/ace/SSL/sslconf.h +++ b/ace/SSL/sslconf.h @@ -3,7 +3,7 @@ // ============================================================================ // // = LIBRARY -// TAO_SSLIOP +// ACE_SSL // // = FILENAME // sslconf.h diff --git a/examples/IPC_SAP/SSL_SAP/SSL-client.dsp b/examples/IPC_SAP/SSL_SAP/SSL-client.dsp new file mode 100644 index 00000000000..bbccb597b4c --- /dev/null +++ b/examples/IPC_SAP/SSL_SAP/SSL-client.dsp @@ -0,0 +1,70 @@ +# Microsoft Developer Studio Project File - Name="SSL_client" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=SSL_client - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "SSL-client.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "SSL-client.mak" CFG="SSL_client - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "SSL_client - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir ".\SSL_client\Debug"
+# PROP BASE Intermediate_Dir ".\SSL_client\Debug"
+# PROP BASE Target_Dir ".\SSL_client"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "."
+# PROP Intermediate_Dir ".\debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ".\SSL_client"
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\SSLIOP" /I "..\..\..\ACE_wrappers" /I "..\..\..\OpenSSL\openssl-0.9.5\inc32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "ACE_HAS_SSL" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
+# ADD LINK32 ACE_SSLd.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\SSLIOP" /libpath:"..\..\..\ACE_wrappers\ace"
+# Begin Target
+
+# Name "SSL_client - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
+# Begin Source File
+
+SOURCE=".\SSL-client.cpp"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
+# Begin Source File
+
+SOURCE=".\SSL-client.h"
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/examples/IPC_SAP/SSL_SAP/SSL-server.dsp b/examples/IPC_SAP/SSL_SAP/SSL-server.dsp new file mode 100644 index 00000000000..3906639283e --- /dev/null +++ b/examples/IPC_SAP/SSL_SAP/SSL-server.dsp @@ -0,0 +1,63 @@ +# Microsoft Developer Studio Project File - Name="SSL_server" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=SSL_server - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "SSL-server.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "SSL-server.mak" CFG="SSL_server - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "SSL_server - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir ".\SSL_server\Debug"
+# PROP BASE Intermediate_Dir ".\SSL_server\Debug"
+# PROP BASE Target_Dir ".\SSL_server"
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "."
+# PROP Intermediate_Dir ".\debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ".\SSL_server"
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\..\SSLIOP" /I "..\..\..\ACE_wrappers" /I "..\..\..\OpenSSL\openssl-0.9.5\inc32" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "ACE_HAS_SSL" /YX /FD /c
+# SUBTRACT CPP /X
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386
+# ADD LINK32 ACE_SSLd.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\SSLIOP" /libpath:"..\..\..\ACE_wrappers\ace"
+# Begin Target
+
+# Name "SSL_server - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
+# Begin Source File
+
+SOURCE=".\SSL-server.cpp"
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/examples/IPC_SAP/SSL_SAP/SSL_SOCK_SAP.dsw b/examples/IPC_SAP/SSL_SAP/SSL_SOCK_SAP.dsw new file mode 100644 index 00000000000..b17fdb04630 --- /dev/null +++ b/examples/IPC_SAP/SSL_SAP/SSL_SOCK_SAP.dsw @@ -0,0 +1,41 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "SSL_client"=".\SSL-client.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "SSL_server"=".\SSL-server.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
|