]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
PR: update documentation
authorprascle <prascle>
Fri, 28 Jan 2005 09:55:45 +0000 (09:55 +0000)
committerprascle <prascle>
Fri, 28 Jan 2005 09:55:45 +0000 (09:55 +0000)
doc/salome/KernelResources/kernel_resources-1.html
doc/salome/KernelResources/kernel_resources-2.html
doc/salome/KernelResources/kernel_resources-3.html
doc/salome/KernelResources/kernel_resources.html
doc/salome/KernelResources/kernel_resources.lyx
doc/salome/kernel_resources.pdf
doc/salome/kernel_resources.ps

index 6652dc4502ebc139c32cee4c0ef03b74d2c34010..562ffa05b1d41d83327abe7ecc76c68d6f0a44ac 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.20">
  <TITLE>SALOME Kernel resources for developer: Trace and debug Utilities</TITLE>
  <LINK HREF="kernel_resources-2.html" REL=next>
 
 Previous
 <A HREF="kernel_resources.html#toc1">Contents</A>
 <HR>
-<H2><A NAME="s1">1. Trace and debug Utilities</A></H2>
+<H2><A NAME="s1">1.</A> <A HREF="kernel_resources.html#toc1">Trace and debug Utilities</A></H2>
 
 <P>During the development process, an execution log is useful to
 identify problems. This log contains messages, variables values,
 source files names and line numbers. It is recommended to verify
 assertions on variables values and if necessary, to stop the execution
-at debug time, in order to validate all parts of code.
-<H2><A NAME="ss1.1">1.1 Two modes: debug and release</A>
+at debug time, in order to validate all parts of code.</P>
+
+<H2><A NAME="ss1.1">1.1</A> <A HREF="kernel_resources.html#toc1.1">Two modes: debug and release</A>
 </H2>
 
 <P>The goal of debug mode is to check as many features as possible
 during the early stages of the development process. The purpose of
 the utilities provided in SALOME is to help the developer to add
 detailed traces and check variables values, without writing a lot
-of code.
+of code.</P>
+
 <P>When the code is assumed to be valid, the release mode optimizes
 execution, in terms of speed, memory, and display only user level
-messages.
+messages.</P>
+
 <P>But, some informations must always be displayed in both modes:
 especially messages concerning environment or internal errors, with
 version identification. When an end user is confronted to such a
 message, he may refer to a configuration documentation or send the
 message to the people in charge of SALOME installation, or to the
-development team, following the kind of error.
-<H2><A NAME="ss1.2">1.2 C++ Macros for trace and debug</A>
+development team, following the kind of error.</P>
+
+<H2><A NAME="ss1.2">1.2</A> <A HREF="kernel_resources.html#toc1.2">C++ Macros for trace and debug</A>
 </H2>
 
 <P>SALOME provides C++ macros for trace and debug. These macros
-are in <CODE>SALOME/src/utils/utilities.h</CODE> and this file must be included
-in C++ source. Some macros are activated only in debug mode, others
-are always activated. To activate the debug mode, <CODE>_DEBUG_</CODE> must be
-defined, which is the case when SALOME Makefiles are generated from
-configure, without options. When <CODE>_DEBUG_</CODE> is undefined (release mode),
-the debug mode macros are defined empty (they do nothing). So, when
-switching from debug to release, it is possible (and recommended)
-to let the macro calls unchanged in the source.
-<P>All the macros writing on the standard output start by flushing
-the standard error. At the end of the display those macros flush
-the standard output.
-<P>Two informations are systematically added in front of the information
-displayed:
+are in <CODE>SALOME/src/SALOMELocalTrace/utilities.h</CODE> and this file must
+be included in C++ source. Some macros are activated only in debug
+mode, others are always activated. To activate the debug mode, <CODE>_DEBUG_</CODE>
+must be defined, which is the case when SALOME Makefiles are generated
+from configure, without options. When <CODE>_DEBUG_</CODE> is undefined (release
+mode: <CODE>configure --disable-debug --enable-production</CODE>), the debug mode
+macros are defined empty (they do nothing). So, when switching from
+debug to release, it is possible (and recommended) to let the macro
+calls unchanged in the source.</P>
+
+<P>All the macros generate trace messages, stored in a circular
+buffer pool. A separate thread reads the messages in the buffer pool,
+and, depending on options given at SALOME start, writes the messages
+on the standard output, a file, or send them via CORBA, in case of
+a multi machine configuration.</P>
+
+<P>Three informations are systematically added in front of the information
+displayed:</P>
+
 <P>
 <UL>
+<LI>the thread number from which the message come from;</LI>
 <LI>the name of the source file in which the macros is set;</LI>
-<LI>the line number of the source file at which the macro is set.</LI>
+<LI>the line number of the source file at which the macro is set.
+</LI>
 </UL>
+</P>
 <H3>Macros defined in debug and release modes</H3>
 
 <H3>INFOS_COMPILATION</H3>
 
-<P>The C++ macro <CODE>INFOS_COMPILATION</CODE> writes on the standard output
-informations about the compiling process: 
+<P>The C++ macro <CODE>INFOS_COMPILATION</CODE> writes on the trace buffer pool
+informations about the compiling process: </P>
+
 <P>
 <UL>
 <LI>the name of the compiler : <CODE>g++, KCC, CC, pgCC</CODE>;</LI>
-<LI>the date and the time of the compiling processing process.</LI>
+<LI>the date and the time of the compiling processing process.
+</LI>
 </UL>
+</P>
 <P>This macro <CODE>INFOS_COMPILATION</CODE> does not have any argument. Moreover,
-it is defined in both compiling mode : <CODE>_DEBUG_</CODE> and <CODE>_RELEASE_</CODE>.
-<P>Example :
+it is defined in both compiling mode : <CODE>_DEBUG_</CODE> and <CODE>_RELEASE_</CODE>.</P>
+
+<P>Example :</P>
+
 <P>
 <PRE>
 #include &quot;utilities.h&quot;
@@ -81,12 +99,15 @@ int main(int argc , char **argv)
   ...
 }
 </PRE>
+</P>
 <H3>INFOS(str)</H3>
 
 <P>In both compiling mode <CODE>_DEBUG_</CODE> and <CODE>_RELEASE_</CODE>, The C++ macro <CODE>INFOS</CODE>
-writes on the standard output the string which has been passed in
-argument by the user.
-<P>Example : 
+writes on the trace buffer pool the string which has been passed
+in argument by the user.</P>
+
+<P>Example : </P>
+
 <P>
 <PRE>
 #include &quot;utilities.h&quot;
@@ -97,19 +118,39 @@ int main(int argc , char **argv)
   return 0; 
 }
 </PRE>
-<P>displays :
+</P>
+<P>displays :</P>
+
 <P>
 <PRE>
 main.cxx [5] : NORMAL END OF THE PROCESS
+
 </PRE>
+</P>
+<H3>INTERRUPTION(str)</H3>
+
+<P>In both compiling mode <CODE>_DEBUG_</CODE> and <CODE>_RELEASE_</CODE>, The C++ macro <CODE>INTERRUPTION</CODE>
+writes on the trace buffer pool the string, with a special <CODE>ABORT</CODE>
+type. When the thread in charge of collecting messages finds this
+message, it terminates the application, after message treatment.</P>
+
+<H3>IMMEDIATE_ABORT(str)</H3>
+
+<P>In both compiling mode <CODE>_DEBUG_</CODE> and <CODE>_RELEASE_</CODE>, The C++ macro <CODE>IMMEDIATE_ABORT</CODE>
+writes the message immediately on standard error and exits the application.
+Remaining messages not treated by the message collector thread are
+lost.</P>
+
 <H3>Macros defined only in debug mode</H3>
 
 <H3>MESSAGE(str)</H3>
 
 <P>In <CODE>_DEBUG_</CODE> compiling mode only, the C++ macro <CODE>MESSAGE</CODE> writes
-on the standard output the string which has been passed in argument
-by the user. In <CODE>_RELEASE_</CODE> compiling mode, this macro is blank.
-<P>Example : 
+on the trace buffer pool the string which has been passed in argument
+by the user. In <CODE>_RELEASE_</CODE> compiling mode, this macro is blank.</P>
+
+<P>Example : </P>
+
 <P>
 <PRE>
 #include &quot;utilities.h&quot; 
@@ -126,19 +167,24 @@ int main(int argc , char **argv)
   return 0;
 }
 </PRE>
-<P>displays :
+</P>
+<P>displays :</P>
+
 <P>
 <PRE>
 - Trace main.cxx [8] : Salome
 - Trace main.cxx [12] : Aster and CASTEM
 </PRE>
+</P>
 <H3>BEGIN_OF(func_name)</H3>
 
 <P>In <CODE>_DEBUG_</CODE> compiling mode, The C++ macro <CODE>BEGIN_OF</CODE> appends the
 string <CODE>&quot;Begin of &quot;</CODE> to the one passed in argument by the
-user and displays the result on the standard output. In <CODE>_RELEASE_</CODE>
-compiling mode, this macro is blank.
-<P>Example : 
+user and displays the result on the trace buffer pool. In <CODE>_RELEASE_</CODE>
+compiling mode, this macro is blank.</P>
+
+<P>Example : </P>
+
 <P>
 <PRE>
 #include &quot;utilities.h&quot; 
@@ -148,18 +194,23 @@ int main(int argc , char **argv)
   return 0;
 }
 </PRE>
-<P>displays : 
+</P>
+<P>displays : </P>
+
 <P>
 <PRE>
 - Trace main.cxx [3] : Begin of a.out
 </PRE>
+</P>
 <H3>END_OF(func_name)</H3>
 
 <P>In <CODE>_DEBUG_</CODE> compiling mode, The C++ macro <CODE>END_OF</CODE> appends the string
 <CODE>&quot;Normal end of &quot;</CODE> to the one passed in argument by the user
-and displays the result on the standard output. In <CODE>_RELEASE_</CODE> compiling
-mode, this macro is blank.
-<P>Example : 
+and displays the result on the trace buffer pool. In <CODE>_RELEASE_</CODE> compiling
+mode, this macro is blank.</P>
+
+<P>Example : </P>
+
 <P>
 <PRE>
 #include &quot;utilities.h&quot; 
@@ -169,17 +220,22 @@ int main(int argc , char **argv)
   return 0; 
 }
 </PRE>
-<P>displays : 
+</P>
+<P>displays : </P>
+
 <P>
 <PRE>
 - Trace main.cxx [4] : Normal end of a.out
 </PRE>
+</P>
 <H3>SCRUTE(var)</H3>
 
 <P>In <CODE>_DEBUG_</CODE> compiling mode, The C++ macro <CODE>SCRUTE</CODE> displays its
 argument which is an application variable followed by the value of
-the variable. In <CODE>_RELEASE_</CODE> compiling mode, this macro is blank.
-<P>Example : 
+the variable. In <CODE>_RELEASE_</CODE> compiling mode, this macro is blank.</P>
+
+<P>Example : </P>
+
 <P>
 <PRE>
 #include &quot;utilities.h&quot;
@@ -190,19 +246,25 @@ int main(int argc , char **argv)
   return 0;
 }
 </PRE>
-<P>displays :
+</P>
+<P>displays :</P>
+
 <P>
 <PRE>
 - Trace main.cxx [5] : i=999
 </PRE>
+</P>
 <H3>ASSERT(condition)</H3>
 
 <P>In <CODE>_DEBUG_</CODE> compiling mode only, The C++ macro <CODE>ASSERT</CODE> checks the
-expression passed in argument to be not NULL. If it is NULL the process
-is stopped and the condition is written on the standard output. In
-<CODE>_RELEASE_</CODE> compiling mode, this macro is blank. N.B. : if <CODE>ASSERT</CODE> is
-already defined, this macro is ignored.
-<P>Example :
+expression passed in argument to be not NULL. If it is NULL the condition
+is written with the macro <CODE>INTERRUPTION</CODE> (see above). The process exits
+after trace of this last message. In <CODE>_RELEASE_</CODE> compiling mode, this
+macro is blank. N.B. : if <CODE>ASSERT</CODE> is already defined, this macro is
+ignored.</P>
+
+<P>Example :</P>
+
 <P>
 <PRE>
 #include &quot;utilities.h&quot; 
@@ -216,6 +278,7 @@ int k;
 ASSERT(k&lt;10);
 cout &lt;&lt; table[k];
 </PRE>
+</P>
 <HR>
 <A HREF="kernel_resources-2.html">Next</A>
 Previous
index 0557f1838e043d3f48d6910c940822f18777e0b6..62acf8ca3ca64077d2cdaffb1f79a40792e3d96e 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.20">
  <TITLE>SALOME Kernel resources for developer: Exceptions</TITLE>
  <LINK HREF="kernel_resources-3.html" REL=next>
  <LINK HREF="kernel_resources-1.html" REL=previous>
@@ -12,9 +12,9 @@
 <A HREF="kernel_resources-1.html">Previous</A>
 <A HREF="kernel_resources.html#toc2">Contents</A>
 <HR>
-<H2><A NAME="s2">2. Exceptions</A></H2>
+<H2><A NAME="s2">2.</A> <A HREF="kernel_resources.html#toc2">Exceptions</A></H2>
 
-<H2><A NAME="ss2.1">2.1 C++ exceptions: class SALOME_Exception</A>
+<H2><A NAME="ss2.1">2.1</A> <A HREF="kernel_resources.html#toc2.1">C++ exceptions: class SALOME_Exception</A>
 </H2>
 
 <H3>definition</H3>
@@ -24,34 +24,46 @@ a message, with optional source file name and line number. This class
 is intended to serve as a base class for all kinds of exceptions
 SALOME code. All the exceptions derived from <CODE>SALOME_Exception</CODE> could
 be handled in a single catch, in which the message associated to
-the exception is displayed, or sent to a log file.
+the exception is displayed, or sent to a log file.</P>
+
 <P>The class <CODE>SALOME_Exception</CODE> inherits its behavior from the STL
-class exception.
+class exception.</P>
+
 <H3>usage</H3>
 
 <P>The header <CODE>SALOME/src/utils/utils_SALOME_Exception.hxx</CODE> must be
-included in the C++ source, when raised or trapped:
-<P><CODE>#include </CODE>&quot;<CODE>utils_SALOME_Exception.hxx</CODE>&quot;
-<P>The <CODE>SALOME_Exception</CODE> constructor is:
+included in the C++ source, when raised or trapped:</P>
+
+<P><CODE>#include </CODE>&quot;<CODE>utils_SALOME_Exception.hxx</CODE>&quot;</P>
+
+<P>The <CODE>SALOME_Exception</CODE> constructor is:</P>
+
 <P>
 <PRE>
 SALOME_Exception( const char *text,
                   const char *fileName=0, 
                   const unsigned int lineNumber=0 );
 </PRE>
-<P>The exception is raised like this:
+</P>
+<P>The exception is raised like this:</P>
+
 <P>
 <PRE>
 throw SALOME_Exception(&quot;my pertinent message&quot;);
 </PRE>
-<P>or like this:
+</P>
+<P>or like this:</P>
+
 <P>
 <PRE>
 throw SALOME_Exception(LOCALIZED(&quot;my pertinent message&quot;));
 </PRE>
+</P>
 <P>where LOCALIZED is a macro provided with <CODE>utils_SALOME_Exception.hxx</CODE>
-which gives file name and line number.
-<P>The exception is handled like this:
+which gives file name and line number.</P>
+
+<P>The exception is handled like this:</P>
+
 <P>
 <PRE>
 try
@@ -63,56 +75,71 @@ catch (const SALOME_Exception &amp;ex)
     cerr &lt;&lt; ex.what() &lt;&lt;endl;
   }
 </PRE>
+</P>
 <P>The <CODE>what()</CODE> method overrides the one defined in the STL exception
-class.
-<H2><A NAME="ss2.2">2.2 CORBA exceptions</A>
+class.</P>
+
+<H2><A NAME="ss2.2">2.2</A> <A HREF="kernel_resources.html#toc2.2">CORBA exceptions</A>
 </H2>
 
 <H3>definition</H3>
 
 <P>The idl <CODE>SALOME_Exception</CODE> provides a generic CORBA exception for
 SALOME, with an attribute that gives an exception type,a message,
-plus optional source file name and line number. 
+plus optional source file name and line number. </P>
+
 <P>This idl is intended to serve for all user CORBA exceptions raised
 in SALOME code, as IDL specification does not support exception inheritance.
 So, all the user CORBA exceptions from SALOME could be handled in
-a single catch.
-<P>The exception types defined in idl are:
+a single catch.</P>
+
+<P>The exception types defined in idl are:</P>
+
 <P>
 <DL>
-<DT><B>COMM</B><DD><P>CORBA communication problem,
-<DT><B>BAD_PARAM</B><DD><P>Bad User parameters,
-<DT><B>INTERNAL_ERROR</B><DD><P>application level problem (often irrecoverable).
+<DT><B>COMM</B><DD><P>CORBA communication problem,</P>
+<DT><B>BAD_PARAM</B><DD><P>Bad User parameters,</P>
+<DT><B>INTERNAL_ERROR</B><DD><P>application level problem (often irrecoverable).</P>
+
 </DL>
+</P>
 <P>CORBA system and user exceptions already defined in the packages
-used within SALOME, such as OmniORB exceptions, must be handled separately.
+used within SALOME, such as OmniORB exceptions, must be handled separately.</P>
+
 <H3>usage</H3>
 
 <H3>CORBA servant, C++</H3>
 
 <P>The CORBA Server header for <CODE>SALOME_Exception</CODE> and a macro to throw
-the exception are provided with the header <CODE>SALOME/src/Utils/Utils_CorbaException.hxx</CODE>:
+the exception are provided with the header <CODE>SALOME/src/Utils/Utils_CorbaException.hxx</CODE>:</P>
+
 <P>
 <PRE>
 #include &quot;Utils_CorbaException.hxx&quot;
 </PRE>
+</P>
 <P>The exception is raised with a macro which appends file name
-and line number.
+and line number.</P>
+
 <P>
 <PRE>
 if (myStudyName.size() == 0)
    THROW_SALOME_CORBA_EXCEPTION(&quot;No Study Name given&quot;, \
                                 SALOME::BAD_PARAM);
 </PRE>
+</P>
 <H3>CORBA Client, GUI Qt C++</H3>
 
 <P>The CORBA Client header for <CODE>SALOME_Exception</CODE> and a Qt function
-header that displays a message box are provided in <CODE>SALOME/src/SALOMEGUI/SALOMEGUI_QtCatchCorbaException.hxx</CODE>:
+header that displays a message box are provided in <CODE>SALOME/src/SALOMEGUI/SALOMEGUI_QtCatchCorbaException.hxx</CODE>:</P>
+
 <P>
 <PRE>
 #include &quot;SALOMEGUI_QtCatchCorbaException.hxx&quot;
 </PRE>
-<P>A typical exchange with a CORBA Servant will be:
+</P>
+<P>A typical exchange with a CORBA Servant will be:</P>
+
 <P>
 <PRE>
 try
@@ -123,12 +150,15 @@ catch (const SALOME::SALOME_Exception &amp; S_ex)
   {
     QtCatchCorbaException(S_ex);
   }
+
 </PRE>
+</P>
 <H3>CORBA Client, C++, without GUI</H3>
 
 <P>Nothing specific has been provided to the developer yet. See
 the idl or the Qt function <CODE>SALOMEGUI_QtCatchCorbaException.hxx</CODE> to
-see how to get the information given by the exception object.
+see how to get the information given by the exception object.</P>
+
 <HR>
 <A HREF="kernel_resources-3.html">Next</A>
 <A HREF="kernel_resources-1.html">Previous</A>
index 64cdedde561f3a0911bd670593af5423e36236e7..27f61e78f18d249aca6e8be272e8ae780a5256ee 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.20">
  <TITLE>SALOME Kernel resources for developer: Miscellaneous tools</TITLE>
  <LINK HREF="kernel_resources-2.html" REL=previous>
  <LINK HREF="kernel_resources.html#toc3" REL=contents>
@@ -11,9 +11,9 @@ Next
 <A HREF="kernel_resources-2.html">Previous</A>
 <A HREF="kernel_resources.html#toc3">Contents</A>
 <HR>
-<H2><A NAME="s3">3. Miscellaneous tools</A></H2>
+<H2><A NAME="s3">3.</A> <A HREF="kernel_resources.html#toc3">Miscellaneous tools</A></H2>
 
-<H2><A NAME="ss3.1">3.1 Singleton</A>
+<H2><A NAME="ss3.1">3.1</A> <A HREF="kernel_resources.html#toc3.1">Singleton</A>
 </H2>
 
 <H3>Definition</H3>
@@ -21,14 +21,17 @@ Next
 <P>A singleton is an application data which is created and deleted
 only once at the end of the application process. The C++ compiler
 allows the user to create a static singleton data before the first
-executable statement. They are deleted after the last statement execution.
+executable statement. They are deleted after the last statement execution.</P>
+
 <P>The <CODE>SINGLETON_</CODE> template class deals with dynamic singleton. It
 is useful for functor objects. For example, an object that connects
 the application to a system at creation and disconnects the application
-at deletion.
+at deletion.</P>
+
 <H3>Usage</H3>
 
-<P>To create a single instance a POINT object :
+<P>To create a single instance a POINT object :</P>
+
 <P>
 <PRE>
 # include &quot;Utils_SINGLETON.hxx&quot;
@@ -36,11 +39,13 @@ at deletion.
 POINT *ptrPoint=SINGLETON_&lt;POINT&gt;::Instance() ; 
 assert(ptrPoint!=NULL) ;
 </PRE>
+</P>
 <P>No need to delete ptrPoint. Deletion is achieved automatically
 at exit. If the user tries to create more than one singleton by using
 the class method <CODE>SINGLETON_&lt;TYPE&gt;::Instance()</CODE>, the pointer
 is returned with the same value even if this is done in different
-functions (threads ?).
+functions (threads ?).</P>
+
 <P>
 <PRE>
 POINT *p1=SINGLETON_&lt;POINT&gt;::Instance() ;
@@ -48,9 +53,11 @@ POINT *p1=SINGLETON_&lt;POINT&gt;::Instance() ;
 POINT *p2=SINGLETON_&lt;POINT&gt;::Instance() ; 
 assert(p1==p2)
 </PRE>
+</P>
 <H3>Design description</H3>
 
-<P>Here are the principles features of the singleton design :
+<P>Here are the principles features of the singleton design :</P>
+
 <P>
 <UL>
 <LI>the user creates an object of class <CODE>TYPE</CODE> by using the class method
@@ -62,13 +69,16 @@ the default constructor of class <CODE>TYPE</CODE> ;</LI>
 which is added to the generic list of destructor objects to be executed
 at the end of the application (<CODE>atexit</CODE>) ;</LI>
 <LI>at the end of the application process all the deletions are performed
-by the <CODE>Nettoyage()</CODE> C function which executes the destruction objects
+by the <CODE>Nettoyage()</CODE> C&nbsp;function which executes the destruction objects
 end then deletes the destructions objects themselves ;</LI>
-<LI>the <CODE>Nettoyage()</CODE> C  function using atexit() C  function is embedded
-in a static single object <CODE>ATEXIT_()</CODE>.</LI>
+<LI>the <CODE>Nettoyage()</CODE> C &nbsp;function using atexit() C &nbsp;function is embedded
+in a static single object <CODE>ATEXIT_()</CODE>.
+</LI>
 </UL>
-<P>
-<P>
+</P>
+
+
+
 <HR>
 Next
 <A HREF="kernel_resources-2.html">Previous</A>
index 6a11ac423a9c1d7eed3f8a422811b39e8ebfb2f4..e3819dc56f9001418dae3b3700182056f9c8de6e 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
- <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
+ <META NAME="GENERATOR" CONTENT="LinuxDoc-Tools 0.9.20">
  <TITLE>SALOME Kernel resources for developer</TITLE>
  <LINK HREF="kernel_resources-1.html" REL=next>
 
@@ -14,11 +14,11 @@ Contents
 <HR>
 <H1>SALOME Kernel resources for developer</H1>
 
-<H2>Antoine Yessayan, Paul Rascle </H2>Version 0.1 January 16, 2002
-<P><HR>
+<H2>Antoine Yessayan, Paul Rascle </H2>Version 0.2 January 28, 2005
+<HR>
 <EM>ABSTRACT </EM>
 <HR>
-<P><HR>
+<HR>
 <EM>This document describes the development environment for C++ and
  Python. Makefiles generation and usage are introduced in another
  document: "using the SALOME configuration and building system environment".
@@ -32,21 +32,21 @@ Contents
 <H2><A NAME="toc1">1.</A> <A HREF="kernel_resources-1.html">Trace and debug Utilities</A></H2>
 
 <UL>
-<LI><A HREF="kernel_resources-1.html#ss1.1">1.1 Two modes: debug and release</A>
-<LI><A HREF="kernel_resources-1.html#ss1.2">1.2 C++ Macros for trace and debug</A>
+<LI><A NAME="toc1.1">1.1</A> <A HREF="kernel_resources-1.html#ss1.1">Two modes: debug and release</A>
+<LI><A NAME="toc1.2">1.2</A> <A HREF="kernel_resources-1.html#ss1.2">C++ Macros for trace and debug</A>
 </UL>
 <P>
 <H2><A NAME="toc2">2.</A> <A HREF="kernel_resources-2.html">Exceptions</A></H2>
 
 <UL>
-<LI><A HREF="kernel_resources-2.html#ss2.1">2.1 C++ exceptions: class SALOME_Exception</A>
-<LI><A HREF="kernel_resources-2.html#ss2.2">2.2 CORBA exceptions</A>
+<LI><A NAME="toc2.1">2.1</A> <A HREF="kernel_resources-2.html#ss2.1">C++ exceptions: class SALOME_Exception</A>
+<LI><A NAME="toc2.2">2.2</A> <A HREF="kernel_resources-2.html#ss2.2">CORBA exceptions</A>
 </UL>
 <P>
 <H2><A NAME="toc3">3.</A> <A HREF="kernel_resources-3.html">Miscellaneous tools</A></H2>
 
 <UL>
-<LI><A HREF="kernel_resources-3.html#ss3.1">3.1 Singleton</A>
+<LI><A NAME="toc3.1">3.1</A> <A HREF="kernel_resources-3.html#ss3.1">Singleton</A>
 </UL>
 <HR>
 <A HREF="kernel_resources-1.html">Next</A>
index d696300b2926e68d8aa22fca37bb0ec6f9c9b483..2c5935eab309122239b04702c70f9dcf8c8c252d 100644 (file)
@@ -1,5 +1,5 @@
-#LyX 1.1 created this file. For more info see http://www.lyx.org/
-\lyxformat 218
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
 \textclass linuxdoc
 \language english
 \inputencoding default
@@ -11,6 +11,8 @@
 \paperpackage a4
 \use_geometry 0
 \use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
 \paperorientation portrait
 \secnumdepth 3
 \tocdepth 3
@@ -30,7 +32,7 @@ SALOME Kernel resources for developer
 Antoine Yessayan, Paul Rascle 
 \layout Date
 
-Version 0.1 January 16, 2002
+Version 0.2 January 28, 2005
 \layout Abstract
 
 ABSTRACT 
@@ -98,7 +100,7 @@ C++ Macros for trace and debug
 SALOME provides C++ macros for trace and debug.
  These macros are in 
 \family typewriter 
-SALOME/src/utils/utilities.h
+SALOME/src/SALOMELocalTrace/utilities.h
 \family default 
  and this file must be included in C++ source.
  Some macros are activated only in debug mode, others are always activated.
@@ -112,18 +114,26 @@ _DEBUG_
 \family typewriter 
 _DEBUG_
 \family default 
- is undefined (release mode), the debug mode macros are defined empty (they
- do nothing).
+ is undefined (release mode: 
+\family typewriter 
+configure --disable-debug --enable-production
+\family default 
+), the debug mode macros are defined empty (they do nothing).
  So, when switching from debug to release, it is possible (and recommended)
  to let the macro calls unchanged in the source.
 \layout Standard
 
-All the macros writing on the standard output start by flushing the standard
- error.
- At the end of the display those macros flush the standard output.
+All the macros generate trace messages, stored in a circular buffer pool.
+ A separate thread reads the messages in the buffer pool, and, depending
+ on options given at SALOME start, writes the messages on the standard output,
+ a file, or send them via CORBA, in case of a multi machine configuration.
 \layout Standard
 
-Two informations are systematically added in front of the information displayed:
+Three informations are systematically added in front of the information
+ displayed:
+\layout Itemize
+
+the thread number from which the message come from;
 \layout Itemize
 
 the name of the source file in which the macros is set;
@@ -142,7 +152,7 @@ The C++ macro
 \family typewriter 
 INFOS_COMPILATION
 \family default 
- writes on the standard output informations about the compiling process:
+ writes on the trace buffer pool informations about the compiling process:
  
 \layout Itemize
 
@@ -208,7 +218,7 @@ _RELEASE_
 \family typewriter 
 INFOS
 \family default 
- writes on the standard output the string which has been passed in argument
+ writes on the trace buffer pool the string which has been passed in argument
  by the user.
 \layout Standard
 
@@ -241,6 +251,53 @@ displays :
 \layout Verbatim
 
 main.cxx [5] : NORMAL END OF THE PROCESS
+\layout Verbatim
+
+\layout Paragraph
+
+
+\family roman 
+INTERRUPTION(str)
+\layout Standard
+
+In both compiling mode 
+\family typewriter 
+_DEBUG_
+\family default 
+ and 
+\family typewriter 
+_RELEASE_
+\family default 
+, The C++ macro 
+\family typewriter 
+INTERRUPTION
+\family default 
+ writes on the trace buffer pool the string, with a special 
+\family typewriter 
+ABORT
+\family default 
+ type.
+ When the thread in charge of collecting messages finds this message, it
+ terminates the application, after message treatment.
+\layout Paragraph
+
+IMMEDIATE_ABORT(str)
+\layout Standard
+
+In both compiling mode 
+\family typewriter 
+_DEBUG_
+\family default 
+ and 
+\family typewriter 
+_RELEASE_
+\family default 
+, The C++ macro 
+\family typewriter 
+IMMEDIATE_ABORT
+\family default 
+ writes the message immediately on standard error and exits the application.
+ Remaining messages not treated by the message collector thread are lost.
 \layout Subsubsection
 
 Macros defined only in debug mode
@@ -257,7 +314,7 @@ _DEBUG_
 \family typewriter 
 MESSAGE
 \family default 
- writes on the standard output the string which has been passed in argument
+ writes on the trace buffer pool the string which has been passed in argument
  by the user.
  In 
 \family typewriter 
@@ -335,7 +392,7 @@ BEGIN_OF
 "Begin of "
 \family default 
  to the one passed in argument by the user and displays the result on the
standard output.
trace buffer pool.
  In 
 \family typewriter 
 _RELEASE_
@@ -386,7 +443,7 @@ END_OF
 "Normal end of "
 \family default 
  to the one passed in argument by the user and displays the result on the
standard output.
trace buffer pool.
  In 
 \family typewriter 
 _RELEASE_
@@ -483,8 +540,12 @@ _DEBUG_
 ASSERT
 \family default 
  checks the expression passed in argument to be not NULL.
- If it is NULL the process is stopped and the condition is written on the
- standard output.
+ If it is NULL the condition is written with the macro 
+\family typewriter 
+INTERRUPTION
+\family default 
+ (see above).
+ The process exits after trace of this last message.
  In 
 \family typewriter 
 _RELEASE_
index 35924a77ec8ad232296b57f411c32c2236d493cd..b29cb2c04edc6aa1e2d2d971646dfec77a8845a5 100644 (file)
Binary files a/doc/salome/kernel_resources.pdf and b/doc/salome/kernel_resources.pdf differ
index 7e21165980ee18aef0f7839e7a1c0cbbd8876d3e..cb78b16ba2aa1c9d1fa4fc3ae7ac11ddd38bf95c 100644 (file)
@@ -9,7 +9,7 @@
 %DVIPSCommandLine: dvips -t letter -o kernel_resources.ps
 %+ kernel_resources.dvi
 %DVIPSParameters: dpi=600, compressed
-%DVIPSSource:  TeX output 2002.01.17:1829
+%DVIPSSource:  TeX output 2005.01.28:1211
 %%BeginProcSet: texc.pro
 %!
 /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
@@ -87,211 +87,212 @@ C0EC1FF0EC07FCEC01FF9138007FC0ED1FF0ED07FCED01FF9238007FC0EE1FF0EE07FCEE
 6C14FCA36C14F8A26C14F06C14E06C14C0000114006C5BEB1FF01F1F7BA42A>15
 D E
 %EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fc ectt1000 10 79
-/Fc 79 126 df<121FEA3F80EA7FC0EAFFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F80EA7F
-C0EAFFE0A5EA7FC0EA3F80EA1F000B3470B32C>33 D<003C131E007F137F481480A66C14
-00A6007E7FA6003E133EA3003C131E001C131C191977B32C>I<0107131C90380F803EA8
-011F137EEC007CA4003FB612E0B712F8A43A003E00F800A2EB7E01017C5BA8EBFC0301F8
-5BA2B712F8A4003F15E03A01F007C000A30003130F01E05BA86C486CC7FC25337DB22C>
-I<EB0FC0EB3FE0497E497E80EA01F8EBF07C147E0003133E13E0A5147E147C9138FC3FF8
-9039F0F87FFCEA01F1EBF3F001F7EB3FF89138E01F009038FFC03F6CEB803EA2EC007E49
-137C485A486C13FC00075CEBFF01D80FDF5B381F9F81383F8F8390380FC3E0387E07E75D
-38FC03F7EB01FF5D6D1410ED007C80A26CEBFF80D87E0113C0D87F03EBE0FC3A3F87F7F1
-F89038FFE3FF6C01C113F06C13806C9038007FC0D801FCEB1F8026357EB32C>38
-D<143814FC13011303EB07F8EB0FF0EB1FC0EB3F80EB7F0013FE485A485A5B12075B120F
-5B485AA2123F90C7FCA25A127EA312FE5AAC7E127EA3127F7EA27F121FA26C7E7F12077F
-12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB07F8EB03FC130113001438164272B92C>
-40 D<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E6C7E6C7E137F7F1480131F14C0130FEB
-07E0A214F01303A214F81301A314FC1300AC130114F8A3130314F0A2130714E0A2EB0FC0
-131F1480133F14005B13FE485A485A485A485AEA3FC0485A48C7FC5A5A1270164279B92C
->I<EB0380497EA60020140800F8143E00FE14FE00FF13C1EBC7C7EBE7CF003FB512F800
-0F14E0000314806C140038007FFCA248B5FC481480000F14E0003F14F839FFE7CFFEEBC7
-C7EB07C100FE13C000F8143E0020140800001400A66D5A1F247AAA2C>I<147014F8AF00
-3FB612E0B712F8A4C700F8C7FCB0147025267DAB2C>I<EA0F80EA1FE0EA3FF0EA7FF8A2
-13FCA3123F121F120F120013F8A21201EA03F01207EA1FE0EA7FC0EAFF80130012FC1270
-0E17718A2C>I<007FB512F0B612F8A36C14F01D0579942C>I<121FEA3F80EA7FC0EAFFE0
-A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED0F80A2151F16005D153E157E157CA215
-FC5D14015D14035D14075D140F5D141F92C7FC5C143EA2147E147C14FC5C13015C13035C
-13075C130F5C131F91C8FC5B133EA2137E137C13FC5B12015B12035B12075B120F5B121F
-90C9FCA25A123E127E127C12FC5AA2127021417BB92C>I<EB03F8EB0FFE90383FFF8049
-7F90B57E3901FE0FF03903F803F848486C7EEBE0004848137EA248487FA248C7EA1F80A2
-003E140F007E15C0A3007C140700FC15E0AC6C140F007E15C0A46CEC1F80A36C6CEB3F00
-A26C6C137E6D13FE00075CEBF0016C6C485A3901FE0FF06CB55A6D5B6D5BD90FFEC7FCEB
-03F823357CB32C>I<1307497EA2131FA2133F137F13FF5A1207127FB5FC13DF139FEA7C
-1F1200B3AE007FB512E0B612F0A36C14E01C3477B32C>I<EB0FF890387FFF8048B512E0
-0007804814FC391FF80FFE393FE001FF903880007F48C7EA3F80007E141F00FE15C0150F
-6C15E01507A3127E123CC8FCA2150F16C0151F1680153F16005D15FE4A5A14034A5A4A5A
-4A5A4A5AECFF804948C7FC495A495A495AEB3FE0EB7F8049C8FC485A4848EB03C04848EB
-07E0EA1FE0485A48B6FCB7FCA36C15C023347CB32C>I<EB0FFC90387FFF8048B512E000
-0714F84880391FF807FEEBC0004848137F6D7F1680151FA26C5A6CC7FCC8FC153F16005D
-15FE14014A5AEC1FF890381FFFF0495BA215F86D7F90380007FEEC00FF81ED3F80ED1FC0
-150FA216E01507A2123C127EB4FC150F16C0A248141F007FEC3F806DEB7F006C6C5B391F
-F807FE6CB55A6C5C6C14E0C66C1380D90FFCC7FC23357CB32C>I<EC07F04A7E141F143F
-A2147EA214FCEB01F8A2EB03F0EB07E0A2EB0FC0EB1F80A2EB3F00137EA25B485AA2485A
-5B1207485AA2485A48C7FCA2127E5AB712FC16FEA36C15FCC8EAF800AA91387FFFF091B5
-12F8A36E13F027347EB32C>I<000FB512FE4880A35D0180C8FCADEB83FE90389FFF8090
-B512E015F8819038FE03FE9038F000FF01C07F49EB3F8090C7121F6C15C0C8120FA2ED07
-E0A4123C127EB4FC150F16C0A248141F007EEC3F80007FEC7F006C6C5B6D485A391FF80F
-FC6CB55A6C5C000114C06C6C90C7FCEB0FF823347CB22C>I<EB07FC90383FFF8090B512
-E0000314F84880390FFC07FE391FF001FF9038C0007F4848EB3F8090C7121F4815C0007E
-140FA56CEC1F80A26C6CEB3F006D5B390FF001FE3903FC07F86CB55A6C6C13C0D907FCC7
-FC90387FFFC048B512F03903FC07F8390FF001FE391FC0007F497F48C7EA1F80007EEC0F
-C0A248EC07E0A7007EEC0FC0A2007F141F6C6CEB3F806C6CEB7F009038F001FF390FFC07
-FE6CB55A6C5CC614E0013F1380D907FCC7FC23357CB32C>56 D<EB07FCEB3FFF90B512C0
-488048803907FC07F8390FF001FC48486C7ED83F80137E157F48C77E007EEC1F8012FE5A
-ED0FC0A416E0A37E127E007F141F7E6D133F6C6C137F390FF001FF3807FC0F6CB6FC6C14
-F76C14C7013F130FD90FF813C090C7FCA2151F1680153F1600000F5C486C137E486C13FE
-4A5A4A5A14079038801FF0391FE07FE090B55A6C91C7FC6C5B000113F838007FC023357C
-B32C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCAE121FEA3F80EA7FC0
-EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>I<EA0F80EA1FC0EA3FE0EA7FF0A5EA3FE0
-EA1FC0EA0F80C7FCAEEA0F80EA1FE0EA3FF0EA7FF8A213FCA3123F121F120F120013F8A2
-1201EA03F01207EA1FE0EA7FC0EAFF80130012FC12700E3071A32C>I<1502ED0F80151F
-157F15FF913803FE00EC0FFCEC1FF0EC7FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80
-000390C8FCEA07FCEA1FF8EA3FE0EAFF8090C9FCA27FEA3FE0EA1FF8EA07FC6CB4FCC67F
-EB3FE06D7EEB07FC6D7E903800FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157F151F
-150FED0200212A7BAD2C>I<007FB612F0B712F8A36C15F0CAFCA8007FB612F0B712F8A3
-6C15F025127DA12C>I<122012F87EB4FC7FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D
-7EEB07FC6D7E903800FF80EC7FE0EC1FF0EC0FFCEC03FE913800FF80157FA215FF913803
-FE00EC0FFCEC1FF0EC7FE0ECFF80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07
-FCEA1FF8EA3FE0EAFF8090C9FC12FC5A1220212A7BAD2C>I<14FE497EA4497FA214EFA2
-130781A214C7A2010F7FA314C390381F83F0A590383F01F8A490387E00FCA549137E90B5
-12FEA34880A29038F8003FA34848EB1F80A4000715C049130FD87FFEEBFFFC6D5AB514FE
-6C15FC497E27347EB32C>65 D<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED
-07F01503A2ED01F8A6ED03F0A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039
-F0001FE0ED07F0ED03F81501ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF000
-7FB612E016C0B712806CECFE0015F027337FB22C>I<02FF13700107EBE0F84913F9013F
-13FD4913FFEBFF813901FE007F4848131FD807F0130F1507485A491303485A150148C7FC
-A25A007EEC00F01600A212FE5AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14
-F06C6C130716E0D803FC131F6C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F001
-00138025357DB32C>I<007FB5FCB612C015F0816C803907E003FEEC00FFED7F80153FED
-1FC0ED0FE0A2150716F0150316F81501A4ED00FCACED01F8A3150316F0A2150716E0150F
-ED1FC0153FED7F80EDFF00EC03FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007F
-B612F0B712F8A37E3903F00001A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A
-91C8FCA5163C167EA8007FB612FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA3
-7ED803F0C7FCA716781600A515F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5
-FC805C7E26337EB22C>I<903901FC038090390FFF87C04913EF017F13FF90B6FC481307
-3803FC01497E4848137F4848133F49131F121F5B003F140F90C7FCA2127EED078092C7FC
-A212FE5AA8913803FFF84A13FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F
-120F6D137F6C7E6C6C13FF6D5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7
-FC26357DB32C>I<D87FFEEBFFFCB54813FEA36C486C13FCD807E0EB0FC0B190B6FCA590
-38E0000FB3D87FFEEBFFFCB54813FEA36C486C13FC27337EB22C>I<007FB512F8B612FC
-A36C14F839000FC000B3B3A5007FB512F8B612FCA36C14F81E3379B22C>I<D87FFCEB7F
-F8486CEBFFFCA36C48EB7FF8D807C0EB1F80153FED7F00157E5D4A5A14034A5A5D4A5A4A
-5A143F4AC7FC147E5CEBC1F813C3EBC7FCA2EBCFFEEBDFBEEBFFBF141F01FE7F496C7E13
-F86E7EEBF00301E07FEBC001816E7EA2157E153E153F811680ED0FC0A2ED07E0D87FFCEB
-1FFC486CEB3FFEA36C48EB1FFC27337EB22C>75 D<387FFFE0B57EA36C5BD803F0C8FCB3
-AE16F0ED01F8A8007FB6FCB7FCA36C15F025337DB22C>I<D87FE0EB0FFC486CEB1FFEA2
-6D133F007F15FC000F15E001BC137BA4019E13F3A3EB9F01A2018F13E3A21483A2018713
-C314C7A201831383A214EFA201811303A214FFEB80FEA3147C14381400ACD87FF0EB1FFC
-486CEB3FFEA36C48EB1FFC27337EB22C>I<D87FF0EB7FFC486CEBFFFEA27F007FEC7FFC
-D807FEEB07C013DEA213DF13CFA2148013C714C0A213C314E0A213C114F0A213C014F8A2
-147CA3143EA2141E141FA2140F1587A2140715C7A2140315E71401A215F71400A215FFD8
-7FFC137F487E153FA26C48EB1F8027337EB22C>I<EB7FFF0003B512E0000F14F8488048
-80EBE003EB800048C7127FA2007E80A300FE158048141FB3A86C143FA2007E1500A3007F
-5CA26C6C13FEEBF00790B5FC6C5C6C5C000314E0C66C90C7FC21357BB32C>I<007FB512
-C0B612F88115FF6C15802603F00013C0153FED0FE0ED07F0A2150316F81501A6150316F0
-1507A2ED0FE0ED3FC015FF90B61280160015FC5D15C001F0C8FCB0387FFF80B57EA36C5B
-25337EB22C>I<EB7FFF0003B512E0000F14F848804880EBF007EB800048C7127FA2007E
-80A300FE158048141FB3A7EB01F0EB03F800FE143F267E01FC1300A2EB00FE007F5C147F
-D83F8013FEEBF03F90B5FC6C5C6C5C000314E0C67E90380007F0A26E7EA26E7EA26E7EA2
-157FA2153E21407BB32C>I<387FFFFCB67E15E015F86C803907E007FE1401EC007F6F7E
-151FA26F7EA64B5AA2153F4BC7FCEC01FE140790B55A5D15E081819038E007FCEC01FE14
-00157F81A8160FEE1F80A5D87FFEEB1FBFB5ECFF00815E6C486D5AC8EA01F029347EB22C
->I<90381FF80790B5EA0F804814CF000714FF5A381FF01F383FC003497E48C7FC007E14
-7F00FE143F5A151FA46CEC0F00007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC0003EB
-FFC06C14F06C6C7F01077F9038007FFEEC07FF02001380153FED1FC0A2ED0FE0A2007814
-0712FCA56CEC0FC0A26CEC1F806D133F01E0EB7F009038FE01FF90B55A5D00F914F0D8F8
-3F13C0D8700790C7FC23357CB32C>I<007FB612FCB712FEA43AFC007E007EA70078153C
-C71400B3AF90383FFFFCA2497F6D5BA227337EB22C>I<3B7FFF803FFFC0B56C4813E0A3
-6C496C13C03B03F00001F800B3AF6D130300015DA26D130700005D6D130F017F495A6D6C
-485AECE0FF6DB5C7FC6D5B010313F86D5B9038003F802B3480B22C>I<D87FF0EB07FF48
-6C491380A36C486D1300001FC8127CA46C6C5CA76C6C495AA4143E147FA33A03E0FF83E0
-A214F7A201E113C3A3000101E35BA201F113C701F313E7A314C1A200005DA201F713F714
-80A301FF13FF017F91C7FC4A7EA4013E133E29347FB22C>87 D<3A3FFF03FFE0484913F0
-148714076C6D13E03A01F800FE007F0000495A13FE017E5BEB7F03013F5B1487011F5B14
-CF010F5B14FF6D5BA26D90C7FCA26D5AA26D5AA2497EA2497EA2497F81EB0FCF81EB1FC7
-EC87F0EB3F83EC03F8EB7F01017E7FEBFE00497F0001147E49137F000380491480151FD8
-7FFEEBFFFC6D5AB514FE6C15FC497E27337EB22C>I<D87FFCEB7FFC486CEBFFFEA36C48
-EB7FFCD807F0EB0FC0151F000315806D133F12016DEB7F0012006D137E017E13FE017F5B
-EB3F01EC81F8131FEC83F0EB0FC314C7903807E7E0A201035B14EF6DB45AA292C7FC7F5C
-147EB0903807FFE0497FA36D5B27337EB22C>I<003FB612C04815E0A4007EC7EA1FC0ED
-3F80A2ED7F00157E15FE4A5A003C5CC712034A5AA24A5A4A5AA24A5A4AC7FCA214FE495A
-A2495A495AA2495A495AA2495A49C8FCA213FE485AA24848EB03C049EB07E01207485A5B
-121F485AA248C7FCB7FCA46C15C023337CB22C>I<387FFFFCB512FEA314FC00FCC7FCB3
-B3B3B512FC14FEA36C13FC17416FB92C>I<127012F8A27E127C127E123E123F7EA27F12
-0F7F12077F12037F12017F12007F137C137E133EA2133F7F80130F801307801303801301
-80130080147C147E143EA2143F8081140F81140781140381140181140081157CA2157E15
-3E153F811680150FA2ED070021417BB92C>I<387FFFFCB512FEA37EC7127EB3B3B3387F
-FFFEB5FCA36C13FC17417DB92C>I<007FB6FCB71280A46C150021067B7D2C>95
-D<3801FFF0000713FE001F6D7E15E048809038C01FF81407EC01FC381F80000006C77EC8
-127EA3ECFFFE131F90B5FC1203120F48EB807E383FF800EA7FC090C7FC12FE5AA47E007F
-14FEEB8003383FE01F6CB612FC6C15FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>
-97 D<EA7FF0487EA3127F1201AAEC1FE0ECFFF801FB13FE90B6FC16809138F07FC09138
-801FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13
-036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813F83900F03FC027
-337FB22C>I<903803FFE0011F13F8017F13FE48B5FC48804848C6FCEA0FF0485A49137E
-4848131890C9FC5A127EA25AA8127EA2127F6C140F6DEB1F806C7E6D133F6C6CEB7F0039
-07FE03FF6CB55A6C5C6C6C5B011F13E0010390C7FC21247AA32C>I<EC0FFE4A7EA380EC
-003FAAEB07F8EB3FFE90B512BF4814FF5A3807FC0F380FF00348487E497E48487F90C7FC
-007E80A212FE5AA87E007E5CA2007F5C6C7E5C6C6C5A380FF0073807FC1F6CB612FC6CEC
-BFFE6C143FEB3FFC90390FF01FFC27337DB22C>I<EB03FE90381FFFC0017F13F048B57E
-48803907FE03FE390FF800FFD81FE0EB3F805B4848EB1FC090C7120F5A007E15E015075A
-B7FCA416C000FCC9FC7E127EA2127F6CEC03C06DEB07E06C7ED80FF0130F6C6CEB3FC001
-FF13FF000190B512806C1500013F13FC010F13F00101138023247CA32C>I<EC0FF8EC3F
-FE91B5FC4914805B903807FC7F14F090390FE03F0014C092C7FCA6007FB512FEB7FCA36C
-5C26000FC0C7FCB3A8003FB512F04880A36C5C21337DB22C>I<ED03F8903907F80FFC90
-391FFE3FFE017FB6FC48B7FC48ECFE7F9038FC0FF82607F003133E3A0FE001FC1CD9C000
-1300001F8049137EA66D13FE000F5CEBE0016C6C485A3903FC0FF048B5FC5D481480D99F
-FEC7FCEB87F80180C8FCA37F6C7E90B512F06C14FE48ECFF804815E04815F03A3FC0001F
-F848C7EA03FC007E1400007C157C00FC157E48153EA46C157E007E15FCD87F801303D83F
-E0EB0FF8D81FFCEB7FF06CB612E0000315806C1500D8003F13F8010713C028387EA42C>
-I<EA7FF0487EA3127F1201AAEC1FE0EC7FFC9038F9FFFE01FB7F90B6FC9138F03F80ECC0
-1F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C01E0140029337FB22C>I<
-1307EB1FC0A2497EA36D5AA20107C7FC90C8FCA7387FFFC080B5FC7EA2EA0007B3A8007F
-B512FCB612FEA36C14FC1F3479B32C>I<EA7FE0487EA3127F1201AA91381FFFF04A13F8
-A36E13F0913800FE004A5A4A5A4A5A4A5A4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5
-FCA2EC9F80EC0FC001FE7FEBFC07496C7E496C7E811400157E811680151F3A7FFFC0FFFC
-B500E113FEA36C01C013FC27337EB22C>107 D<387FFFE0B57EA37EEA0003B3B3A5007F
-B61280B712C0A36C158022337BB22C>I<3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD8
-7FFF13FF91B57E3A07FE1FFC3E01FCEBF83F496C487E01F013E001E013C0A301C01380B3
-3B7FFC3FF87FF0027F13FFD8FFFE6D13F8D87FFC4913F0023F137F2D2481A32C>I<397F
-F01FE039FFF87FFC9038F9FFFE01FB7F6CB6FC00019038F03F80ECC01F02807FEC000F5B
-5BA25BB3267FFFE0B5FCB500F11480A36C01E0140029247FA32C>I<EB07FCEB1FFF017F
-13C048B512F048803907FC07FC390FF001FE48486C7E0180133F003F158090C7121F007E
-EC0FC0A348EC07E0A76C140F007E15C0A2007F141F6C15806D133F6C6CEB7F006D5B6C6C
-485A3907FC07FC6CB55A6C5C6C6C13C0011F90C7FCEB07FC23247CA32C>I<397FF01FE0
-39FFF8FFF801FB13FE90B6FC6C158000019038F07FC09138801FE091380007F049EB03F8
-5BED01FC491300A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE0
-9138E07FC091B51280160001FB5B01F813F8EC3FC091C8FCAD387FFFE0B57EA36C5B2736
-7FA32C>I<D87FFEEB3FC0B53801FFF0020713F8021F13FC6C5B39003F7FE1ECFF019138
-FC00F84A13704A13005CA25C5CA391C8FCAF007FB512E0B67EA36C5C26247EA32C>114
-D<90387FF8700003B512F8120F5A5A387FC00F387E00034813015AA36CEB00F0007F1400
-13F0383FFFC06C13FE6CEBFF80000314E0C66C13F8010113FCEB0007EC00FE0078147F00
-FC143F151F7EA26C143F6D133E6D13FE9038F007FC90B5FC15F815E000F8148039701FFC
-0020247AA32C>I<131E133FA9007FB6FCB71280A36C1500D8003FC8FCB1ED03C0ED07E0
-A5EC800F011FEB1FC0ECE07F6DB51280160001035B6D13F89038003FE0232E7EAD2C>I<
-3A7FF003FF80486C487FA3007F7F0001EB000FB3A3151FA2153F6D137F3900FE03FF90B7
-FC6D15807F6D13CF902603FE07130029247FA32C>I<3A7FFF01FFFCB514FE148314016C
-15FC3A03E0000F80A26D131F00011500A26D5B0000143EA26D137E017C137CA2017E13FC
-013E5BA2EB3F01011F5BA21483010F5BA214C701075BA214EF01035BA214FF6D90C7FCA2
-6D5A147C27247EA32C>I<D87FFFEB7FFF6EB5FCB515806C16004A7ED807C0EB01F0A66C
-6C495AA3143E147FA2D801F0495AECFF87A214F7A201F113C700005D9038F9E3CFA201FB
-13EFA3D97BC190C7FC017F13FFA21480A2013F5B90381F007C29247FA32C>I<3A3FFF03
-FFF048018713F8A36C010313F03A00FC007E005D90387E01F8013F5BEB1F83EC87E09038
-0FCFC0903807EF80EB03FF6D90C7FC5C6D5A147C14FE130180903803EF80903807CFC0EB
-0FC7EC83E090381F01F0013F7FEB7E00017C137C49137E0001803A7FFF01FFFC1483B514
-FE6C15FC140127247EA32C>I<3A7FFF01FFFCB5008113FE148314816C010113FC3A03E0
-000F806C7E151F6D140012005D6D133E137C017E137E013E137CA2013F13FC6D5BA2EB0F
-815DA2EB07C1ECC3E0A2EB03E3ECE7C0130114F75DEB00FFA292C7FC80A2143EA2147E14
-7CA214FC5CA2EA0C01003F5BEA7F83EB87E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA
-07E027367EA32C>I<003FB612E04815F0A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A00
-3C495AC7485A4A5A4A5A4A5A4A5A4AC7FCEB01FC495AEB0FF0495A495A495A49C8FC4848
-EB01E04848EB03F0485A485A485A485A485AB7FCA46C15E024247DA32C>I<15FF020713
-80141F147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F5BB55A49C8FC6D
-7E6C7FC67F131FEB07F01303B380EB01FEECFFC06D13FF6E1380141F1407020013002141
-7BB92C>I<EA7FC0EAFFF813FE6D7E6C7FC67F131FEB07F01303B380EB01FEECFFC06D13
-FF6E1380141F147F91B512004913C04AC7FCEB03F85CB31307EB1FE013FF007F5BB55A49
-C8FC13F8EA7FC021417BB92C>125 D E
+%DVIPSBitmapFont: Fc ectt1000 10 80
+/Fc 80 126 df<007FB512F0B612F8A36C14F01D0579942C>21 D<121FEA3F80EA7FC0EA
+FFE0B0EA7FC0AEEA1F00C7FCA7121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B34
+70B32C>33 D<003C131E007F137F481480A66C1400A6007E7FA6003E133EA3003C131E00
+1C131C191977B32C>I<0107131C90380F803EA8011F137EEC007CA4003FB612E0B712F8
+A43A003E00F800A2EB7E01017C5BA8EBFC0301F85BA2B712F8A4003F15E03A01F007C000
+A30003130F01E05BA86C486CC7FC25337DB22C>I<EB0FC0EB3FE0497E497E80EA01F8EB
+F07C147E0003133E13E0A5147E147C9138FC3FF89039F0F87FFCEA01F1EBF3F001F7EB3F
+F89138E01F009038FFC03F6CEB803EA2EC007E49137C485A486C13FC00075CEBFF01D80F
+DF5B381F9F81383F8F8390380FC3E0387E07E75D38FC03F7EB01FF5D6D1410ED007C80A2
+6CEBFF80D87E0113C0D87F03EBE0FC3A3F87F7F1F89038FFE3FF6C01C113F06C13806C90
+38007FC0D801FCEB1F8026357EB32C>38 D<143814FC13011303EB07F8EB0FF0EB1FC0EB
+3F80EB7F0013FE485A485A5B12075B120F5B485AA2123F90C7FCA25A127EA312FE5AAC7E
+127EA3127F7EA27F121FA26C7E7F12077F12037F6C7E6C7E137FEB3F80EB1FC0EB0FF0EB
+07F8EB03FC130113001438164272B92C>40 D<127012FC7E7E6C7E6C7EEA0FE06C7E6C7E
+6C7E6C7E137F7F1480131F14C0130FEB07E0A214F01303A214F81301A314FC1300AC1301
+14F8A3130314F0A2130714E0A2EB0FC0131F1480133F14005B13FE485A485A485A485AEA
+3FC0485A48C7FC5A5A1270164279B92C>I<EB0380497EA60020140800F8143E00FE14FE
+00FF13C1EBC7C7EBE7CF003FB512F8000F14E0000314806C140038007FFCA248B5FC4814
+80000F14E0003F14F839FFE7CFFEEBC7C7EB07C100FE13C000F8143E0020140800001400
+A66D5A1F247AAA2C>I<147014F8AF003FB612E0B712F8A4C700F8C7FCB0147025267DAB
+2C>I<EA0F80EA1FE0EA3FF0EA7FF8A213FCA3123F121F120F120013F8A21201EA03F012
+07EA1FE0EA7FC0EAFF80130012FC12700E17718A2C>I<007FB512F0B612F8A36C14F01D
+0579942C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B708A2C>I<1507ED
+0F80A2151F16005D153E157E157CA215FC5D14015D14035D14075D140F5D141F92C7FC5C
+143EA2147E147C14FC5C13015C13035C13075C130F5C131F91C8FC5B133EA2137E137C13
+FC5B12015B12035B12075B120F5B121F90C9FCA25A123E127E127C12FC5AA2127021417B
+B92C>I<EB03F8EB0FFE90383FFF80497F90B57E3901FE0FF03903F803F848486C7EEBE0
+004848137EA248487FA248C7EA1F80A2003E140F007E15C0A3007C140700FC15E0AC6C14
+0F007E15C0A46CEC1F80A36C6CEB3F00A26C6C137E6D13FE00075CEBF0016C6C485A3901
+FE0FF06CB55A6D5B6D5BD90FFEC7FCEB03F823357CB32C>I<1307497EA2131FA2133F13
+7F13FF5A1207127FB5FC13DF139FEA7C1F1200B3AE007FB512E0B612F0A36C14E01C3477
+B32C>I<EB0FF890387FFF8048B512E00007804814FC391FF80FFE393FE001FF90388000
+7F48C7EA3F80007E141F00FE15C0150F6C15E01507A3127E123CC8FCA2150F16C0151F16
+80153F16005D15FE4A5A14034A5A4A5A4A5A4A5AECFF804948C7FC495A495A495AEB3FE0
+EB7F8049C8FC485A4848EB03C04848EB07E0EA1FE0485A48B6FCB7FCA36C15C023347CB3
+2C>I<EB0FFC90387FFF8048B512E0000714F84880391FF807FEEBC0004848137F6D7F16
+80151FA26C5A6CC7FCC8FC153F16005D15FE14014A5AEC1FF890381FFFF0495BA215F86D
+7F90380007FEEC00FF81ED3F80ED1FC0150FA216E01507A2123C127EB4FC150F16C0A248
+141F007FEC3F806DEB7F006C6C5B391FF807FE6CB55A6C5C6C14E0C66C1380D90FFCC7FC
+23357CB32C>I<EC07F04A7E141F143FA2147EA214FCEB01F8A2EB03F0EB07E0A2EB0FC0
+EB1F80A2EB3F00137EA25B485AA2485A5B1207485AA2485A48C7FCA2127E5AB712FC16FE
+A36C15FCC8EAF800AA91387FFFF091B512F8A36E13F027347EB32C>I<000FB512FE4880
+A35D0180C8FCADEB83FE90389FFF8090B512E015F8819038FE03FE9038F000FF01C07F49
+EB3F8090C7121F6C15C0C8120FA2ED07E0A4123C127EB4FC150F16C0A248141F007EEC3F
+80007FEC7F006C6C5B6D485A391FF80FFC6CB55A6C5C000114C06C6C90C7FCEB0FF82334
+7CB22C>I<EB07FC90383FFF8090B512E0000314F84880390FFC07FE391FF001FF9038C0
+007F4848EB3F8090C7121F4815C0007E140FA56CEC1F80A26C6CEB3F006D5B390FF001FE
+3903FC07F86CB55A6C6C13C0D907FCC7FC90387FFFC048B512F03903FC07F8390FF001FE
+391FC0007F497F48C7EA1F80007EEC0FC0A248EC07E0A7007EEC0FC0A2007F141F6C6CEB
+3F806C6CEB7F009038F001FF390FFC07FE6CB55A6C5CC614E0013F1380D907FCC7FC2335
+7CB32C>56 D<EB07FCEB3FFF90B512C0488048803907FC07F8390FF001FC48486C7ED83F
+80137E157F48C77E007EEC1F8012FE5AED0FC0A416E0A37E127E007F141F7E6D133F6C6C
+137F390FF001FF3807FC0F6CB6FC6C14F76C14C7013F130FD90FF813C090C7FCA2151F16
+80153F1600000F5C486C137E486C13FE4A5A4A5A14079038801FF0391FE07FE090B55A6C
+91C7FC6C5B000113F838007FC023357CB32C>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA
+3F80EA1F00C7FCAE121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B2470A32C>I<
+EA0F80EA1FC0EA3FE0EA7FF0A5EA3FE0EA1FC0EA0F80C7FCAEEA0F80EA1FE0EA3FF0EA7F
+F8A213FCA3123F121F120F120013F8A21201EA03F01207EA1FE0EA7FC0EAFF80130012FC
+12700E3071A32C>I<1502ED0F80151F157F15FF913803FE00EC0FFCEC1FF0EC7FE0ECFF
+80D903FEC7FC495AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA3FE0EAFF8090C9FC
+A27FEA3FE0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E903800FF80EC7FE0EC1F
+F0EC0FFCEC03FE913800FF80157F151F150FED0200212A7BAD2C>I<007FB612F0B712F8
+A36C15F0CAFCA8007FB612F0B712F8A36C15F025127DA12C>I<122012F87EB4FC7FEA3F
+E0EA1FF8EA07FC6CB4FCC67FEB3FE06D7EEB07FC6D7E903800FF80EC7FE0EC1FF0EC0FFC
+EC03FE913800FF80157FA215FF913803FE00EC0FFCEC1FF0EC7FE0ECFF80D903FEC7FC49
+5AEB1FF0495AEBFF80000390C8FCEA07FCEA1FF8EA3FE0EAFF8090C9FC12FC5A1220212A
+7BAD2C>I<14FE497EA4497FA214EFA2130781A214C7A2010F7FA314C390381F83F0A590
+383F01F8A490387E00FCA549137E90B512FEA34880A29038F8003FA34848EB1F80A40007
+15C049130FD87FFEEBFFFC6D5AB514FE6C15FC497E27347EB32C>65
+D<007FB512E015F8B612FE6C8016C03903F0003FED0FE0ED07F01503A2ED01F8A6ED03F0
+A21507ED0FE0ED1FC0EDFF8090B612005D5D15FF16C09039F0001FE0ED07F0ED03F81501
+ED00FCA216FE167EA616FE16FC1501ED03F8150FED3FF0007FB612E016C0B712806CECFE
+0015F027337FB22C>I<02FF13700107EBE0F84913F9013F13FD4913FFEBFF813901FE00
+7F4848131FD807F0130F1507485A491303485A150148C7FCA25A007EEC00F01600A212FE
+5AAB7E127EA3007F15F06CEC01F8A26C7EA26C6C13036D14F06C6C130716E0D803FC131F
+6C6CEB3FC03A00FF81FF806DB512006D5B010F5B6D13F00100138025357DB32C>I<007F
+B5FCB612C015F0816C803907E003FEEC00FFED7F80153FED1FC0ED0FE0A2150716F01503
+16F81501A4ED00FCACED01F8A3150316F0A2150716E0150FED1FC0153FED7F80EDFF00EC
+03FE007FB55AB65A5D15C06C91C7FC26337EB22C>I<007FB612F0B712F8A37E3903F000
+01A7ED00F01600A4EC01E04A7EA490B5FCA5EBF003A46E5A91C8FCA5163C167EA8007FB6
+12FEB7FCA36C15FC27337EB22C>I<007FB612F8B712FCA37ED803F0C7FCA716781600A5
+15F04A7EA490B5FCA5EBF001A46E5A92C7FCAD387FFFE0B5FC805C7E26337EB22C>I<90
+3901FC038090390FFF87C04913EF017F13FF90B6FC4813073803FC01497E4848137F4848
+133F49131F121F5B003F140F90C7FCA2127EED078092C7FCA212FE5AA8913803FFF84A13
+FCA27E007E6D13F89138000FC0A36C141FA27F121F6D133F120F6D137F6C7E6C6C13FF6D
+5A3801FF076C90B5FC6D13EF011F13CF6DEB0780D901FCC7FC26357DB32C>I<D87FFEEB
+FFFCB54813FEA36C486C13FCD807E0EB0FC0B190B6FCA59038E0000FB3D87FFEEBFFFCB5
+4813FEA36C486C13FC27337EB22C>I<007FB512F8B612FCA36C14F839000FC000B3B3A5
+007FB512F8B612FCA36C14F81E3379B22C>I<D87FFCEB7FF8486CEBFFFCA36C48EB7FF8
+D807C0EB1F80153FED7F00157E5D4A5A14034A5A5D4A5A4A5A143F4AC7FC147E5CEBC1F8
+13C3EBC7FCA2EBCFFEEBDFBEEBFFBF141F01FE7F496C7E13F86E7EEBF00301E07FEBC001
+816E7EA2157E153E153F811680ED0FC0A2ED07E0D87FFCEB1FFC486CEB3FFEA36C48EB1F
+FC27337EB22C>75 D<387FFFE0B57EA36C5BD803F0C8FCB3AE16F0ED01F8A8007FB6FCB7
+FCA36C15F025337DB22C>I<D87FE0EB0FFC486CEB1FFEA26D133F007F15FC000F15E001
+BC137BA4019E13F3A3EB9F01A2018F13E3A21483A2018713C314C7A201831383A214EFA2
+01811303A214FFEB80FEA3147C14381400ACD87FF0EB1FFC486CEB3FFEA36C48EB1FFC27
+337EB22C>I<D87FF0EB7FFC486CEBFFFEA27F007FEC7FFCD807FEEB07C013DEA213DF13
+CFA2148013C714C0A213C314E0A213C114F0A213C014F8A2147CA3143EA2141E141FA214
+0F1587A2140715C7A2140315E71401A215F71400A215FFD87FFC137F487E153FA26C48EB
+1F8027337EB22C>I<EB7FFF0003B512E0000F14F848804880EBE003EB800048C7127FA2
+007E80A300FE158048141FB3A86C143FA2007E1500A3007F5CA26C6C13FEEBF00790B5FC
+6C5C6C5C000314E0C66C90C7FC21357BB32C>I<007FB512C0B612F88115FF6C15802603
+F00013C0153FED0FE0ED07F0A2150316F81501A6150316F01507A2ED0FE0ED3FC015FF90
+B61280160015FC5D15C001F0C8FCB0387FFF80B57EA36C5B25337EB22C>I<EB7FFF0003
+B512E0000F14F848804880EBF007EB800048C7127FA2007E80A300FE158048141FB3A7EB
+01F0EB03F800FE143F267E01FC1300A2EB00FE007F5C147FD83F8013FEEBF03F90B5FC6C
+5C6C5C000314E0C67E90380007F0A26E7EA26E7EA26E7EA2157FA2153E21407BB32C>I<
+387FFFFCB67E15E015F86C803907E007FE1401EC007F6F7E151FA26F7EA64B5AA2153F4B
+C7FCEC01FE140790B55A5D15E081819038E007FCEC01FE1400157F81A8160FEE1F80A5D8
+7FFEEB1FBFB5ECFF00815E6C486D5AC8EA01F029347EB22C>I<90381FF80790B5EA0F80
+4814CF000714FF5A381FF01F383FC003497E48C7FC007E147F00FE143F5A151FA46CEC0F
+00007E91C7FC127F7FEA3FE0EA1FFCEBFFC06C13FC0003EBFFC06C14F06C6C7F01077F90
+38007FFEEC07FF02001380153FED1FC0A2ED0FE0A20078140712FCA56CEC0FC0A26CEC1F
+806D133F01E0EB7F009038FE01FF90B55A5D00F914F0D8F83F13C0D8700790C7FC23357C
+B32C>I<007FB612FCB712FEA43AFC007E007EA70078153CC71400B3AF90383FFFFCA249
+7F6D5BA227337EB22C>I<3B7FFF803FFFC0B56C4813E0A36C496C13C03B03F00001F800
+B3AF6D130300015DA26D130700005D6D130F017F495A6D6C485AECE0FF6DB5C7FC6D5B01
+0313F86D5B9038003F802B3480B22C>I<D87FF0EB07FF486C491380A36C486D1300001F
+C8127CA46C6C5CA76C6C495AA4143E147FA33A03E0FF83E0A214F7A201E113C3A3000101
+E35BA201F113C701F313E7A314C1A200005DA201F713F71480A301FF13FF017F91C7FC4A
+7EA4013E133E29347FB22C>87 D<3A3FFF03FFE0484913F0148714076C6D13E03A01F800
+FE007F0000495A13FE017E5BEB7F03013F5B1487011F5B14CF010F5B14FF6D5BA26D90C7
+FCA26D5AA26D5AA2497EA2497EA2497F81EB0FCF81EB1FC7EC87F0EB3F83EC03F8EB7F01
+017E7FEBFE00497F0001147E49137F000380491480151FD87FFEEBFFFC6D5AB514FE6C15
+FC497E27337EB22C>I<D87FFCEB7FFC486CEBFFFEA36C48EB7FFCD807F0EB0FC0151F00
+0315806D133F12016DEB7F0012006D137E017E13FE017F5BEB3F01EC81F8131FEC83F0EB
+0FC314C7903807E7E0A201035B14EF6DB45AA292C7FC7F5C147EB0903807FFE0497FA36D
+5B27337EB22C>I<003FB612C04815E0A4007EC7EA1FC0ED3F80A2ED7F00157E15FE4A5A
+003C5CC712034A5AA24A5A4A5AA24A5A4AC7FCA214FE495AA2495A495AA2495A495AA249
+5A49C8FCA213FE485AA24848EB03C049EB07E01207485A5B121F485AA248C7FCB7FCA46C
+15C023337CB22C>I<387FFFFCB512FEA314FC00FCC7FCB3B3B3B512FC14FEA36C13FC17
+416FB92C>I<127012F8A27E127C127E123E123F7EA27F120F7F12077F12037F12017F12
+007F137C137E133EA2133F7F80130F80130780130380130180130080147C147E143EA214
+3F8081140F81140781140381140181140081157CA2157E153E153F811680150FA2ED0700
+21417BB92C>I<387FFFFCB512FEA37EC7127EB3B3B3387FFFFEB5FCA36C13FC17417DB9
+2C>I<007FB6FCB71280A46C150021067B7D2C>95 D<3801FFF0000713FE001F6D7E15E0
+48809038C01FF81407EC01FC381F80000006C77EC8127EA3ECFFFE131F90B5FC1203120F
+48EB807E383FF800EA7FC090C7FC12FE5AA47E007F14FEEB8003383FE01F6CB612FC6C15
+FE6C14BF0001EBFE1F3A003FF007FC27247CA32C>97 D<EA7FF0487EA3127F1201AAEC1F
+E0ECFFF801FB13FE90B6FC16809138F07FC09138801FE091380007F049EB03F85BED01FC
+491300A216FE167EA816FE6D14FCA2ED01F86D13036DEB07F0150F9138801FE09138E07F
+C091B51280160001FB5B01F813F83900F03FC027337FB22C>I<903803FFE0011F13F801
+7F13FE48B5FC48804848C6FCEA0FF0485A49137E4848131890C9FC5A127EA25AA8127EA2
+127F6C140F6DEB1F806C7E6D133F6C6CEB7F003907FE03FF6CB55A6C5C6C6C5B011F13E0
+010390C7FC21247AA32C>I<EC0FFE4A7EA380EC003FAAEB07F8EB3FFE90B512BF4814FF
+5A3807FC0F380FF00348487E497E48487F90C7FC007E80A212FE5AA87E007E5CA2007F5C
+6C7E5C6C6C5A380FF0073807FC1F6CB612FC6CECBFFE6C143FEB3FFC90390FF01FFC2733
+7DB22C>I<EB03FE90381FFFC0017F13F048B57E48803907FE03FE390FF800FFD81FE0EB
+3F805B4848EB1FC090C7120F5A007E15E015075AB7FCA416C000FCC9FC7E127EA2127F6C
+EC03C06DEB07E06C7ED80FF0130F6C6CEB3FC001FF13FF000190B512806C1500013F13FC
+010F13F00101138023247CA32C>I<EC0FF8EC3FFE91B5FC4914805B903807FC7F14F090
+390FE03F0014C092C7FCA6007FB512FEB7FCA36C5C26000FC0C7FCB3A8003FB512F04880
+A36C5C21337DB22C>I<ED03F8903907F80FFC90391FFE3FFE017FB6FC48B7FC48ECFE7F
+9038FC0FF82607F003133E3A0FE001FC1CD9C0001300001F8049137EA66D13FE000F5CEB
+E0016C6C485A3903FC0FF048B5FC5D481480D99FFEC7FCEB87F80180C8FCA37F6C7E90B5
+12F06C14FE48ECFF804815E04815F03A3FC0001FF848C7EA03FC007E1400007C157C00FC
+157E48153EA46C157E007E15FCD87F801303D83FE0EB0FF8D81FFCEB7FF06CB612E00003
+15806C1500D8003F13F8010713C028387EA42C>I<EA7FF0487EA3127F1201AAEC1FE0EC
+7FFC9038F9FFFE01FB7F90B6FC9138F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0
+B5FCB500F11480A36C01E0140029337FB22C>I<1307EB1FC0A2497EA36D5AA20107C7FC
+90C8FCA7387FFFC080B5FC7EA2EA0007B3A8007FB512FCB612FEA36C14FC1F3479B32C>
+I<EA7FE0487EA3127F1201AA91381FFFF04A13F8A36E13F0913800FE004A5A4A5A4A5A4A
+5A4A5A4A5A4AC7FC14FEEBF1FC13F3EBF7FE90B5FCA2EC9F80EC0FC001FE7FEBFC07496C
+7E496C7E811400157E811680151F3A7FFFC0FFFCB500E113FEA36C01C013FC27337EB22C
+>107 D<387FFFE0B57EA37EEA0003B3B3A5007FB61280B712C0A36C158022337BB22C>I<
+3A7F83F007E09039CFFC1FF83AFFDFFE3FFCD87FFF13FF91B57E3A07FE1FFC3E01FCEBF8
+3F496C487E01F013E001E013C0A301C01380B33B7FFC3FF87FF0027F13FFD8FFFE6D13F8
+D87FFC4913F0023F137F2D2481A32C>I<397FF01FE039FFF87FFC9038F9FFFE01FB7F6C
+B6FC00019038F03F80ECC01F02807FEC000F5B5BA25BB3267FFFE0B5FCB500F11480A36C
+01E0140029247FA32C>I<EB07FCEB1FFF017F13C048B512F048803907FC07FC390FF001
+FE48486C7E0180133F003F158090C7121F007EEC0FC0A348EC07E0A76C140F007E15C0A2
+007F141F6C15806D133F6C6CEB7F006D5B6C6C485A3907FC07FC6CB55A6C5C6C6C13C001
+1F90C7FCEB07FC23247CA32C>I<397FF01FE039FFF8FFF801FB13FE90B6FC6C15800001
+9038F07FC09138801FE091380007F049EB03F85BED01FC491300A216FE167EA816FE6D14
+FCA2ED01F86D13036DEB07F0150F9138801FE09138E07FC091B51280160001FB5B01F813
+F8EC3FC091C8FCAD387FFFE0B57EA36C5B27367FA32C>I<D87FFEEB3FC0B53801FFF002
+0713F8021F13FC6C5B39003F7FE1ECFF019138FC00F84A13704A13005CA25C5CA391C8FC
+AF007FB512E0B67EA36C5C26247EA32C>114 D<90387FF8700003B512F8120F5A5A387F
+C00F387E00034813015AA36CEB00F0007F140013F0383FFFC06C13FE6CEBFF80000314E0
+C66C13F8010113FCEB0007EC00FE0078147F00FC143F151F7EA26C143F6D133E6D13FE90
+38F007FC90B5FC15F815E000F8148039701FFC0020247AA32C>I<131E133FA9007FB6FC
+B71280A36C1500D8003FC8FCB1ED03C0ED07E0A5EC800F011FEB1FC0ECE07F6DB5128016
+0001035B6D13F89038003FE0232E7EAD2C>I<3A7FF003FF80486C487FA3007F7F0001EB
+000FB3A3151FA2153F6D137F3900FE03FF90B7FC6D15807F6D13CF902603FE0713002924
+7FA32C>I<3A7FFF01FFFCB514FE148314016C15FC3A03E0000F80A26D131F00011500A2
+6D5B0000143EA26D137E017C137CA2017E13FC013E5BA2EB3F01011F5BA21483010F5BA2
+14C701075BA214EF01035BA214FF6D90C7FCA26D5A147C27247EA32C>I<D87FFFEB7FFF
+6EB5FCB515806C16004A7ED807C0EB01F0A66C6C495AA3143E147FA2D801F0495AECFF87
+A214F7A201F113C700005D9038F9E3CFA201FB13EFA3D97BC190C7FC017F13FFA21480A2
+013F5B90381F007C29247FA32C>I<3A3FFF03FFF048018713F8A36C010313F03A00FC00
+7E005D90387E01F8013F5BEB1F83EC87E090380FCFC0903807EF80EB03FF6D90C7FC5C6D
+5A147C14FE130180903803EF80903807CFC0EB0FC7EC83E090381F01F0013F7FEB7E0001
+7C137C49137E0001803A7FFF01FFFC1483B514FE6C15FC140127247EA32C>I<3A7FFF01
+FFFCB5008113FE148314816C010113FC3A03E0000F806C7E151F6D140012005D6D133E13
+7C017E137E013E137CA2013F13FC6D5BA2EB0F815DA2EB07C1ECC3E0A2EB03E3ECE7C013
+0114F75DEB00FFA292C7FC80A2143EA2147E147CA214FC5CA2EA0C01003F5BEA7F83EB87
+E0EA7E0F495A387FFF806C90C8FC6C5A6C5AEA07E027367EA32C>I<003FB612E04815F0
+A4007EC7EA1FE0ED3FC0ED7F80EDFF004A5A003C495AC7485A4A5A4A5A4A5A4A5A4AC7FC
+EB01FC495AEB0FF0495A495A495A49C8FC4848EB01E04848EB03F0485A485A485A485A48
+5AB7FCA46C15E024247DA32C>I<15FF02071380141F147F91B512004913C04AC7FCEB03
+F85CB31307EB1FE013FF007F5BB55A49C8FC6D7E6C7FC67F131FEB07F01303B380EB01FE
+ECFFC06D13FF6E1380141F14070200130021417BB92C>I<EA7FC0EAFFF813FE6D7E6C7F
+C67F131FEB07F01303B380EB01FEECFFC06D13FF6E1380141F147F91B512004913C04AC7
+FCEB03F85CB31307EB1FE013FF007F5BB55A49C8FC13F8EA7FC021417BB92C>125
+D E
 %EndDVIPSBitmapFont
 %DVIPSBitmapFont: Fd ecbx1200 12 36
 /Fd 36 121 df<160C161EB3B0007FBB1280BC12C0A26C1A80C9001ECAFCB3B0160C4A4A
@@ -439,128 +440,131 @@ F0017F13FC3901FC07FF2603F003138048486C13C0496C13E0EA0FF86D14F0487EA66C48
 804AC7FC14F090C9FCA7EB03FE90381FFFE0017F13F89038FE07FC9038F003FFD9C00113
 80496C13C090C7FC000E15E0C8127F16F0A216F8A3121FEA3FC0487E12FF7FA316F05B15
 FFD87F8014E0007EC713C0003E5B003F4913806C6C481300390FF01FFE6CB512F8000114
-E06C6C1380D90FF8C7FC25377BB530>53 D<123C123EEA3FE090B71280A41700485D5E5E
-5E5EA2007CC7EA0FC000784A5A4BC7FC00F8147E485C5D14014A5AC7485A4A5AA24A5A14
-3F4AC8FCA214FEA213015C1303A21307A2130F5CA2131FA5133FA96D5A6D5A6D5A29397B
-B730>55 D<ED03E04B7EA24B7EA34B7EA24B7EA34B7EA292B57EA34A8015F302038015E1
-A202078015C0020F80ED807FA2021F80ED003F4A80023E131FA2027E80027C7F02FC814A
-7FA20101824A7F49B77EA3498202C0C7FC010F824A147FA2011F8291C8123F4982013E15
-1FA2017E82017C8101FE83B500F80107B61280A4413A7DB948>65
-D<B812C017FC17FF18C028007FF000037F04007F717E717E171F84A2717EA74D5AA26017
-3F4D5A4D5A4C13C0040F5B91B600FCC7FCA2EFFF8002F0C713F0EF3FF8717E717E717E19
-807113C0A319E0A719C0A25F4D138019005FEF7FFE4C485AB912F018C095C7FC17F03B39
-7DB844>I<DB3FFCEB01C00203B5EAC003021FECF00791B6EAFC0F01039039FC00FF3F49
-01C0EB1FFFD91FFEC77E49481403D97FF080494880485B48177F4849153F4890C9FC181F
-485A180F123F5B1807127FA24993C7FC12FFAD127F7FF003C0123FA27F001F1707A26C6C
-1780180F6C6D16006C6D5D6C173E6C6D157ED97FF85D6D6C4A5A6DB44A5A010701C0EB0F
-E06D01FCEBFF80010090B548C7FC021F14F8020314E09126003FFEC8FC3A3B7BB945>I<
-B87E17F817FF18C028007FF8000713F09338007FF8EF1FFE717E050313807113C0A27113
-E0F07FF0A2F03FF8A219FC181FA219FEA419FFAC19FEA419FC183FA219F8187F19F0F0FF
-E0A24D13C04D13804D1300EF1FFEEF7FFC933807FFF0B912C095C7FC17FC178040397DB8
-49>I<B912F0A426007FF8C7FCEF1FF8170717031701A21700A21878A3043C137C183CA4
-1800167CA216FC150391B5FCA4ECF8031500167CA2163C180FA3181EA293C7FCA2183EA2
-183C187CA218FCA2EF01F81703170F173FEE01FFB9FC18F0A338397DB83F>I<B912C0A4
-3A007FF800039338007FE0171F170F1707A21703A21701A318F0EE7800A41800A216F8A2
-1501150791B5FCA4ECF80715011500A21678A693C8FCADB7FCA434397DB83C>I<DB3FFC
-EB01C00203B5EAC003021FECF00791B6EAFC0F01039039FC00FF3F4901C0EB1FFFD91FFE
-C77E49481403D97FF080494880485B48177F4849153F4890C9FC181F485A180F123F5B18
-07127FA24993C8FC12FFAB043FB61280A2127F7FDC0003EBC000123FA27F121FA26C7EA2
-6C7F6C7F6C7F7ED97FF85C6D7E6DB45C010701C05B6D01FCEBFF3F010090B5EAFE0F021F
-ECF8030203ECE0009126003FFEC9FC413B7BB94B>I<B612FCA439007FF800B3B3ADB612
-FCA41E397DB824>73 D<B7FCA426007FF8C9FCB3ACEF0780A5170F1800A35FA25FA25F5F
-5E5EEE0FFE167FB8FCA431397DB839>76 D<B500F80403B512F06E5EA26E5ED8007FF1E0
-00A2D97BFF161EA201796D5DA201786D5DA26E6C5DA36E6C4A5AA26E6C4A5AA26E6C4A5A
-A26E6C4A5AA26E6C141EA36E6D5BA26E6D5BA26F6C5BA26F6C485AA36F6C485AA26F6C48
-5AA26F6C48C7FCA2923803FF1EA36F13BCA26F13F8A2705AA2705AA213FCB500FC6D4848
-B612F0A2EE0F80EE070054397DB85B>I<B500FC0203B512F0A28080C66C6D90390003F0
-006F6E5A81017B7F13798101787F6E7E6E7E6E7F6E7FA26E7F6E7F6E7F6E7F6F7E153F82
-6F13806F13C06F13E06F13F06F13F88117FCEE7FFEEE3FFF7013817013C17013E18218F1
-7013F97013FDEF7FFF8383A28383838383187FA2183F181F01FC160FB500FC1507180318
-01A244397DB84B>I<EDFFF8020FEBFF80027F14F0903A01FFC01FFC010790380007FFD9
-1FFC010113C0D93FF06D6C7E49486E7E49486E7E48496E7E48834890C86C7EA248486F13
-80A248486F13C0A2003F18E0A348486F13F0A400FF18F8AC007F18F06D5DA3003F18E0A2
-6D5D001F18C0A26C6C4B13806C18006E5C6C6D4A5A6C5F6C6D4A5A6D6C4A5AD93FFC4948
-5A6DB401075B0107D9C01F90C7FC010190B512FC6D6C14F0020F1480020001F8C8FC3D3B
-7BB948>I<B8FC17F017FEEFFF8028007FF8000F13C0040113E07013F0EF7FF8EF3FFCA2
-EF1FFEA218FFA818FEA2EF3FFCA2EF7FF8EFFFF04C13E0040F13C091B7120017FC17E002
-F8C9FCB3A4B612FCA438397DB841>I<EDFFF8020FEBFF80027F14F0903A01FFE03FFC01
-0790380007FFD91FFC010113C049486D7FD97FE0EC3FF049486E7E488348496E7E4890C8
-6C7EA248486F1380A2001F18C04981003F18E0A3007F18F04981A300FF18F8AC007F18F0
-A36D5D003F18E0A36C6C4B13C0A2000FDA1FC014806C6C90267FF0071300EDFFF86C903A
-81F07C0FFE6C903AC3C01E1FFC6CDA800F5BD97FE3ECBFF0D93FF36DB45AD91FFF5D0107
-01C091C7FC01019038F01FFC6D6CB500F01308020F6E131C0200EBF9FC92260001FE133C
-9438FF80FC18FF8219F8A28319F0A27113E0A27113C0711380711300EF01FC3E4A7BB948
->I<B712FCEEFFE017FC17FF28007FF8000F13C004017F707F717E717EA2717EA284A760
-A24D5A604D5A4D5A04035B041F90C8FC91B612FC17E0839139F8003FFCEE0FFF707F707F
-8284A2707FA584A51A601AF084177F1901DD3FFE13E0B600FC011F130394390FFF87C071
-EBFF8005011400CBEA1FFC443A7DB848>I<D907FF130E013FEBE01E90B5EAF83E0003EC
-FE7E3A07FC01FFFE390FF0001F4848130F48481303491301007F140090C8FC167E5A163E
-A27F161E7F7F6D91C7FC13FC387FFFE014FEECFFF06C14FE6F7E6C816C15F06C816C81C6
-81133F010F801301D9000F1480EC007F030F13C01503818100F0157FA3163FA27E17807E
-167F6C16007E6D14FE01E0495A01F813039039FF801FF800FC90B512E0D8F83F5CD8F007
-49C7FC39E0007FF02A3B7BB935>I<003FB91280A4D9F800EBF003D87FC09238007FC049
-161F007EC7150FA2007C1707A200781703A400F818E0481701A4C892C7FCB3AE010FB7FC
-A43B387DB742>I<B600FC011FB512C0A426007FF8C8381FC000725AB3B3181F013F94C7
-FC8060011F163E6D6C157E187C6D6C15FC6D6D495A6D6DEB07F06D01F0EB1FE0DA7FFEEB
-FFC0021FB6C8FC02075C020014F0030F1380423A7DB849>I<007FB9FCBA1280A36C1800
-3905786A4A>95 D<EB3FFE0003B512E0000F14F8391FF00FFE003FEB03FF6D6C7F6E7FA2
-6F7EA26C5A6C5AEA0380C8FCA2EC3FFF010FB5FC137F3901FFF87F00071380380FFE00EA
-3FF85B485A12FF5BA415FF6D5A127F263FF00713F83B1FFC1FBFFFC0390FFFFE1F0003EB
-F80F39003FE0032A257DA42E>97 D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC91
-38FE03FFDAF00013804AEB7FC00280EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FC
-A3EE1FF8A217F06E133F6EEB7FE06E14C0903AFDF001FF80903AF8FC07FE009039F03FFF
-F8D9E00F13E0D9C00390C7FC2F3A7EB935>I<903801FFC0010F13FC017F13FFD9FF8013
-802603FE0013C048485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7FC12FFA912
-7FA27F123FED01E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E006DB45A010F
-13F00101138023257DA42A>I<EE7F80ED7FFFA4150381AF903801FF81010F13F1013F13
-FD9038FFC07F0003EB001FD807FC1307000F8048487F5B123FA2485AA312FFAA127FA27F
-123FA26C6C5B000F5C6C6C5B6C6C4913C02701FF80FD13FE39007FFFF9011F13E1010113
-012F3A7DB935>I<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F804848133F
-484814C0001FEC1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127F
-A36C7E1678121F6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB51200010F
-13FC010113E025257DA42C>I<EC1FF0903801FFFC010713FF90391FF87F8090383FE0FF
-D9FFC113C0A2481381A24813016E1380A2ED3E0092C7FCA8B6FCA4000390C8FCB3ABB512
-FEA4223A7DB91D>I<161FD907FEEBFFC090387FFFE348B6EAEFE02607FE07138F260FF8
-01131F48486C138F003F15CF4990387FC7C0EEC000007F81A6003F5DA26D13FF001F5D6C
-6C4890C7FC3907FE07FE48B512F86D13E0261E07FEC8FC90CAFCA2123E123F7F6C7E90B5
-12F8EDFF8016E06C15F86C816C815A001F81393FC0000F48C8138048157F5A163FA36C15
-7F6C16006D5C6C6C495AD81FF0EB07FCD807FEEB3FF00001B612C06C6C91C7FC010713F0
-2B377DA530>I<13FFB5FCA412077EAFED7FC0913803FFF8020F13FE91381F03FFDA3C01
-138014784A7E4A14C05CA25CA291C7FCB3A3B5D8FC3F13FFA4303A7DB935>I<EA01F0EA
-07FC487EA2487EA56C5AA26C5AEA01F0C8FCA913FF127FA412077EB3A9B512F8A4153B7D
-BA1B>I<13FFB5FCA412077EB3B3ACB512FCA4163A7DB91B>108 D<01FED97FE0EB0FFC00
-FF902601FFFC90383FFF80020701FF90B512E0DA1F81903983F03FF0DA3C00903887801F
-000749DACF007F00034914DE6D48D97FFC6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB500
-83B512F0A44C257DA451>I<01FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C01
-1380000713780003497E6D4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>
-I<903801FFC0010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7E
-A2003F81491303007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C
-6C495A6C6C495A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>I<9039FF01
-FF80B5000F13F0023F13FC9138FE07FFDAF00113800003496C13C00280EB7FE091C713F0
-EE3FF8A2EE1FFCA3EE0FFEAA17FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF003
-13809139FC07FE0091383FFFF8020F13E0020390C7FC91C9FCACB512FCA42F357EA435>
-I<9038FE03F000FFEB0FFEEC3FFF91387C7F809138F8FFC000075B6C6C5A5CA29138807F
-80ED3F00150C92C7FC91C8FCB3A2B512FEA422257EA427>114 D<90383FF0383903FFFE
-F8000F13FF381FC00F383F0003007E1301007C130012FC15787E7E6D130013FCEBFFE06C
-13FCECFF806C14C06C14F06C14F81203C614FC131F9038007FFE140700F0130114007E15
-7E7E157C6C14FC6C14F8EB80019038F007F090B512C000F8140038E01FF81F257DA426>
-I<130FA55BA45BA25B5BA25A1207001FEBFFE0B6FCA3000390C7FCB21578A815F86CEB80
-F014816CEBC3E090383FFFC06D1380903803FE001D357EB425>I<01FFEC3FC0B5EB3FFF
-A4000714016C80B3A35DA25DA26C5C6E4813E06CD9C03E13FF90387FFFFC011F13F00103
-138030257DA435>I<B539F001FFF8A4000390C7EA1F00161E6E133E6C153C6E137C6C15
-786E13F8017F5CECF001013F5C14F8011F495AA2ECFC07010F5CECFE0F010791C7FC6E5A
-6D131E15BE6D13BC15FC6D5BA36E5AA26E5AA26E5AA26E5AA22D257EA432>I<B500F1B5
-38803FFFA43D07FE000FF80003E06C6C010715C082028015076C6E6C148015076C01C0ED
-0F00826E485C017FED801E5D90273FF01E7F5B17C0DAF83E147C011F90393C3FE078037C
-14F8903B0FFC781FF0F0A29139FEF00FF10107EDF9E002FF14FB6D496CB45AA24B7E6D5E
-A26D496C90C7FCA292C7FC6E5CA2023E147C023C143C40257EA445>I<B539F01FFFF0A4
-000390398003F8006C01C013E06C1407D97FE05B6D6C485A6E48C7FC90381FFC3E010F5B
-903807FEFC6D6C5A5D6D5B6D5B6E7E6E7E814A7EA24A7E903801F3FFD903E37FD907C17F
-EB0FC049486C7E4A6C7E013E80496D7E49130F00016E7EB590383FFFF8A42D257EA432>
-I<B539F001FFF8A4000390C7EA1F00161E6E133E6C153C6E137C6C15786E13F8017F5CEC
-F001013F5C14F8011F495AA2ECFC07010F5CECFE0F010791C7FC6E5A6D131E15BE6D13BC
-15FC6D5BA36E5AA26E5AA26E5AA26E5AA292C8FCA25C141E003F133E387F803C38FFC07C
-147814F8EBC1F0EBC3E06C485A387D1F80D83FFFC9FCEA1FFCEA07F02D357EA432>I
+E06C6C1380D90FF8C7FC25377BB530>53 D<49B47E010F13F0013F13FC9038FE01FF3A01
+F8007F804848EB3FC04848EB1FE0150F484814F01507121FA27F7F7F6D130F01FF14E014
+C09138E01FC06CEBF83F9138FE7F806C9038FFFE005D6C14F06C14FC6C14FF6D14806D14
+C090B612E0D803FD14F02607F07F13F848487E261FC00F13FC383F8003007F010013FE90
+C7127F151F00FE140715031501A21500A216FC7E6C14016D14F86C6C13036DEB07F06C6C
+EB0FE0D80FFEEB7FC00003B61200C614FC013F13F00103138027377CB530>56
+D<ED03E04B7EA24B7EA34B7EA24B7EA34B7EA292B57EA34A8015F302038015E1A2020780
+15C0020F80ED807FA2021F80ED003F4A80023E131FA2027E80027C7F02FC814A7FA20101
+824A7F49B77EA3498202C0C7FC010F824A147FA2011F8291C8123F4982013E151FA2017E
+82017C8101FE83B500F80107B61280A4413A7DB948>65 D<B812C017FC17FF18C028007F
+F000037F04007F717E717E171F84A2717EA74D5AA260173F4D5A4D5A4C13C0040F5B91B6
+00FCC7FCA2EFFF8002F0C713F0EF3FF8717E717E717E19807113C0A319E0A719C0A25F4D
+138019005FEF7FFE4C485AB912F018C095C7FC17F03B397DB844>I<DB3FFCEB01C00203
+B5EAC003021FECF00791B6EAFC0F01039039FC00FF3F4901C0EB1FFFD91FFEC77E494814
+03D97FF080494880485B48177F4849153F4890C9FC181F485A180F123F5B1807127FA249
+93C7FC12FFAD127F7FF003C0123FA27F001F1707A26C6C1780180F6C6D16006C6D5D6C17
+3E6C6D157ED97FF85D6D6C4A5A6DB44A5A010701C0EB0FE06D01FCEBFF80010090B548C7
+FC021F14F8020314E09126003FFEC8FC3A3B7BB945>I<B87E17F817FF18C028007FF800
+0713F09338007FF8EF1FFE717E050313807113C0A27113E0F07FF0A2F03FF8A219FC181F
+A219FEA419FFAC19FEA419FC183FA219F8187F19F0F0FFE0A24D13C04D13804D1300EF1F
+FEEF7FFC933807FFF0B912C095C7FC17FC178040397DB849>I<B912F0A426007FF8C7FC
+EF1FF8170717031701A21700A21878A3043C137C183CA41800167CA216FC150391B5FCA4
+ECF8031500167CA2163C180FA3181EA293C7FCA2183EA2183C187CA218FCA2EF01F81703
+170F173FEE01FFB9FC18F0A338397DB83F>I<B912C0A43A007FF800039338007FE0171F
+170F1707A21703A21701A318F0EE7800A41800A216F8A21501150791B5FCA4ECF8071501
+1500A21678A693C8FCADB7FCA434397DB83C>I<DB3FFCEB01C00203B5EAC003021FECF0
+0791B6EAFC0F01039039FC00FF3F4901C0EB1FFFD91FFEC77E49481403D97FF080494880
+485B48177F4849153F4890C9FC181F485A180F123F5B1807127FA24993C8FC12FFAB043F
+B61280A2127F7FDC0003EBC000123FA27F121FA26C7EA26C7F6C7F6C7F7ED97FF85C6D7E
+6DB45C010701C05B6D01FCEBFF3F010090B5EAFE0F021FECF8030203ECE0009126003FFE
+C9FC413B7BB94B>I<B612FCA439007FF800B3B3ADB612FCA41E397DB824>73
+D<B7FCA426007FF8C9FCB3ACEF0780A5170F1800A35FA25FA25F5F5E5EEE0FFE167FB8FC
+A431397DB839>76 D<B500F80403B512F06E5EA26E5ED8007FF1E000A2D97BFF161EA201
+796D5DA201786D5DA26E6C5DA36E6C4A5AA26E6C4A5AA26E6C4A5AA26E6C4A5AA26E6C14
+1EA36E6D5BA26E6D5BA26F6C5BA26F6C485AA36F6C485AA26F6C485AA26F6C48C7FCA292
+3803FF1EA36F13BCA26F13F8A2705AA2705AA213FCB500FC6D4848B612F0A2EE0F80EE07
+0054397DB85B>I<B500FC0203B512F0A28080C66C6D90390003F0006F6E5A81017B7F13
+798101787F6E7E6E7E6E7F6E7FA26E7F6E7F6E7F6E7F6F7E153F826F13806F13C06F13E0
+6F13F06F13F88117FCEE7FFEEE3FFF7013817013C17013E18218F17013F97013FDEF7FFF
+8383A28383838383187FA2183F181F01FC160FB500FC150718031801A244397DB84B>I<
+EDFFF8020FEBFF80027F14F0903A01FFC01FFC010790380007FFD91FFC010113C0D93FF0
+6D6C7E49486E7E49486E7E48496E7E48834890C86C7EA248486F1380A248486F13C0A200
+3F18E0A348486F13F0A400FF18F8AC007F18F06D5DA3003F18E0A26D5D001F18C0A26C6C
+4B13806C18006E5C6C6D4A5A6C5F6C6D4A5A6D6C4A5AD93FFC49485A6DB401075B0107D9
+C01F90C7FC010190B512FC6D6C14F0020F1480020001F8C8FC3D3B7BB948>I<B8FC17F0
+17FEEFFF8028007FF8000F13C0040113E07013F0EF7FF8EF3FFCA2EF1FFEA218FFA818FE
+A2EF3FFCA2EF7FF8EFFFF04C13E0040F13C091B7120017FC17E002F8C9FCB3A4B612FCA4
+38397DB841>I<EDFFF8020FEBFF80027F14F0903A01FFE03FFC010790380007FFD91FFC
+010113C049486D7FD97FE0EC3FF049486E7E488348496E7E4890C86C7EA248486F1380A2
+001F18C04981003F18E0A3007F18F04981A300FF18F8AC007F18F0A36D5D003F18E0A36C
+6C4B13C0A2000FDA1FC014806C6C90267FF0071300EDFFF86C903A81F07C0FFE6C903AC3
+C01E1FFC6CDA800F5BD97FE3ECBFF0D93FF36DB45AD91FFF5D010701C091C7FC01019038
+F01FFC6D6CB500F01308020F6E131C0200EBF9FC92260001FE133C9438FF80FC18FF8219
+F8A28319F0A27113E0A27113C0711380711300EF01FC3E4A7BB948>I<B712FCEEFFE017
+FC17FF28007FF8000F13C004017F707F717E717EA2717EA284A760A24D5A604D5A4D5A04
+035B041F90C8FC91B612FC17E0839139F8003FFCEE0FFF707F707F8284A2707FA584A51A
+601AF084177F1901DD3FFE13E0B600FC011F130394390FFF87C071EBFF8005011400CBEA
+1FFC443A7DB848>I<D907FF130E013FEBE01E90B5EAF83E0003ECFE7E3A07FC01FFFE39
+0FF0001F4848130F48481303491301007F140090C8FC167E5A163EA27F161E7F7F6D91C7
+FC13FC387FFFE014FEECFFF06C14FE6F7E6C816C15F06C816C81C681133F010F801301D9
+000F1480EC007F030F13C01503818100F0157FA3163FA27E17807E167F6C16007E6D14FE
+01E0495A01F813039039FF801FF800FC90B512E0D8F83F5CD8F00749C7FC39E0007FF02A
+3B7BB935>I<003FB91280A4D9F800EBF003D87FC09238007FC049161F007EC7150FA200
+7C1707A200781703A400F818E0481701A4C892C7FCB3AE010FB7FCA43B387DB742>I<B6
+00FC011FB512C0A426007FF8C8381FC000725AB3B3181F013F94C7FC8060011F163E6D6C
+157E187C6D6C15FC6D6D495A6D6DEB07F06D01F0EB1FE0DA7FFEEBFFC0021FB6C8FC0207
+5C020014F0030F1380423A7DB849>I<007FB9FCBA1280A36C18003905786A4A>95
+D<EB3FFE0003B512E0000F14F8391FF00FFE003FEB03FF6D6C7F6E7FA26F7EA26C5A6C5A
+EA0380C8FCA2EC3FFF010FB5FC137F3901FFF87F00071380380FFE00EA3FF85B485A12FF
+5BA415FF6D5A127F263FF00713F83B1FFC1FBFFFC0390FFFFE1F0003EBF80F39003FE003
+2A257DA42E>97 D<13FFB5FCA412077EAF4AB47E020F13F0023F13FC9138FE03FFDAF000
+13804AEB7FC00280EB3FE091C713F0EE1FF8A217FC160FA217FEAA17FCA3EE1FF8A217F0
+6E133F6EEB7FE06E14C0903AFDF001FF80903AF8FC07FE009039F03FFFF8D9E00F13E0D9
+C00390C7FC2F3A7EB935>I<903801FFC0010F13FC017F13FFD9FF8013802603FE0013C0
+48485AEA0FF8121F13F0123F6E13804848EB7F00151C92C7FC12FFA9127FA27F123FED01
+E06C7E15036C6CEB07C06C6C14806C6C131FC69038C07E006DB45A010F13F00101138023
+257DA42A>I<EE7F80ED7FFFA4150381AF903801FF81010F13F1013F13FD9038FFC07F00
+03EB001FD807FC1307000F8048487F5B123FA2485AA312FFAA127FA27F123FA26C6C5B00
+0F5C6C6C5B6C6C4913C02701FF80FD13FE39007FFFF9011F13E1010113012F3A7DB935>
+I<903803FF80011F13F0017F13FC3901FF83FE3A03FE007F804848133F484814C0001FEC
+1FE05B003FEC0FF0A2485A16F8150712FFA290B6FCA301E0C8FCA4127FA36C7E1678121F
+6C6C14F86D14F000071403D801FFEB0FE06C9038C07FC06DB51200010F13FC010113E025
+257DA42C>I<EC1FF0903801FFFC010713FF90391FF87F8090383FE0FFD9FFC113C0A248
+1381A24813016E1380A2ED3E0092C7FCA8B6FCA4000390C8FCB3ABB512FEA4223A7DB91D
+>I<161FD907FEEBFFC090387FFFE348B6EAEFE02607FE07138F260FF801131F48486C13
+8F003F15CF4990387FC7C0EEC000007F81A6003F5DA26D13FF001F5D6C6C4890C7FC3907
+FE07FE48B512F86D13E0261E07FEC8FC90CAFCA2123E123F7F6C7E90B512F8EDFF8016E0
+6C15F86C816C815A001F81393FC0000F48C8138048157F5A163FA36C157F6C16006D5C6C
+6C495AD81FF0EB07FCD807FEEB3FF00001B612C06C6C91C7FC010713F02B377DA530>I<
+13FFB5FCA412077EAFED7FC0913803FFF8020F13FE91381F03FFDA3C01138014784A7E4A
+14C05CA25CA291C7FCB3A3B5D8FC3F13FFA4303A7DB935>I<EA01F0EA07FC487EA2487E
+A56C5AA26C5AEA01F0C8FCA913FF127FA412077EB3A9B512F8A4153B7DBA1B>I<13FFB5
+FCA412077EB3B3ACB512FCA4163A7DB91B>108 D<01FED97FE0EB0FFC00FF902601FFFC
+90383FFF80020701FF90B512E0DA1F81903983F03FF0DA3C00903887801F000749DACF00
+7F00034914DE6D48D97FFC6D7E4A5CA24A5CA291C75BB3A3B5D8FC1FB50083B512F0A44C
+257DA451>I<01FEEB7FC000FF903803FFF8020F13FE91381F03FFDA3C01138000071378
+0003497E6D4814C05CA25CA291C7FCB3A3B5D8FC3F13FFA430257DA435>I<903801FFC0
+010F13F8017F13FFD9FF807F3A03FE003FE048486D7E48486D7E48486D7EA2003F814913
+03007F81A300FF1680A9007F1600A3003F5D6D1307001F5DA26C6C495A6C6C495A6C6C49
+5A6C6C6CB45A6C6CB5C7FC011F13FC010113C029257DA430>I<9039FF01FF80B5000F13
+F0023F13FC9138FE07FFDAF00113800003496C13C00280EB7FE091C713F0EE3FF8A2EE1F
+FCA3EE0FFEAA17FC161FA217F8163F17F06E137F6E14E06EEBFFC0DAF00313809139FC07
+FE0091383FFFF8020F13E0020390C7FC91C9FCACB512FCA42F357EA435>I<9038FE03F0
+00FFEB0FFEEC3FFF91387C7F809138F8FFC000075B6C6C5A5CA29138807F80ED3F00150C
+92C7FC91C8FCB3A2B512FEA422257EA427>114 D<90383FF0383903FFFEF8000F13FF38
+1FC00F383F0003007E1301007C130012FC15787E7E6D130013FCEBFFE06C13FCECFF806C
+14C06C14F06C14F81203C614FC131F9038007FFE140700F0130114007E157E7E157C6C14
+FC6C14F8EB80019038F007F090B512C000F8140038E01FF81F257DA426>I<130FA55BA4
+5BA25B5BA25A1207001FEBFFE0B6FCA3000390C7FCB21578A815F86CEB80F014816CEBC3
+E090383FFFC06D1380903803FE001D357EB425>I<01FFEC3FC0B5EB3FFFA4000714016C
+80B3A35DA25DA26C5C6E4813E06CD9C03E13FF90387FFFFC011F13F00103138030257DA4
+35>I<B539F001FFF8A4000390C7EA1F00161E6E133E6C153C6E137C6C15786E13F8017F
+5CECF001013F5C14F8011F495AA2ECFC07010F5CECFE0F010791C7FC6E5A6D131E15BE6D
+13BC15FC6D5BA36E5AA26E5AA26E5AA26E5AA22D257EA432>I<B500F1B538803FFFA43D
+07FE000FF80003E06C6C010715C082028015076C6E6C148015076C01C0ED0F00826E485C
+017FED801E5D90273FF01E7F5B17C0DAF83E147C011F90393C3FE078037C14F8903B0FFC
+781FF0F0A29139FEF00FF10107EDF9E002FF14FB6D496CB45AA24B7E6D5EA26D496C90C7
+FCA292C7FC6E5CA2023E147C023C143C40257EA445>I<B539F01FFFF0A4000390398003
+F8006C01C013E06C1407D97FE05B6D6C485A6E48C7FC90381FFC3E010F5B903807FEFC6D
+6C5A5D6D5B6D5B6E7E6E7E814A7EA24A7E903801F3FFD903E37FD907C17FEB0FC049486C
+7E4A6C7E013E80496D7E49130F00016E7EB590383FFFF8A42D257EA432>I<B539F001FF
+F8A4000390C7EA1F00161E6E133E6C153C6E137C6C15786E13F8017F5CECF001013F5C14
+F8011F495AA2ECFC07010F5CECFE0F010791C7FC6E5A6D131E15BE6D13BC15FC6D5BA36E
+5AA26E5AA26E5AA26E5AA292C8FCA25C141E003F133E387F803C38FFC07C147814F8EBC1
+F0EBC3E06C485A387D1F80D83FFFC9FCEA1FFCEA07F02D357EA432>I
 E
 %EndDVIPSBitmapFont
 %DVIPSBitmapFont: Ff ecbx1440 14.4 24
@@ -764,17 +768,15 @@ F0130013F8023C5C0001017C147EED01F813FC027814FE0000D9F8005BA24A13FC017C5D
 075C130FA2495A1220D8383FC8FCEA3FFEA25B5BEA0FE023367FA426>I
 E
 %EndDVIPSBitmapFont
-%DVIPSBitmapFont: Fh ecrm1000 10 70
-/Fh 70 123 df<DA0FF813FC91397FFF07FF903B01F807DF83C0903A07E001FF0F903B1F
+%DVIPSBitmapFont: Fh ecrm1000 10 69
+/Fh 69 123 df<DA0FF813FC91397FFF07FF903B01F807DF83C0903A07E001FF0F903B1F
 8007FE1FE090393F000FFC137E16F85B9338F007804848010790C7FC1503ACB812F8A328
 01F80003F0C7FCB3AB486C497E267FFFE0B512F0A3333B7FBA30>27
 D<EC0FF8EC7FFE903901F80780903907E001C090391F8000E090383F0007017E497EA25B
 A2485A6F5AED018092C8FCA9ED03F0B7FCA33901F8000F1503B3AA486C497E267FFFE0B5
-12C0A32A3B7FBA2E>I<EC0FFC91387FFF70903901F803F0903807E00790381F800FEB3F
-00137EA25B150748481303ADB7FCA33901F80003B3AB486C497E267FFFE0B512C0A32A3B
-7FBA2E>I<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485AA212075B12
-0F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F12077F1203A26C
-7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>40
+12C0A32A3B7FBA2E>I<146014E0EB01C0EB0380EB0700130E131E5B5BA25B485AA2485A
+A212075B120F90C7FCA25A121EA2123EA35AA65AB2127CA67EA3121EA2121F7EA27F1207
+7F1203A26C7EA26C7E1378A27F7F130E7FEB0380EB01C0EB00E01460135278BD20>40
 D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A2137C133C133E131EA2131F7F
 A21480A3EB07C0A6EB03E0B2EB07C0A6EB0F80A31400A25B131EA2133E133C137C1378A2
 5BA2485A485AA2485A48C7FC120E5A5A5A5A5A13527CBD20>I<1530B3A8B912FCA2C800
@@ -1069,7 +1071,7 @@ letter
 1 0 bop 0 201 a Fi(SALOME)54 b(Kernel)g(resources)f(fo)l(r)g(develop)t
 (er)p 0 315 3900 24 v 0 428 a Fh(An)n(toine)28 b(Y)-7
 b(essa)n(y)n(an,)25 b(P)n(aul)j(Rascle)1735 b(V)-7 b(ersion)27
-b(0.1)g(Jan)n(uary)e(16,)i(2002)0 734 y Fg(This)33 b(do)r(cument)g
+b(0.2)g(Jan)n(uary)e(28,)i(2005)0 734 y Fg(This)33 b(do)r(cument)g
 (describ)r(es)g(the)g(development)f(environment)g(fo)n(r)i(C++)e(and)h
 (Python.)53 b(Mak)n(e\034les)32 b(generation)g(and)h(usage)0
 848 y(a)n(re)40 b(intro)r(duced)f(in)h(another)g(do)r(cument:)61
@@ -1105,7 +1107,7 @@ g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
 b(5)315 3101 y(2.1.2)94 b(usage)79 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h
 (.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
 h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
-(.)h(.)134 b(5)125 3257 y(2.2)83 b(CORBA)28 b(exceptions)f(.)41
+(.)h(.)134 b(6)125 3257 y(2.2)83 b(CORBA)28 b(exceptions)f(.)41
 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
 (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
 f(.)h(.)f(.)h(.)f(.)h(.)134 b(6)315 3414 y(2.2.1)94 b(de\034nition)67
@@ -1116,13 +1118,13 @@ b(usage)79 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
 (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
 f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
 b(7)0 3810 y Fe(3)77 b(Miscellaneous)29 b(to)s(ols)2919
-b(7)125 3966 y Fh(3.1)83 b(Singleton)c(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h
+b(8)125 3966 y Fh(3.1)83 b(Singleton)c(.)42 b(.)f(.)h(.)f(.)h(.)f(.)h
 (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
 f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
-(.)f(.)h(.)f(.)h(.)134 b(7)315 4123 y(3.1.1)94 b(De\034nition)50
+(.)f(.)h(.)f(.)h(.)134 b(8)315 4123 y(3.1.1)94 b(De\034nition)50
 b(.)42 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)
 h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f
-(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(7)315 4279 y(3.1.2)94
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134 b(8)315 4279 y(3.1.2)94
 b(Usage)63 b(.)42 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)f(.)h
 (.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
 f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)134
@@ -1164,280 +1166,302 @@ b(When)32 b(an)g(end)g(user)f(is)g(confron)n(ted)g(to)h(suc)n(h)f(a)h
 (eople)f(in)g(c)n(harge)e(of)i(SALOME)h(installation,)0
 1366 y(or)i(to)g(the)h(dev)n(elopmen)n(t)f(team,)h(follo)n(wing)e(the)i
 (kind)g(of)f(error.)0 1658 y Fd(1.2)112 b(C++)38 b(Macros)g(for)f
-(trace)g(and)i(debug)0 1868 y Fh(SALOME)23 b(pro)n(vides)d(C++)h
-(macros)g(for)g(trace)h(and)f(debug.)35 b(These)22 b(macros)e(are)i(in)
-g Fc(SALOME/src/utils)o(/u)o(ti)o(lit)o(ie)o(s.)o(h)0
-1981 y Fh(and)30 b(this)h(\034le)g(m)n(ust)g(b)r(e)g(included)g(in)g
-(C++)f(source.)45 b(Some)30 b(macros)f(are)h(activ)-5
-b(ated)30 b(only)g(in)h(debug)g(mo)r(de,)g(others)f(are)0
-2095 y(alw)n(a)n(ys)c(activ)-5 b(ated.)37 b(T)-7 b(o)27
-b(activ)-5 b(ate)28 b(the)g(debug)f(mo)r(de,)h Fc(_DEBUG_)d
-Fh(m)n(ust)j(b)r(e)g(de\034ned,)g(whic)n(h)g(is)g(the)g(case)f(when)h
-(SALOME)0 2208 y(Mak)n(e\034les)k(are)g(generated)f(from)i
-(con\034gure,)g(without)g(options.)53 b(When)33 b Fc(_DEBUG_)d
-Fh(is)j(unde\034ned)g(\(release)f(mo)r(de\),)j(the)0
-2322 y(debug)c(mo)r(de)h(macros)d(are)i(de\034ned)h(empt)n(y)f(\(they)h
-(do)f(nothing\).)48 b(So,)32 b(when)g(switc)n(hing)f(from)g(debug)g(to)
-g(release,)g(it)h(is)0 2436 y(p)r(ossible)27 b(\(and)h(recommended\))f
-(to)g(let)h(the)g(macro)f(calls)f(unc)n(hanged)h(in)h(the)g(source.)0
-2592 y(All)23 b(the)h(macros)d(writing)i(on)f(the)i(standard)e(output)h
-(start)g(b)n(y)f(\035ushing)h(the)g(standard)f(error.)34
-b(A)n(t)23 b(the)g(end)h(of)f(the)g(displa)n(y)0 2706
-y(those)k(macros)f(\035ush)i(the)g(standard)e(output.)0
-2862 y(T)-7 b(w)n(o)27 b(informations)f(are)h(systematically)f(added)i
-(in)g(fron)n(t)f(of)g(the)h(information)f(displa)n(y)n(ed:)125
-3102 y Fb(\017)41 b Fh(the)28 b(name)f(of)g(the)h(source)f(\034le)g(in)
-h(whic)n(h)g(the)g(macros)e(is)h(set;)125 3282 y Fb(\017)41
-b Fh(the)28 b(line)f(n)n(um)n(b)r(er)h(of)f(the)h(source)e(\034le)i(at)
-g(whic)n(h)f(the)h(macro)e(is)i(set.)0 3554 y Fe(1.2.1)94
-b(Macros)32 b(de\034ned)f(in)g(debug)h(and)g(release)f(mo)s(des)0
-3764 y(INF)m(OS_COMPILA)-8 b(TION)84 b Fh(The)30 b(C++)f(macro)g
-Fc(INFOS_COMPILATIO)o(N)24 b Fh(writes)30 b(on)g(the)g(standard)f
-(output)i(infor-)0 3878 y(mations)c(ab)r(out)h(the)f(compiling)h(pro)r
-(cess:)125 4117 y Fb(\017)41 b Fh(the)28 b(name)f(of)g(the)h(compiler)f
-(:)37 b Fc(g++,)42 b(KCC,)g(CC,)g(pgCC)p Fh(;)125 4297
-y Fb(\017)f Fh(the)28 b(date)f(and)g(the)h(time)g(of)g(the)g(compiling)
-f(pro)r(cessing)f(pro)r(cess.)0 4537 y(This)35 b(macro)f
-Fc(INFOS_COMPILATIO)o(N)29 b Fh(do)r(es)35 b(not)g(ha)n(v)n(e)f(an)n(y)
-g(argumen)n(t.)58 b(Moreo)n(v)n(er,)35 b(it)g(is)g(de\034ned)h(in)f(b)r
-(oth)h(compiling)0 4650 y(mo)r(de)28 b(:)37 b Fc(_DEBUG_)24
-b Fh(and)k Fc(_RELEASE_)p Fh(.)0 4807 y(Example)g(:)0
-5046 y Fc(#include)40 b("utilities.h")0 5160 y(int)i(main\(int)e(argc)i
-(,)i(char)d(**argv\))0 5274 y({)87 5387 y(INFOS_COMPILATIO)o(N;)p
-eop
+(trace)g(and)i(debug)0 1868 y Fh(SALOME)119 b(pro)n(vides)e(C++)h
+(macros)f(for)i(trace)f(and)g(debug.)310 b(These)119
+b(macros)e(are)h(in)0 1981 y Fc(SALOME/src/SALOM)o(EL)o(oca)o(lT)o(ra)o
+(ce/)o(ut)o(il)o(iti)o(es)o(.h)44 b Fh(and)50 b(this)g(\034le)h(m)n
+(ust)f(b)r(e)g(included)h(in)g(C++)e(source.)103 b(Some)0
+2095 y(macros)22 b(are)g(activ)-5 b(ated)23 b(only)g(in)g(debug)h(mo)r
+(de,)g(others)e(are)h(alw)n(a)n(ys)e(activ)-5 b(ated.)35
+b(T)-7 b(o)23 b(activ)-5 b(ate)23 b(the)h(debug)f(mo)r(de,)h
+Fc(_DEBUG_)0 2208 y Fh(m)n(ust)i(b)r(e)h(de\034ned,)g(whic)n(h)f(is)h
+(the)f(case)g(when)g(SALOME)h(Mak)n(e\034les)e(are)h(generated)f(from)h
+(con\034gure,)f(without)i(options.)0 2322 y(When)g Fc(_DEBUG_)c
+Fh(is)j(unde\034ned)h(\(release)f(mo)r(de:)36 b Fc(configure)k
+(\025disable-debug)d(\025enable-producti)o(on)p Fh(\),)21
+b(the)26 b(debug)0 2436 y(mo)r(de)i(macros)e(are)h(de\034ned)h(empt)n
+(y)g(\(they)h(do)e(nothing\).)38 b(So,)28 b(when)g(switc)n(hing)g(from)
+f(debug)h(to)g(release,)e(it)j(is)e(p)r(ossible)0 2549
+y(\(and)h(recommended\))f(to)g(let)h(the)g(macro)e(calls)h(unc)n
+(hanged)g(in)h(the)g(source.)0 2706 y(All)21 b(the)g(macros)e(generate)
+g(trace)h(messages,)h(stored)e(in)i(a)g(circular)e(bu\033er)i(p)r(o)r
+(ol.)34 b(A)21 b(separate)e(thread)h(reads)g(the)h(messages)0
+2819 y(in)27 b(the)g(bu\033er)f(p)r(o)r(ol,)h(and,)g(dep)r(ending)g(on)
+f(options)g(giv)n(en)f(at)i(SALOME)g(start,)f(writes)g(the)h(messages)e
+(on)h(the)h(standard)0 2933 y(output,)h(a)f(\034le,)h(or)f(send)g(them)
+h(via)f(CORBA,)h(in)g(case)e(of)i(a)f(m)n(ulti)h(mac)n(hine)f
+(con\034guration.)0 3089 y(Three)g(informations)g(are)f(systematically)
+h(added)g(in)h(fron)n(t)f(of)g(the)h(information)f(displa)n(y)n(ed:)125
+3329 y Fb(\017)41 b Fh(the)28 b(thread)f(n)n(um)n(b)r(er)g(from)g(whic)
+n(h)h(the)f(message)g(come)g(from;)125 3509 y Fb(\017)41
+b Fh(the)28 b(name)f(of)g(the)h(source)f(\034le)g(in)h(whic)n(h)g(the)g
+(macros)e(is)h(set;)125 3689 y Fb(\017)41 b Fh(the)28
+b(line)f(n)n(um)n(b)r(er)h(of)f(the)h(source)e(\034le)i(at)g(whic)n(h)f
+(the)h(macro)e(is)i(set.)0 3961 y Fe(1.2.1)94 b(Macros)32
+b(de\034ned)f(in)g(debug)h(and)g(release)f(mo)s(des)0
+4171 y(INF)m(OS_COMPILA)-8 b(TION)84 b Fh(The)28 b(C++)g(macro)g
+Fc(INFOS_COMPILATI)o(ON)22 b Fh(writes)29 b(on)f(the)h(trace)f
+(bu\033er)h(p)r(o)r(ol)g(infor-)0 4285 y(mations)e(ab)r(out)h(the)f
+(compiling)h(pro)r(cess:)125 4525 y Fb(\017)41 b Fh(the)28
+b(name)f(of)g(the)h(compiler)f(:)37 b Fc(g++,)42 b(KCC,)g(CC,)g(pgCC)p
+Fh(;)125 4705 y Fb(\017)f Fh(the)28 b(date)f(and)g(the)h(time)g(of)g
+(the)g(compiling)f(pro)r(cessing)f(pro)r(cess.)0 4944
+y(This)35 b(macro)f Fc(INFOS_COMPILATIO)o(N)29 b Fh(do)r(es)35
+b(not)g(ha)n(v)n(e)f(an)n(y)g(argumen)n(t.)58 b(Moreo)n(v)n(er,)35
+b(it)g(is)g(de\034ned)h(in)f(b)r(oth)h(compiling)0 5058
+y(mo)r(de)28 b(:)37 b Fc(_DEBUG_)24 b Fh(and)k Fc(_RELEASE_)p
+Fh(.)0 5214 y(Example)g(:)p eop
 %%Page: 3 3
 3 2 bop 0 -167 3900 5 v 0 -200 a Fe(1.)73 b(T)-8 b(race)34
-b(and)e(debug)f(Utilities)2644 b Fh(3)87 162 y Fc(...)0
-275 y(})0 548 y Fe(INF)m(OS\(str\))83 b Fh(In)39 b(b)r(oth)f(compiling)
-g(mo)r(de)g Fc(_DEBUG_)d Fh(and)j Fc(_RELEASE_)p Fh(,)f(The)h(C++)g
-(macro)e Fc(INFOS)g Fh(writes)i(on)g(the)0 661 y(standard)27
-b(output)h(the)g(string)e(whic)n(h)i(has)f(b)r(een)h(passed)f(in)g
-(argumen)n(t)g(b)n(y)g(the)h(user.)0 818 y(Example)g(:)0
-1057 y Fc(#include)40 b("utilities.h")0 1171 y(int)i(main\(int)e(argc)i
-(,)i(char)d(**argv\))0 1285 y({)87 1398 y(...)87 1512
-y(INFOS\("NORMAL)d(END)43 b(OF)f(THE)h(PROCESS"\);)87
-1625 y(return)e(0;)0 1739 y(})0 1978 y Fh(displa)n(ys)26
-b(:)0 2218 y Fc(main.cxx)40 b([5])i(:)i(NORMAL)d(END)h(OF)h(THE)f
-(PROCESS)0 2490 y Fe(1.2.2)94 b(Macros)32 b(de\034ned)f(only)g(in)h
-(debug)f(mo)s(de)0 2701 y(MESSA)m(GE\(str\))83 b Fh(In)19
-b Fc(_DEBUG_)d Fh(compiling)j(mo)r(de)g(only)-7 b(,)20
-b(the)f(C++)g(macro)e Fc(MESSAGE)f Fh(writes)j(on)f(the)i(standard)e
-(output)0 2814 y(the)34 b(string)g(whic)n(h)g(has)f(b)r(een)i(passed)e
-(in)i(argumen)n(t)e(b)n(y)g(the)i(user.)56 b(In)34 b
-Fc(_RELEASE_)c Fh(compiling)k(mo)r(de,)i(this)e(macro)f(is)0
-2928 y(blank.)0 3084 y(Example)28 b(:)0 3324 y Fc(#include)40
-b("utilities.h")0 3437 y(#include)g(<string>)0 3551 y(using)h
-(namespace)f(std;)0 3664 y(int)i(main\(int)e(argc)i(,)i(char)d
-(**argv\))0 3778 y({)87 3892 y(...)87 4005 y(const)h(char)f(*str)h(=)i
-("Salome";)87 4119 y(MESSAGE\(str\);)87 4232 y(...)e(const)g(string)f
-(st;)87 4346 y(st)i(=)g("Aster";)87 4459 y(MESSAGE\(c_str\(st)o(+")37
-b(and)42 b(CASTEM"\)\);)87 4573 y(return)f(0;)0 4687
-y(})0 4926 y Fh(displa)n(ys)26 b(:)0 5166 y Fc(-)43 b(Trace)f(main.cxx)
-e([8])i(:)h(Salome)0 5279 y(-)g(Trace)f(main.cxx)e([12])i(:)h(Aster)e
-(and)i(CASTEM)p eop
+b(and)e(debug)f(Utilities)2644 b Fh(3)0 162 y Fc(#include)40
+b("utilities.h")0 275 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
+389 y({)87 502 y(INFOS_COMPILATIO)o(N;)87 616 y(...)0
+730 y(})0 1002 y Fe(INF)m(OS\(str\))83 b Fh(In)23 b(b)r(oth)g
+(compiling)f(mo)r(de)h Fc(_DEBUG_)d Fh(and)i Fc(_RELEASE_)p
+Fh(,)e(The)j(C++)f(macro)f Fc(INFOS)f Fh(writes)j(on)f(the)h(trace)0
+1116 y(bu\033er)28 b(p)r(o)r(ol)f(the)h(string)f(whic)n(h)g(has)g(b)r
+(een)h(passed)f(in)h(argumen)n(t)e(b)n(y)i(the)g(user.)0
+1272 y(Example)g(:)0 1512 y Fc(#include)40 b("utilities.h")0
+1625 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
+1739 y({)87 1852 y(...)87 1966 y(INFOS\("NORMAL)d(END)43
+b(OF)f(THE)h(PROCESS"\);)87 2080 y(return)e(0;)0 2193
+y(})0 2433 y Fh(displa)n(ys)26 b(:)0 2672 y Fc(main.cxx)40
+b([5])i(:)i(NORMAL)d(END)h(OF)h(THE)f(PROCESS)0 3058
+y Fe(INTERR)m(UPTION\(str\))84 b Fh(In)72 b(b)r(oth)h(compiling)e(mo)r
+(de)i Fc(_DEBUG_)c Fh(and)j Fc(_RELEASE_)p Fh(,)80 b(The)72
+b(C++)f(macro)0 3172 y Fc(INTERRUPTION)34 b Fh(writes)k(on)g(the)h
+(trace)f(bu\033er)g(p)r(o)r(ol)h(the)g(string,)h(with)g(a)e(sp)r(ecial)
+g Fc(ABORT)e Fh(t)n(yp)r(e.)71 b(When)39 b(the)g(thread)0
+3285 y(in)28 b(c)n(harge)e(of)h(collecting)g(messages)f(\034nds)i(this)
+f(message,)g(it)h(terminates)f(the)h(application,)f(after)g(message)f
+(treatmen)n(t.)0 3558 y Fe(IMMEDIA)-8 b(TE_ABOR)g(T\(str\))83
+b Fh(In)48 b(b)r(oth)f(compiling)g(mo)r(de)h Fc(_DEBUG_)c
+Fh(and)j Fc(_RELEASE_)p Fh(,)i(The)e(C++)f(macro)0 3672
+y Fc(IMMEDIATE_ABORT)29 b Fh(writes)35 b(the)g(message)f(immediately)h
+(on)g(standard)f(error)f(and)i(exits)g(the)h(application.)59
+b(Remain-)0 3785 y(ing)27 b(messages)f(not)i(treated)f(b)n(y)g(the)h
+(message)e(collector)g(thread)h(are)g(lost.)0 4058 y
+Fe(1.2.2)94 b(Macros)32 b(de\034ned)f(only)g(in)h(debug)f(mo)s(de)0
+4268 y(MESSA)m(GE\(str\))83 b Fh(In)32 b Fc(_DEBUG_)e
+Fh(compiling)i(mo)r(de)g(only)-7 b(,)33 b(the)g(C++)f(macro)f
+Fc(MESSAGE)e Fh(writes)j(on)g(the)g(trace)g(bu\033er)0
+4381 y(p)r(o)r(ol)d(the)g(string)f(whic)n(h)h(has)f(b)r(een)i(passed)e
+(in)h(argumen)n(t)e(b)n(y)i(the)g(user.)40 b(In)29 b
+Fc(_RELEASE_)d Fh(compiling)i(mo)r(de,)h(this)g(macro)0
+4495 y(is)e(blank.)0 4652 y(Example)h(:)0 4891 y Fc(#include)40
+b("utilities.h")0 5005 y(#include)g(<string>)0 5118 y(using)h
+(namespace)f(std;)0 5232 y(int)i(main\(int)e(argc)i(,)i(char)d
+(**argv\))0 5345 y({)p eop
 %%Page: 4 4
 4 3 bop 0 -167 3900 5 v 0 -200 a Fe(1.)73 b(T)-8 b(race)34
-b(and)e(debug)f(Utilities)2644 b Fh(4)0 162 y Fe(BEGIN_OF\(func_name\))
-82 b Fh(In)28 b Fc(_DEBUG_)c Fh(compiling)i(mo)r(de,)i(The)f(C++)f
-(macro)g Fc(BEGIN_OF)d Fh(app)r(ends)k(the)h(string)0
-275 y Fc("Begin)41 b(of)i(")27 b Fh(to)g(the)h(one)e(passed)h(in)g
-(argumen)n(t)g(b)n(y)g(the)g(user)g(and)g(displa)n(ys)f(the)i(result)f
-(on)g(the)g(standard)g(output.)37 b(In)0 389 y Fc(_RELEASE_)24
-b Fh(compiling)j(mo)r(de,)h(this)g(macro)e(is)h(blank.)0
-545 y(Example)h(:)0 751 y Fc(#include)40 b("utilities.h")0
-865 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
-978 y({)87 1092 y(BEGIN_OF\(argv[0])o(\);)87 1205 y(return)g(0;)0
-1319 y(})0 1524 y Fh(displa)n(ys)26 b(:)0 1730 y Fc(-)43
-b(Trace)f(main.cxx)e([3])i(:)h(Begin)f(of)g(a.out)0 1997
-y Fe(END_OF\(func_name\))82 b Fh(In)47 b Fc(_DEBUG_)c
+b(and)e(debug)f(Utilities)2644 b Fh(4)87 162 y Fc(...)87
+275 y(const)42 b(char)f(*str)h(=)i("Salome";)87 389 y(MESSAGE\(str\);)
+87 502 y(...)e(const)g(string)f(st;)87 616 y(st)i(=)g("Aster";)87
+730 y(MESSAGE\(c_str\(st)o(+")37 b(and)42 b(CASTEM"\)\);)87
+843 y(return)f(0;)0 957 y(})0 1192 y Fh(displa)n(ys)26
+b(:)0 1428 y Fc(-)43 b(Trace)f(main.cxx)e([8])i(:)h(Salome)0
+1541 y(-)g(Trace)f(main.cxx)e([12])i(:)h(Aster)e(and)i(CASTEM)0
+1813 y Fe(BEGIN_OF\(func_name\))82 b Fh(In)28 b Fc(_DEBUG_)c
+Fh(compiling)i(mo)r(de,)i(The)f(C++)f(macro)g Fc(BEGIN_OF)d
+Fh(app)r(ends)k(the)h(string)0 1927 y Fc("Begin)41 b(of)i(")26
+b Fh(to)h(the)g(one)f(passed)g(in)h(argumen)n(t)e(b)n(y)i(the)g(user)f
+(and)g(displa)n(ys)g(the)h(result)f(on)h(the)g(trace)f(bu\033er)g(p)r
+(o)r(ol.)37 b(In)0 2040 y Fc(_RELEASE_)24 b Fh(compiling)j(mo)r(de,)h
+(this)g(macro)e(is)h(blank.)0 2197 y(Example)h(:)0 2432
+y Fc(#include)40 b("utilities.h")0 2546 y(int)i(main\(int)e(argc)i(,)i
+(char)d(**argv\))0 2659 y({)87 2773 y(BEGIN_OF\(argv[0])o(\);)87
+2886 y(return)g(0;)0 3000 y(})0 3235 y Fh(displa)n(ys)26
+b(:)0 3471 y Fc(-)43 b(Trace)f(main.cxx)e([3])i(:)h(Begin)f(of)g(a.out)
+0 3743 y Fe(END_OF\(func_name\))82 b Fh(In)47 b Fc(_DEBUG_)c
 Fh(compiling)i(mo)r(de,)51 b(The)46 b(C++)f(macro)f Fc(END_OF)g
-Fh(app)r(ends)i(the)g(string)0 2110 y Fc("Normal)41 b(end)h(of)h(")38
-b Fh(to)h(the)h(one)f(passed)f(in)h(argumen)n(t)g(b)n(y)f(the)i(user)e
-(and)h(displa)n(ys)f(the)i(result)f(on)g(the)g(standard)0
-2224 y(output.)e(In)28 b Fc(_RELEASE_)c Fh(compiling)j(mo)r(de,)h(this)
-g(macro)e(is)h(blank.)0 2380 y(Example)h(:)0 2586 y Fc(#include)40
-b("utilities.h")0 2700 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
-2813 y({)87 2927 y(END_OF\(argv[0]\);)87 3040 y(return)g(0;)0
-3154 y(})0 3360 y Fh(displa)n(ys)26 b(:)0 3565 y Fc(-)43
-b(Trace)f(main.cxx)e([4])i(:)h(Normal)e(end)i(of)f(a.out)0
-3832 y Fe(SCR)m(UTE\(v)-5 b(ar\))84 b Fh(In)30 b Fc(_DEBUG_)c
-Fh(compiling)j(mo)r(de,)h(The)f(C++)f(macro)g Fc(SCRUTE)f
-Fh(displa)n(ys)h(its)h(argumen)n(t)f(whic)n(h)h(is)g(an)0
-3946 y(application)21 b(v)-5 b(ariable)22 b(follo)n(w)n(ed)f(b)n(y)h
-(the)g(v)-5 b(alue)22 b(of)g(the)h(v)-5 b(ariable.)34
-b(In)22 b Fc(_RELEASE_)d Fh(compiling)j(mo)r(de,)h(this)f(macro)f(is)h
-(blank.)0 4102 y(Example)28 b(:)0 4308 y Fc(#include)40
-b("utilities.h")0 4421 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
-4535 y({)87 4648 y(const)h(int)g(i=999;)87 4762 y(if\()g(i)i(>)f(0)g
-(\))g(SCRUTE\(i\))d(;)j(i=i+1;)87 4875 y(return)e(0;)0
-4989 y(})0 5195 y Fh(displa)n(ys)26 b(:)0 5400 y Fc(-)43
-b(Trace)f(main.cxx)e([5])i(:)h(i=999)p eop
+Fh(app)r(ends)i(the)g(string)0 3856 y Fc("Normal)41 b(end)h(of)h(")32
+b Fh(to)g(the)i(one)e(passed)g(in)h(argumen)n(t)e(b)n(y)h(the)h(user)f
+(and)h(displa)n(ys)e(the)i(result)g(on)f(the)h(trace)f(bu\033er)0
+3970 y(p)r(o)r(ol.)37 b(In)27 b Fc(_RELEASE_)d Fh(compiling)j(mo)r(de,)
+h(this)g(macro)e(is)i(blank.)0 4126 y(Example)g(:)0 4362
+y Fc(#include)40 b("utilities.h")0 4475 y(int)i(main\(int)e(argc)i(,)i
+(char)d(**argv\))0 4589 y({)87 4702 y(END_OF\(argv[0]\);)87
+4816 y(return)g(0;)0 4929 y(})0 5165 y Fh(displa)n(ys)26
+b(:)0 5400 y Fc(-)43 b(Trace)f(main.cxx)e([4])i(:)h(Normal)e(end)i(of)f
+(a.out)p eop
 %%Page: 5 5
 5 4 bop 0 -167 3900 5 v 0 -200 a Fe(2.)73 b(Exceptions)3255
-b Fh(5)0 162 y Fe(ASSER)-8 b(T\(condition\))82 b Fh(In)33
-b Fc(_DEBUG_)c Fh(compiling)i(mo)r(de)i(only)-7 b(,)33
-b(The)f(C++)f(macro)g Fc(ASSERT)e Fh(c)n(hec)n(ks)i(the)i(expression)0
-275 y(passed)23 b(in)h(argumen)n(t)f(to)g(b)r(e)i(not)e(NULL.)i(If)f
-(it)g(is)g(NULL)g(the)g(pro)r(cess)f(is)g(stopp)r(ed)h(and)g(the)g
-(condition)g(is)f(written)h(on)g(the)0 389 y(standard)30
-b(output.)47 b(In)31 b Fc(_RELEASE_)c Fh(compiling)j(mo)r(de,)i(this)f
-(macro)e(is)i(blank.)46 b(N.B.)31 b(:)43 b(if)32 b Fc(ASSERT)c
-Fh(is)i(already)g(de\034ned,)0 502 y(this)e(macro)e(is)i(ignored.)0
-659 y(Example)g(:)0 898 y Fc(#include)40 b("utilities.h")0
-1012 y(...)0 1126 y(const)h(char)h(*ptrS)g(=)h(fonc\(\);)0
-1239 y(ASSERT\(ptrS!=NUL)o(L\))o(;)0 1353 y(cout)f(<<)h
-(strlen\(ptrS\);)0 1466 y(float)e(table[10];)0 1580 y(int)h(k;)0
-1693 y(...)0 1807 y(ASSERT\(k<10\);)0 1921 y(cout)g(<<)h(table[k];)0
-2259 y Ff(2)131 b(Exceptions)0 2516 y Fd(2.1)112 b(C++)38
-b(exceptions:)49 b(class)38 b(SALOME_Exception)0 2727
-y Fe(2.1.1)94 b(de\034nition)0 2937 y Fh(The)30 b(class)f
-Fc(SALOME_Exceptio)o(n)24 b Fh(pro)n(vides)k(a)h(generic)g(metho)r(d)h
-(to)g(send)f(a)h(message,)f(with)h(optional)f(source)f(\034le)i(name)0
-3050 y(and)g(line)g(n)n(um)n(b)r(er.)43 b(This)30 b(class)f(is)h(in)n
-(tended)g(to)g(serv)n(e)e(as)h(a)h(base)f(class)g(for)g(all)h(kinds)g
-(of)g(exceptions)f(SALOME)h(co)r(de.)0 3164 y(All)25
-b(the)g(exceptions)e(deriv)n(ed)h(from)g Fc(SALOME_Exception)18
-b Fh(could)24 b(b)r(e)h(handled)f(in)h(a)f(single)f(catc)n(h,)i(in)g
-(whic)n(h)f(the)h(message)0 3277 y(asso)r(ciated)h(to)i(the)g
-(exception)f(is)g(displa)n(y)n(ed,)g(or)f(sen)n(t)i(to)f(a)g(log)g
-(\034le.)0 3434 y(The)h(class)e Fc(SALOME_Exception)21
-b Fh(inherits)28 b(its)f(b)r(eha)n(vior)f(from)i(the)g(STL)f(class)g
-(exception.)0 3706 y Fe(2.1.2)94 b(usage)0 3916 y Fh(The)26
-b(header)g Fc(SALOME/src/util)o(s/)o(uti)o(ls)o(_S)o(ALO)o(ME)o(_E)o
-(xce)o(pt)o(io)o(n.h)o(xx)20 b Fh(m)n(ust)26 b(b)r(e)h(included)f(in)h
-(the)f(C++)g(source,)f(when)0 4030 y(raised)h(or)h(trapp)r(ed:)0
-4187 y Fc(#include)40 b("utils_SALOME_Ex)o(cep)o(ti)o(on)o(.hx)o(x")0
-4343 y Fh(The)28 b Fc(SALOME_Exceptio)o(n)21 b Fh(constructor)26
-b(is:)0 4582 y Fc(SALOME_Exception)o(\()37 b(const)42
-b(char)g(*text,)784 4696 y(const)g(char)g(*fileName=0,)784
-4810 y(const)g(unsigned)e(int)i(lineNumber=0)d(\);)0
-5049 y Fh(The)28 b(exception)f(is)g(raised)g(lik)n(e)g(this:)0
-5289 y Fc(throw)41 b(SALOME_Exception\()o("m)o(y)d(pertinent)h
-(message"\);)p eop
+b Fh(5)0 162 y Fe(SCR)m(UTE\(v)-5 b(ar\))84 b Fh(In)30
+b Fc(_DEBUG_)c Fh(compiling)j(mo)r(de,)h(The)f(C++)f(macro)g
+Fc(SCRUTE)f Fh(displa)n(ys)h(its)h(argumen)n(t)f(whic)n(h)h(is)g(an)0
+275 y(application)21 b(v)-5 b(ariable)22 b(follo)n(w)n(ed)f(b)n(y)h
+(the)g(v)-5 b(alue)22 b(of)g(the)h(v)-5 b(ariable.)34
+b(In)22 b Fc(_RELEASE_)d Fh(compiling)j(mo)r(de,)h(this)f(macro)f(is)h
+(blank.)0 432 y(Example)28 b(:)0 671 y Fc(#include)40
+b("utilities.h")0 785 y(int)i(main\(int)e(argc)i(,)i(char)d(**argv\))0
+898 y({)87 1012 y(const)h(int)g(i=999;)87 1126 y(if\()g(i)i(>)f(0)g(\))
+g(SCRUTE\(i\))d(;)j(i=i+1;)87 1239 y(return)e(0;)0 1353
+y(})0 1592 y Fh(displa)n(ys)26 b(:)0 1832 y Fc(-)43 b(Trace)f(main.cxx)
+e([5])i(:)h(i=999)0 2104 y Fe(ASSER)-8 b(T\(condition\))82
+b Fh(In)33 b Fc(_DEBUG_)c Fh(compiling)i(mo)r(de)i(only)-7
+b(,)33 b(The)f(C++)f(macro)g Fc(ASSERT)e Fh(c)n(hec)n(ks)i(the)i
+(expression)0 2218 y(passed)c(in)h(argumen)n(t)e(to)h(b)r(e)h(not)g
+(NULL.)g(If)g(it)g(is)f(NULL)h(the)g(condition)g(is)f(written)h(with)g
+(the)g(macro)e Fc(INTERRUPTION)0 2331 y Fh(\(see)f(ab)r(o)n(v)n(e\).)36
+b(The)27 b(pro)r(cess)f(exits)h(after)f(trace)h(of)g(this)g(last)g
+(message.)35 b(In)28 b Fc(_RELEASE_)23 b Fh(compiling)k(mo)r(de,)g
+(this)g(macro)f(is)0 2445 y(blank.)37 b(N.B.)27 b(:)37
+b(if)28 b Fc(ASSERT)e Fh(is)h(already)f(de\034ned,)i(this)g(macro)e(is)
+i(ignored.)0 2601 y(Example)g(:)0 2841 y Fc(#include)40
+b("utilities.h")0 2955 y(...)0 3068 y(const)h(char)h(*ptrS)g(=)h
+(fonc\(\);)0 3182 y(ASSERT\(ptrS!=NUL)o(L\))o(;)0 3295
+y(cout)f(<<)h(strlen\(ptrS\);)0 3409 y(float)e(table[10];)0
+3522 y(int)h(k;)0 3636 y(...)0 3750 y(ASSERT\(k<10\);)0
+3863 y(cout)g(<<)h(table[k];)0 4201 y Ff(2)131 b(Exceptions)0
+4459 y Fd(2.1)112 b(C++)38 b(exceptions:)49 b(class)38
+b(SALOME_Exception)0 4669 y Fe(2.1.1)94 b(de\034nition)0
+4879 y Fh(The)30 b(class)f Fc(SALOME_Exceptio)o(n)24
+b Fh(pro)n(vides)k(a)h(generic)g(metho)r(d)h(to)g(send)f(a)h(message,)f
+(with)h(optional)f(source)f(\034le)i(name)0 4993 y(and)g(line)g(n)n(um)
+n(b)r(er.)43 b(This)30 b(class)f(is)h(in)n(tended)g(to)g(serv)n(e)e(as)
+h(a)h(base)f(class)g(for)g(all)h(kinds)g(of)g(exceptions)f(SALOME)h(co)
+r(de.)0 5106 y(All)25 b(the)g(exceptions)e(deriv)n(ed)h(from)g
+Fc(SALOME_Exception)18 b Fh(could)24 b(b)r(e)h(handled)f(in)h(a)f
+(single)f(catc)n(h,)i(in)g(whic)n(h)f(the)h(message)0
+5220 y(asso)r(ciated)h(to)i(the)g(exception)f(is)g(displa)n(y)n(ed,)g
+(or)f(sen)n(t)i(to)f(a)g(log)g(\034le.)0 5376 y(The)h(class)e
+Fc(SALOME_Exception)21 b Fh(inherits)28 b(its)f(b)r(eha)n(vior)f(from)i
+(the)g(STL)f(class)g(exception.)p eop
 %%Page: 6 6
 6 5 bop 0 -167 3900 5 v 0 -200 a Fe(2.)73 b(Exceptions)3255
-b Fh(6)0 162 y(or)27 b(lik)n(e)g(this:)0 401 y Fc(throw)41
-b(SALOME_Exception\()o(LO)o(CAL)o(IZ)o(ED)o(\("m)o(y)c(pertinent)j
-(message"\)\);)0 641 y Fh(where)24 b(LOCALIZED)h(is)f(a)h(macro)e(pro)n
-(vided)g(with)j Fc(utils_SALOME_Ex)o(ce)o(pti)o(on)o(.h)o(xx)18
-b Fh(whic)n(h)25 b(giv)n(es)e(\034le)i(name)f(and)h(line)0
-754 y(n)n(um)n(b)r(er.)0 911 y(The)j(exception)f(is)g(handled)h(lik)n
-(e)f(this:)0 1150 y Fc(try)87 1264 y({)174 1377 y(...)87
-1491 y(})0 1605 y(catch)41 b(\(const)g(SALOME_Exception)c(&ex\))87
-1718 y({)174 1832 y(cerr)42 b(<<)h(ex.what\(\))d(<<endl;)87
-1945 y(})0 2185 y Fh(The)28 b Fc(what\(\))d Fh(metho)r(d)j(o)n(v)n
+b Fh(6)0 162 y Fe(2.1.2)94 b(usage)0 372 y Fh(The)26
+b(header)g Fc(SALOME/src/util)o(s/)o(uti)o(ls)o(_S)o(ALO)o(ME)o(_E)o
+(xce)o(pt)o(io)o(n.h)o(xx)20 b Fh(m)n(ust)26 b(b)r(e)h(included)f(in)h
+(the)f(C++)g(source,)f(when)0 485 y(raised)h(or)h(trapp)r(ed:)0
+642 y Fc(#include)40 b("utils_SALOME_Ex)o(cep)o(ti)o(on)o(.hx)o(x")0
+798 y Fh(The)28 b Fc(SALOME_Exceptio)o(n)21 b Fh(constructor)26
+b(is:)0 1038 y Fc(SALOME_Exception)o(\()37 b(const)42
+b(char)g(*text,)784 1151 y(const)g(char)g(*fileName=0,)784
+1265 y(const)g(unsigned)e(int)i(lineNumber=0)d(\);)0
+1504 y Fh(The)28 b(exception)f(is)g(raised)g(lik)n(e)g(this:)0
+1744 y Fc(throw)41 b(SALOME_Exception\()o("m)o(y)d(pertinent)h
+(message"\);)0 1983 y Fh(or)27 b(lik)n(e)g(this:)0 2223
+y Fc(throw)41 b(SALOME_Exception\()o(LO)o(CAL)o(IZ)o(ED)o(\("m)o(y)c
+(pertinent)j(message"\)\);)0 2462 y Fh(where)24 b(LOCALIZED)h(is)f(a)h
+(macro)e(pro)n(vided)g(with)j Fc(utils_SALOME_Ex)o(ce)o(pti)o(on)o(.h)o
+(xx)18 b Fh(whic)n(h)25 b(giv)n(es)e(\034le)i(name)f(and)h(line)0
+2576 y(n)n(um)n(b)r(er.)0 2732 y(The)j(exception)f(is)g(handled)h(lik)n
+(e)f(this:)0 2972 y Fc(try)87 3085 y({)174 3199 y(...)87
+3313 y(})0 3426 y(catch)41 b(\(const)g(SALOME_Exception)c(&ex\))87
+3540 y({)174 3653 y(cerr)42 b(<<)h(ex.what\(\))d(<<endl;)87
+3767 y(})0 4006 y Fh(The)28 b Fc(what\(\))d Fh(metho)r(d)j(o)n(v)n
 (errides)d(the)j(one)f(de\034ned)h(in)g(the)g(STL)f(exception)g(class.)
-0 2476 y Fd(2.2)112 b(CORBA)37 b(exceptions)0 2686 y
-Fe(2.2.1)94 b(de\034nition)0 2896 y Fh(The)24 b(idl)h
+0 4298 y Fd(2.2)112 b(CORBA)37 b(exceptions)0 4508 y
+Fe(2.2.1)94 b(de\034nition)0 4718 y Fh(The)24 b(idl)h
 Fc(SALOME_Exception)18 b Fh(pro)n(vides)23 b(a)g(generic)h(CORBA)g
 (exception)g(for)g(SALOME,)g(with)h(an)f(attribute)h(that)f(giv)n(es)0
-3010 y(an)j(exception)g(t)n(yp)r(e,a)h(message,)e(plus)i(optional)e
+4832 y(an)j(exception)g(t)n(yp)r(e,a)h(message,)e(plus)i(optional)e
 (source)h(\034le)g(name)h(and)f(line)h(n)n(um)n(b)r(er.)0
-3166 y(This)i(idl)h(is)f(in)n(tended)g(to)g(serv)n(e)f(for)h(all)g
+4988 y(This)i(idl)h(is)f(in)n(tended)g(to)g(serv)n(e)f(for)h(all)g
 (user)f(CORBA)h(exceptions)g(raised)f(in)h(SALOME)h(co)r(de,)g(as)e
-(IDL)i(sp)r(eci\034cation)0 3280 y(do)r(es)21 b(not)g(supp)r(ort)h
+(IDL)i(sp)r(eci\034cation)0 5102 y(do)r(es)21 b(not)g(supp)r(ort)h
 (exception)f(inheritance.)34 b(So,)22 b(all)g(the)f(user)g(CORBA)g
 (exceptions)g(from)g(SALOME)h(could)f(b)r(e)h(handled)0
-3394 y(in)28 b(a)f(single)g(catc)n(h.)0 3550 y(The)h(exception)f(t)n
-(yp)r(es)g(de\034ned)h(in)g(idl)g(are:)0 3790 y Fe(COMM)208
-3936 y Fh(CORBA)f(comm)n(unication)g(problem,)0 4116
-y Fe(BAD_P)-8 b(ARAM)208 4263 y Fh(Bad)27 b(User)g(parameters,)0
-4443 y Fe(INTERNAL_ERR)m(OR)208 4590 y Fh(application)f(lev)n(el)h
-(problem)g(\(often)i(irreco)n(v)n(erable\).)0 4829 y(CORBA)k(system)g
-(and)f(user)h(exceptions)f(already)g(de\034ned)h(in)h(the)f(pac)n(k)-5
-b(ages)31 b(used)i(within)h(SALOME,)f(suc)n(h)g(as)g(Om-)0
-4943 y(niORB)27 b(exceptions,)g(m)n(ust)h(b)r(e)g(handled)f(separately)
--7 b(.)p eop
+5215 y(in)28 b(a)f(single)g(catc)n(h.)0 5372 y(The)h(exception)f(t)n
+(yp)r(es)g(de\034ned)h(in)g(idl)g(are:)p eop
 %%Page: 7 7
-7 6 bop 0 -167 3900 5 v 0 -200 a Fe(3.)73 b(Miscellaneous)30
-b(to)s(ols)2901 b Fh(7)0 162 y Fe(2.2.2)94 b(usage)0
-372 y(CORBA)35 b(serv)-5 b(an)m(t,)37 b(C++)83 b Fh(The)31
-b(CORBA)g(Serv)n(er)e(header)h(for)g Fc(SALOME_Exception)24
-b Fh(and)31 b(a)f(macro)g(to)h(thro)n(w)f(the)0 485 y(exception)d(are)g
-(pro)n(vided)f(with)i(the)g(header)f Fc(SALOME/src/Utils)o(/U)o(ti)o
-(ls_)o(Co)o(rb)o(aEx)o(ce)o(pt)o(ion)o(.h)o(xx)p Fh(:)0
-717 y Fc(#include)40 b("Utils_CorbaExce)o(pti)o(on)o(.h)o(xx")0
-949 y Fh(The)28 b(exception)f(is)g(raised)g(with)h(a)f(macro)f(whic)n
-(h)i(app)r(ends)f(\034le)h(name)f(and)h(line)f(n)n(um)n(b)r(er.)0
-1181 y Fc(if)43 b(\(myStudyName.si)o(ze\()o(\))37 b(==)43
-b(0\))131 1294 y(THROW_SALOME_CO)o(RBA)o(_E)o(XC)o(EPT)o(IO)o(N\()o
-("No)37 b(Study)k(Name)h(given",)f(\\)1394 1408 y(SALOME::BAD_PARAM)o
-(\);)0 1679 y Fe(CORBA)113 b(Clien)m(t,)133 b(GUI)114
-b(Qt)f(C++)84 b Fh(The)99 b(CORBA)f(Clien)n(t)h(header)f(for)g
-Fc(SALOME_Exceptio)o(n)0 1793 y Fh(and)141 b(a)f(Qt)h(function)h
+7 6 bop 0 -167 3900 5 v 0 -200 a Fe(2.)73 b(Exceptions)3255
+b Fh(7)0 162 y Fe(COMM)208 307 y Fh(CORBA)27 b(comm)n(unication)g
+(problem,)0 483 y Fe(BAD_P)-8 b(ARAM)208 628 y Fh(Bad)27
+b(User)g(parameters,)0 805 y Fe(INTERNAL_ERR)m(OR)208
+950 y Fh(application)f(lev)n(el)h(problem)g(\(often)i(irreco)n(v)n
+(erable\).)0 1181 y(CORBA)k(system)g(and)f(user)h(exceptions)f(already)
+g(de\034ned)h(in)h(the)f(pac)n(k)-5 b(ages)31 b(used)i(within)h
+(SALOME,)f(suc)n(h)g(as)g(Om-)0 1295 y(niORB)27 b(exceptions,)g(m)n
+(ust)h(b)r(e)g(handled)f(separately)-7 b(.)0 1566 y Fe(2.2.2)94
+b(usage)0 1776 y(CORBA)35 b(serv)-5 b(an)m(t,)37 b(C++)83
+b Fh(The)31 b(CORBA)g(Serv)n(er)e(header)h(for)g Fc(SALOME_Exception)24
+b Fh(and)31 b(a)f(macro)g(to)h(thro)n(w)f(the)0 1889
+y(exception)d(are)g(pro)n(vided)f(with)i(the)g(header)f
+Fc(SALOME/src/Utils)o(/U)o(ti)o(ls_)o(Co)o(rb)o(aEx)o(ce)o(pt)o(ion)o
+(.h)o(xx)p Fh(:)0 2120 y Fc(#include)40 b("Utils_CorbaExce)o(pti)o(on)o
+(.h)o(xx")0 2351 y Fh(The)28 b(exception)f(is)g(raised)g(with)h(a)f
+(macro)f(whic)n(h)i(app)r(ends)f(\034le)h(name)f(and)h(line)f(n)n(um)n
+(b)r(er.)0 2582 y Fc(if)43 b(\(myStudyName.si)o(ze\()o(\))37
+b(==)43 b(0\))131 2696 y(THROW_SALOME_CO)o(RBA)o(_E)o(XC)o(EPT)o(IO)o
+(N\()o("No)37 b(Study)k(Name)h(given",)f(\\)1394 2809
+y(SALOME::BAD_PARAM)o(\);)0 3080 y Fe(CORBA)113 b(Clien)m(t,)133
+b(GUI)114 b(Qt)f(C++)84 b Fh(The)99 b(CORBA)f(Clien)n(t)h(header)f(for)
+g Fc(SALOME_Exceptio)o(n)0 3194 y Fh(and)141 b(a)f(Qt)h(function)h
 (header)e(that)h(displa)n(ys)f(a)h(message)e(b)r(o)n(x)i(are)f(pro)n
-(vided)g(in)0 1906 y Fc(SALOME/src/SALOM)o(EG)o(UI/)o(SA)o(LO)o(MEG)o
+(vided)g(in)0 3308 y Fc(SALOME/src/SALOM)o(EG)o(UI/)o(SA)o(LO)o(MEG)o
 (UI)o(_Q)o(tCa)o(tc)o(hC)o(orb)o(aE)o(xc)o(ept)o(io)o(n.h)o(xx)o
-Fh(:)0 2138 y Fc(#include)40 b("SALOMEGUI_QtCat)o(chC)o(or)o(ba)o(Exc)o
-(ep)o(ti)o(on.)o(hx)o(x")0 2370 y Fh(A)28 b(t)n(ypical)f(exc)n(hange)f
+Fh(:)0 3538 y Fc(#include)40 b("SALOMEGUI_QtCat)o(chC)o(or)o(ba)o(Exc)o
+(ep)o(ti)o(on.)o(hx)o(x")0 3769 y Fh(A)28 b(t)n(ypical)f(exc)n(hange)f
 (with)i(a)f(CORBA)h(Serv)-5 b(an)n(t)27 b(will)g(b)r(e:)0
-2602 y Fc(try)87 2715 y({)174 2829 y(...)43 b(//)f(one)h(ore)f(more)g
-(CORBA)f(calls)87 2943 y(})0 3056 y(catch)g(\(const)g
+4000 y Fc(try)87 4114 y({)174 4227 y(...)43 b(//)f(one)h(ore)f(more)g
+(CORBA)f(calls)87 4341 y(})0 4455 y(catch)g(\(const)g
 (SALOME::SALOME_Ex)o(ce)o(pti)o(on)c(&)43 b(S_ex\))87
-3170 y({)174 3283 y(QtCatchCorbaExcep)o(ti)o(on)o(\(S_)o(ex)o(\);)87
-3397 y(})0 3668 y Fe(CORBA)28 b(Clien)m(t,)g(C++,)h(without)f(GUI)84
+4568 y({)174 4682 y(QtCatchCorbaExcep)o(ti)o(on)o(\(S_)o(ex)o(\);)87
+4795 y(})0 5180 y Fe(CORBA)28 b(Clien)m(t,)g(C++,)h(without)f(GUI)84
 b Fh(Nothing)24 b(sp)r(eci\034c)h(has)f(b)r(een)h(pro)n(vided)f(to)h
 (the)g(dev)n(elop)r(er)e(y)n(et.)36 b(See)25 b(the)0
-3782 y(idl)i(or)f(the)h(Qt)f(function)i Fc(SALOMEGUI_QtCat)o(ch)o(Cor)o
+5294 y(idl)i(or)f(the)h(Qt)f(function)i Fc(SALOMEGUI_QtCat)o(ch)o(Cor)o
 (ba)o(Exc)o(ep)o(ti)o(on.)o(hx)o(x)21 b Fh(to)26 b(see)g(ho)n(w)h(to)f
-(get)h(the)g(information)f(giv)n(en)f(b)n(y)0 3895 y(the)j(exception)f
-(ob)5 b(ject.)0 4232 y Ff(3)131 b(Miscellaneous)45 b(to)t(ols)0
-4490 y Fd(3.1)112 b(Singleton)0 4700 y Fe(3.1.1)94 b(De\034nition)0
-4910 y Fh(A)37 b(singleton)g(is)g(an)g(application)f(data)h(whic)n(h)g
-(is)g(created)f(and)h(deleted)h(only)f(once)f(at)h(the)h(end)f(of)g
-(the)h(application)0 5024 y(pro)r(cess.)63 b(The)36 b(C++)g(compiler)g
-(allo)n(ws)f(the)i(user)f(to)h(create)e(a)h(static)h(singleton)f(data)g
-(b)r(efore)g(the)h(\034rst)g(executable)0 5137 y(statemen)n(t.)g(They)
-27 b(are)g(deleted)h(after)f(the)h(last)f(statemen)n(t)h(execution.)0
-5294 y(The)g Fc(SINGLETON_)23 b Fh(template)28 b(class)e(deals)h(with)h
-(dynamic)f(singleton.)36 b(It)28 b(is)f(useful)h(for)f(functor)g(ob)5
-b(jects.)37 b(F)-7 b(or)27 b(example,)0 5407 y(an)g(ob)5
-b(ject)27 b(that)h(connects)f(the)g(application)g(to)g(a)g(system)g(at)
-g(creation)g(and)g(disconnects)f(the)i(application)f(at)g(deletion.)p
-eop
+(get)h(the)g(information)f(giv)n(en)f(b)n(y)0 5407 y(the)j(exception)f
+(ob)5 b(ject.)p eop
 %%Page: 8 8
 8 7 bop 0 -167 3900 5 v 0 -200 a Fe(3.)73 b(Miscellaneous)30
-b(to)s(ols)2901 b Fh(8)0 162 y Fe(3.1.2)94 b(Usage)0
-372 y Fh(T)-7 b(o)27 b(create)g(a)g(single)g(instance)g(a)g(POINT)h(ob)
-5 b(ject)28 b(:)0 611 y Fc(#)43 b(include)e("Utils_SINGLETO)o(N.h)o(xx)
-o(")0 725 y(...)0 838 y(POINT)g(*ptrPoint=SINGLET)o(ON)o(_<P)o(OI)o(NT)
-o(>::)o(In)o(st)o(anc)o(e\()o(\))c(;)0 952 y(assert\(ptrPoint!)o(=N)o
-(ULL)o(\))g(;)0 1191 y Fh(No)27 b(need)g(to)g(delete)g(ptrP)n(oin)n(t.)
+b(to)s(ols)2901 b Fh(8)0 162 y Ff(3)131 b(Miscellaneous)45
+b(to)t(ols)0 419 y Fd(3.1)112 b(Singleton)0 629 y Fe(3.1.1)94
+b(De\034nition)0 839 y Fh(A)37 b(singleton)g(is)g(an)g(application)f
+(data)h(whic)n(h)g(is)g(created)f(and)h(deleted)h(only)f(once)f(at)h
+(the)h(end)f(of)g(the)h(application)0 953 y(pro)r(cess.)63
+b(The)36 b(C++)g(compiler)g(allo)n(ws)f(the)i(user)f(to)h(create)e(a)h
+(static)h(singleton)f(data)g(b)r(efore)g(the)h(\034rst)g(executable)0
+1067 y(statemen)n(t.)g(They)27 b(are)g(deleted)h(after)f(the)h(last)f
+(statemen)n(t)h(execution.)0 1223 y(The)g Fc(SINGLETON_)23
+b Fh(template)28 b(class)e(deals)h(with)h(dynamic)f(singleton.)36
+b(It)28 b(is)f(useful)h(for)f(functor)g(ob)5 b(jects.)37
+b(F)-7 b(or)27 b(example,)0 1337 y(an)g(ob)5 b(ject)27
+b(that)h(connects)f(the)g(application)g(to)g(a)g(system)g(at)g
+(creation)g(and)g(disconnects)f(the)i(application)f(at)g(deletion.)0
+1609 y Fe(3.1.2)94 b(Usage)0 1819 y Fh(T)-7 b(o)27 b(create)g(a)g
+(single)g(instance)g(a)g(POINT)h(ob)5 b(ject)28 b(:)0
+2059 y Fc(#)43 b(include)e("Utils_SINGLETO)o(N.h)o(xx)o(")0
+2172 y(...)0 2286 y(POINT)g(*ptrPoint=SINGLET)o(ON)o(_<P)o(OI)o(NT)o
+(>::)o(In)o(st)o(anc)o(e\()o(\))c(;)0 2400 y(assert\(ptrPoint!)o(=N)o
+(ULL)o(\))g(;)0 2639 y Fh(No)27 b(need)g(to)g(delete)g(ptrP)n(oin)n(t.)
 37 b(Deletion)27 b(is)g(ac)n(hiev)n(ed)f(automatically)g(at)h(exit.)37
 b(If)27 b(the)h(user)e(tries)h(to)g(create)f(more)g(than)0
-1305 y(one)e(singleton)g(b)n(y)g(using)f(the)i(class)e(metho)r(d)i
+2753 y(one)e(singleton)g(b)n(y)g(using)f(the)i(class)e(metho)r(d)i
 Fc(SINGLETON_)p Fa(<)p Fc(TYPE)p Fa(>)o Fc(::I)o(ns)o(ta)o(nce)o(\(\))o
 Fh(,)19 b(the)25 b(p)r(oin)n(ter)f(is)g(returned)g(with)h(the)0
-1419 y(same)i(v)-5 b(alue)27 b(ev)n(en)g(if)i(this)e(is)h(done)f(in)h
-(di\033eren)n(t)g(functions)f(\(threads)h(?\).)0 1658
+2866 y(same)i(v)-5 b(alue)27 b(ev)n(en)g(if)i(this)e(is)h(done)f(in)h
+(di\033eren)n(t)g(functions)f(\(threads)h(?\).)0 3106
 y Fc(POINT)41 b(*p1=SINGLETON_<PO)o(IN)o(T>:)o(:I)o(ns)o(tan)o(ce)o
-(\(\))c(;)0 1772 y(...)0 1885 y(POINT)k(*p2=SINGLETON_<PO)o(IN)o(T>:)o
-(:I)o(ns)o(tan)o(ce)o(\(\))c(;)0 1999 y(assert\(p1==p2\))0
-2271 y Fe(3.1.3)94 b(Design)30 b(description)0 2482 y
+(\(\))c(;)0 3219 y(...)0 3333 y(POINT)k(*p2=SINGLETON_<PO)o(IN)o(T>:)o
+(:I)o(ns)o(tan)o(ce)o(\(\))c(;)0 3446 y(assert\(p1==p2\))0
+3719 y Fe(3.1.3)94 b(Design)30 b(description)0 3929 y
 Fh(Here)d(are)g(the)h(principles)f(features)g(of)g(the)h(singleton)f
-(design)g(:)125 2721 y Fb(\017)41 b Fh(the)28 b(user)f(creates)g(an)g
+(design)g(:)125 4169 y Fb(\017)41 b Fh(the)28 b(user)f(creates)g(an)g
 (ob)5 b(ject)28 b(of)g(class)f Fc(TYPE)f Fh(b)n(y)i(using)f(the)i
 (class)e(metho)r(d)h Fc(SINGLETON_)p Fa(<)p Fc(TYPE)p
-Fa(>)o Fc(::)o(In)o(sta)o(nc)o(e\()o(\))208 2835 y Fh(whic)n(h)f
+Fa(>)o Fc(::)o(In)o(sta)o(nc)o(e\()o(\))208 4282 y Fh(whic)n(h)f
 (returns)g(a)g(p)r(oin)n(ter)g(to)h(the)g(single)f(ob)5
-b(ject)27 b(;)125 3015 y Fb(\017)41 b Fh(to)27 b(create)g(an)g(ob)5
+b(ject)27 b(;)125 4462 y Fb(\017)41 b Fh(to)27 b(create)g(an)g(ob)5
 b(ject,)27 b Fc(SINGLETON_)p Fa(<)p Fc(TYPE)p Fa(>)o
 Fc(::I)o(ns)o(tan)o(ce)o(\(\))21 b Fh(uses)27 b(the)h(default)g
-(constructor)e(of)i(class)e Fc(TYPE)g Fh(;)125 3195 y
+(constructor)e(of)i(class)e Fc(TYPE)g Fh(;)125 4642 y
 Fb(\017)41 b Fh(at)31 b(the)h(same)g(time,)h(this)f(class)f(metho)r(d)h
 (creates)f(a)g(destructor)g(ob)5 b(ject)31 b(whic)n(h)h(is)g(added)f
-(to)h(the)g(generic)f(list)h(of)208 3308 y(destructor)26
+(to)h(the)g(generic)f(list)h(of)208 4756 y(destructor)26
 b(ob)5 b(jects)27 b(to)h(b)r(e)g(executed)f(at)g(the)h(end)g(of)g(the)g
-(application)f(\()p Fc(atexit)p Fh(\))e(;)125 3488 y
+(application)f(\()p Fc(atexit)p Fh(\))e(;)125 4936 y
 Fb(\017)41 b Fh(at)30 b(the)h(end)f(of)h(the)f(application)g(pro)r
 (cess)f(all)h(the)h(deletions)f(are)g(p)r(erformed)f(b)n(y)i(the)f
-Fc(Nettoyage\(\))c Fh(C)31 b(function)208 3602 y(whic)n(h)c(executes)g
+Fc(Nettoyage\(\))c Fh(C)31 b(function)208 5049 y(whic)n(h)c(executes)g
 (the)h(destruction)f(ob)5 b(jects)27 b(end)h(then)g(deletes)g(the)g
 (destructions)f(ob)5 b(jects)27 b(themselv)n(es)g(;)125
-3782 y Fb(\017)41 b Fh(the)23 b Fc(Nettoyage\(\))c Fh(C)k(function)g
-(using)g(atexit\(\))g(C)h(function)f(is)g(em)n(b)r(edded)h(in)f(a)g
-(static)f(single)h(ob)5 b(ject)23 b Fc(ATEXIT_\(\))p
-Fh(.)p eop
+5229 y Fb(\017)41 b Fh(the)20 b Fc(Nettoyage\(\))c Fh(C)41
+b(function)21 b(using)f(atexit\(\))h(C)40 b(function)21
+b(is)f(em)n(b)r(edded)h(in)g(a)f(static)g(single)g(ob)5
+b(ject)20 b Fc(ATEXIT_\(\))p Fh(.)p eop
 %%Trailer
 end
 userdict /end-hook known{end-hook}if